oracle基本命令練習筆記

oracle基本命令練習筆記
第一章 用戶
------
用戶
系統用戶,sys,system,sys權限高於system,密碼本身設置
1.sysman用於操做企業管理器使用,密碼本身設置
2.scott,默認密碼tiger
3.在sys,system,sysman,scott四個用戶權限中,scott用戶最低
使用system用戶登陸
打開sqlplus,輸入system/密碼,登錄
connect sys/密碼 as sysdba
Oracle用戶和表空間之查看登陸用戶sql

show user
desc dba_users
select username from dba_users;

啓用scott用戶數據庫

alter user username account unlock; 
alter user scott account unlock;

第二章 表空間

表空間
表空間
分爲永久表空間,臨時表空間,UNDO表空間
UNDO表空間,保存事務修改前的舊址
臨時表空間,操做過程當中的數據
查看用戶表空間express

dab_tablespacs,user_tablespaces
desc dba_tablespaces;
select tablespace_name from dba_tablespacs;
dba_users,users_users

設置默認或者臨時表空間oracle

alter user system default tablespace system;
select  default_tablespace,temporary_tablespace from dba_users where username='SYSTEM';

建立表空間spa

create tablespace test1_tablespace datafile 'test1_datafile.dbf' size 10m;
create temporary tablespace tamptable_tablespace tempfile 'tmpetest1_datafile.dbf' size 10m;
desc dba_data_files;
select file_name from dba_data_files where tablespace_name='TEST1_TABLESPACE'

修改表空間
設置聯機或者脫機狀態code

alter tablespace tablespace_name online/offline;orm

設置只讀或者可讀寫狀態,必須爲聯機狀態;事務

alter tablespace tablespace_name read only/read write;rem

修改數據文件
****增長數據文件****字符串

alter tablespace tablespace_name add datafile 'xx.abf' size xx;

刪除數據文件,不能刪除第一個數據文件

alter tablespace tablespace_name drop datafile 'xx.abf' size xx;

刪除表空間
不刪除文件

drop tablespace tablespace_name

刪除表空間的同時刪除文件

drop tablespace tablespace_name including contents;

第三章 管理表

管理表
數據類型
字符型:CHAR,NCHAR(多用於存儲漢字);
VARCHAR2,NVARCHAR2;可變長度類型
數值型:NUMBER(p,s)
FLOAT,
日期型:DATE,
TIMESTAMP,
其餘類型:BLOB,
CLOB,(字符串形式存儲)
建立表

create table userinfo
(id number(6,0),
username varchar2(20),
userpwd varchar2(20),
useremil varchar2(30),
regdate date);

修改表
添加字段

ALTER TABLE table_name ADD column_name datatype;
alter table userinfo add beizhu varchar2(500);

更改字段的數據類型,表中沒有數據是可以實現;

ALTER TABLE table_name MODIFY column_name datatype;

刪除字段

ALTER TABLE table_name DROP column_name datatype;

修改字段名
ALTER TABLE table_name RENAME COLUMN column_name TO new_column_name;

修改表名

ALTER table_name TO new_table_name;

刪除表
刪除表中所有數據,截斷表(表存在)

TRUNCATE TABLE table_name;

表結構刪除

TROP TABLE table_name;

第四章 操做表中數據

操做表中數據
INSERT 語句,前面省略表明全部字段都要賦值

INSERT INTO table_name (column1,column2,...) VALUES(values1,values2,...)
insert into userinfo values(1,'xxx','123','xxx@126.com',sysdate);

向表中指定字段添加值

insert into userinfo(id,username,userpwd) values(2,'yyy','123');
select username,userpwd from userinfo;

向表中添加默認值

create table userinfo1 (
id number(6,0),
resgdate date default sysdate);
alter table userinfo modify email default '無';

複製表數據
在建立表時複製

CREATE TABLE table_name AS SELECT column1,...|*FROM table_old;
create table userinfo_new as select * from userinfo;
create table userinfo_new1 as select id,username from userinfo;

在添加時複製
I

NSRT INTO table_new [(column1,...)] SELECT column1,...|*FROM table_old;
insert into userinfo_new select * from userinfo;

字段名能夠不一致,可是數據類型必須一致

insert into userinfo_new (id,username) select id,username from userinfo;

修改數據

UPDATE table_name SET column1=value1,...[WHERE conditions];

無條件更新

update userinfo set userpwd='111111';

有條件更新數據

update userinfo set userpwd='123456' where username='xxx';

刪除數據庫
刪除表中所有數據,速度慢些

DELETE FROM tablename[WHERE conditions];

第五章 約束

約束
非空約束
在建立表時設置非空約束

CREATE table_name (
column_name datatype NOT NULL,...);

在修改表時添加非空約束,修改前最好沒有添加數據

ALTER TABLE table_name MODIFY column_name datatype NOT NULL;
alter table userinfo modify username varchar2(20) not null;

刪除非空約束

ALTER TABLE table_name MODIFY column_name datatype NULL;
alter table userinfo modify username varchar2(20) null;

主鍵約束,確保表中每一行數據的惟一性,要求字段非空,惟一
在建立表時設置主鍵約束

CREATE table_name (
column_name datatype PRIMARY KEY,...);

在建立表時設置主鍵約束

CONSTRAINT constraint_name PRIMARY KEY (column_name1,...)
create table userinfo_p1(
id number(6,0),
username varchar2(20),
userpwd varchar(20),
constraint pk_id_username primary key(id,username));
desc user_constraints;
select constraint_name from user_constraints where table_name='USERINFO_P1';

修改表時添加主鍵約束

ADD CONSTRAINT constraint_name PRIMARY KEY (column_name1,...);

更改約束的名字

ALTER TABLE table_name RENAME CONSTRAINT old_name TO new_name;

刪除主鍵約束
禁用約束

ALTER TABLE table_name DISABLE|ENABLEND CONSTRAINT constraint_name;

查看約束狀態

select constraint_name,status from user_constraints where table_name='USERINFO';

刪除約束

ALTER TABLE table_name DROP CONSTRAINT constraint_name;

有外鍵的時候用

ALTER TABLE table_name DROP PRIMARY KEY[CASCADE];

外鍵約束
建立表時設置外鍵約束

CREATE TABLE table1 (column_name datatype REFERENCES table2(column_name),...);
create table typeinfo
(typeid varchar2(10)primary key,
typename varchar2(20));

建立從表

create table userinfo_f
(id varchar2(10) primary key,
username varchar2(20),
typeid_new varchar2(10) references typeinfo(typeid));
insert into typeinfo(1,1);

第二個字段必須是主表字段值或者空值;

insert into userinfo_f(id,typeid_new) values(1,1)

在建立表時設置外鍵約束,ON DELETE CASCADE級聯刪除

CONSTRAINT constraint_name FOREIGN KEY(column) REFERENCES table_name (column_name)[ON DELETE CASCADE]
create table userinfo_f1
(id varchar2(10) primary key,
username varchar2(20),
typeid_new varchar2(10),
constraint fk_typeid_new foreign key(typeid_new) references typeinfo(typeid));

加上級聯刪除

create table userinfo_f2
(id varchar2(10) primary key,
username varchar2(20),
typeid_new varchar2(10),
constraint fk_typeid_new1 foreign key(typeid_new) references typeinfo(typeid) on delete cascade);

在修改表時添加外鍵約束

ADD CONSTRAINT constraint_name FOREIGN KEY(column_name) REFERENCES table_name (column_name)[ON DELETE CASCADE]
create table userinfo_f4
(id varchar2(10) primary key,
username varchar2(20),
typeid_new varchar2(10));
alter table userinfo_f4 add constraint  fk_typeid_new4 foreign key(typeid_new) references typeinfo(typeid);

刪除外鍵約束

DISABLE|ENABLEND CONSTRAINT constraint_name;
DROP CONSTRAINT constraint_name;

惟一約束,保證字段惟一性,主鍵約束字段值必須是非空的,惟一約束容許有一個非空值
主鍵約束每張表只能有一個,惟一約束能夠有多個

在建立表時設置惟一約束

CREATE TABLE table_name (colnum_name datatype UNIQUE,...)
create table userinfo_u
(id varchar2(10) primary key,
username varchar2(20) unique);
create table userinfo_u1
(id varchar2(10) primary key,
username varchar2(20),
constraint un_username unique(username));

在修改表時添加惟一約束

ADD CONSTRAINT constraint_name UNIQUE(column_name);

刪除惟一約束

DISABLE|ENABLEND CONSTRAINT constraint_name;
DROP CONSTRAINT constraint_name;

檢查約束
讓字段的值符合必定條件,具備實際意義
建立表時設置檢查約束

CREATE TABLE table_name (colnum_name datatype CHECK(expressions),...);
create table userinfo_c
(id varchar2(10) primary key,
username varchar2(20),
salary number(5,0) check(salary>0));
CONSTRAINT constraint_name CHECK(expressions)
create table userinfo_c1
(id varchar2(10) primary key,
username varchar2(20),
salary number(5,0),
constraint ck_salary check(salary>0));

在修改表時添加檢查約束

ADD CONSTRAINT constraint_name CHECK(expressions);
create table userinfo_c3
(id varchar2(10) primary key,
username varchar2(20),
salary number(5,0));
alter table userinfo_c3 add constraint ck_salary2 check(salary>0);

刪除檢查約束

DISABLE|ENABLEND CONSTRAINT constraint_name;
DROP CONSTRAINT constraint_name;

第六章 查詢

查詢
在sqlplus中設置格式
別名

COLUMN column_name HEADING new_name

數據格式,字符類型只能設置顯示長度 a10
COLUMN column_name FORMAT dataformat

去掉格式

COLUMN column_name CLEAR

DISTINCT 去掉重複行
通用通配符(_,%)一個_表明一個字符,%表明多個字符
IN 範圍查詢後加列表,查詢列表內的內容

case when 
decode()
select username ,decode(username,'aaa','計算機部門','bbb','市場部門','其餘')as 部門 from users;
相關文章
相關標籤/搜索