oracle基礎(chǔ)知識

系統(tǒng)用戶:

1.sys system(sys權(quán)限最高)

2.sysman(操作企業(yè)管理器) 密碼是安裝的時候輸入的密碼

3.scott(默認是tiger)

oracle中用戶折欠,權(quán)限贝或,角色

用戶:創(chuàng)建/修改/刪除 用戶

創(chuàng)建用戶:? ? CREATE USER name

IDENTIFIED BY password

[ACCOUNT LOCK|UNLOCK]

[PASSWORD EXPIRE];(口令立刻過期)

修改用戶:? ? ALTER USER name

IDENTIFIED BY password

[ACCOUNT LOCK|UNLOCK]

[PASSWORD EXPIRE];(口令立刻過期)

刪除用戶:DDROP USER name [CASCADE];

具體操作:

CREATE USER test

IDENTIFIED BY test

ACCOUNT LOCK

PASSWORD EXPIRE;

grant create session to test;(用戶授權(quán))

ALTER USER test ACCOUNT UNLOCK;(解鎖)

登錄

1.使用system用戶登錄

system/password@server

2.使用sys用戶登錄

connect sys/password as sysdba

查看登錄用戶

1.show user命令

2.dba_users數(shù)據(jù)字典(數(shù)據(jù)字典是數(shù)據(jù)庫提供的表,用于查看數(shù)據(jù)庫的信息)

desc dba_users; (查看數(shù)據(jù)字典里包含哪些字段)

結(jié)果包含如下一些字段:USERNAME? ? NOTNULL VARCHAR2(30)

USER_ID? ? ? NOTNULL NUMBER

PASSWORD? ? ? ? ? ? VARCHAR2(30)

...

在數(shù)據(jù)字典中包含哪些用戶锐秦?select username from dba_users;

啟用scott用戶

alter user username account unlock (解鎖)

alter user scott? ccount unlock;(用戶已更改0

使用scott用戶登錄SQL Plus

conn scott/tiger

修改scott密碼

SQL>? conn /as sysdba

SQL>? alter user scott identified by tiger;

SQL>? conn scott/tiger

SQL>? select * from tab;

表空間:

理解表空間:數(shù)據(jù)庫與表空間(一個數(shù)據(jù)庫有多個表空間)

表空間與數(shù)據(jù)文件

表空間的分類:永久表空間(表咪奖,視圖,存儲過程)

臨時表空間(數(shù)據(jù)庫操作當中酱床,中間執(zhí)行的過程羊赵,執(zhí)行結(jié)束后會被釋放)

undo表空間(保存事務(wù)所修改的舊值,可以對數(shù)據(jù)進行回滾即撤銷操作)

查看用戶的表空間:

1.dba_tablespaces(系統(tǒng)用戶表空間) user_tablespaces(普通用戶表空間) 數(shù)據(jù)字典

步驟:conn system/abc...123

select tablespace_name from dba_tablespaces;

結(jié)果為:system? ? (存放sys系統(tǒng)表空間)

sysaux? ? (作為一個example的輔佐表空間)

undotbs1 (存儲撤銷的表空間)

temp? ? ? (臨時表空間)

users

exmple

步驟:desc user_tablespaces;

select tablespace_name from user_tablespaces;

2.dba_users user_usres數(shù)據(jù)字典

conn sys/abc...123 as sysdba

desc dba_users;

查看system默認的表空間和臨時表空間是什么扇谣?

select defult_tablespace,temporary_tablespce from dba_users where username='SYSTEM';

結(jié)果是:SYSTEM? TEMP(學(xué)會如何更改默認表空間和臨時表空間昧捷,方便數(shù)據(jù)的備份及恢復(fù))

設(shè)置用戶默認或臨時表空間:

ALTER USER usernme DEFAULT|TEMPORARY TABLESPACE tablespace_name

alter user system default tablespace user;

創(chuàng)建表空間:

create [temporary] tablespace tablespace_name tempfile|datafile 'xx.dbf' size xx

創(chuàng)建永久表空間:

create tablespace test1_tablespace datafile 'textfile.dbf' size 10m;

創(chuàng)建臨時表空間:

create temporary tablespace temptest1_tablespace tempfile 'tempfile1.dbf' size 10m;

通過數(shù)據(jù)字典查看表空間位置:

通過數(shù)據(jù)字典查看創(chuàng)建的永久表空間:

desc dba_data_files;(返回的字段有file_name tablespace_name...)

查看表空間所在的文件位置:

select file_name from dba_data_files where tablespce_name='TEST1_TABLESPACE';

查看臨時表空間:desc dba_temp_files;

查看表空間所在的文件位置:

select file_name from dba_temp_files where tablespce_name='TEMPTEST1_TABLESPACE';

修改表空間:

1.修改表空間的狀態(tài)

a.設(shè)置聯(lián)機或脫機狀態(tài):alter tablespace tablespace_name online|offline;

創(chuàng)建完一個表空間之后,默認狀態(tài)是聯(lián)機狀態(tài)揍堕;

具體操作:

alter tablespace test1_tablespace offline;

desc dba_tablespaces;數(shù)據(jù)字典查看status

select status from dba_tablesaces where tablespace_name='TEST1_TABLESPACE';結(jié)果為:status:offline

再設(shè)置回聯(lián)機狀態(tài):alter tablespace test1_tablespace online;

select status from dba_tablespaces where tablespace_name='TEST1_TABLESPACE';結(jié)果為status:online

b.設(shè)置只讀或可讀寫狀態(tài):alter tablespace tablespace_name read only|read write;

默認情況下是可讀寫的料身,聯(lián)機狀態(tài)才可以更改讀寫性

具體操作:

alter tablespace test1_tablespace read only;

select status from dba_tablespaces where tablespace_name='TEST1_TABLESPACE';結(jié)果為:status:online

2.修改數(shù)據(jù)文件

a.增加數(shù)據(jù)文件:

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

具體操作:向表空間test1里添加數(shù)據(jù)文件

alter tablespace test1_tablespace add datafile 'text2_file.dbf' size 10m;

select file_name from dba_files where tablespace_name='TEST_TABLESPACE';查看新增的文件位置

b.刪除數(shù)據(jù)文件:

alter tablespace tablespace_name drop datafile 'filename.dbf'

不能刪除表空間里面的第一個數(shù)據(jù)文件,如果要刪除的話需要把整個表空間刪掉衩茸。

具體操作:刪除上面新增的text2_file.dbf

alter tablespace test1_tblespace drop datafile'text2_file.dbf';

select file_name from dba_files where tablespace_name='TEST_TABLESPACE';查看文件位置發(fā)現(xiàn)text2已經(jīng)刪除

刪除表空間:

drop tablespace tablespace_name [INCLUEDING CONTENTS]

如若僅刪除表空間芹血,不刪除數(shù)據(jù)文件:則不需要加 [INCLUDING CONTENTS]

具體操作:刪除表空間test1

drop tablespace test1_tablespace including contents;刪除表空間成功

操作表:

1.認識表

a.表都存放在表空間里,是數(shù)據(jù)庫基本存儲單位,是一個二維結(jié)構(gòu)幔烛,行(記錄)和列(域和字段)

b.約定:1.每一列數(shù)據(jù)必須具有相同的數(shù)據(jù)類型

2.列名唯一

3.每行數(shù)據(jù)的唯一性(重復(fù)的行會造成表中數(shù)據(jù)的冗余)

2.數(shù)據(jù)類型

a.字符型:

char(n),nchar(n)是固定長度的啃擦,nchar是按照unique格式存放數(shù)據(jù),char的n最大值是2000饿悬,而nchar的n最大值是1000令蛉;一般用nchar存儲漢子。不夠會自動補上空格狡恬。

varchar2(n),nvarchar2(n),varchar2(n)最大值是4000珠叔,nvarchar2(n)最大值是2000.不夠不會補上空格,可以節(jié)省空間弟劲。

b.數(shù)值型

number(p,s) p代表有效數(shù)字祷安,s代表小數(shù)點后的位數(shù);例如:number(5,2) 有效數(shù)字5位兔乞,保留2位小數(shù)汇鞭,如123.45s

float(n) 主要存儲二進制數(shù)據(jù)(能表示二進制的數(shù)據(jù)位數(shù)是1-126位),二進制數(shù)轉(zhuǎn)換成十進制需要乘以0.30103才能得到庸追。所以在oracle中使用number比較多

c.日期型

data date類型表示范圍:公元前4712年1月1日到公元9999年12月31日

可以精確到秒霍骄。

timestamp時間戳類型,能精確到小數(shù)秒

d.其他

blob:能存放4g的數(shù)據(jù)(二進制)

clob:能存放4g的數(shù)據(jù)(字符串類型)

3.管理表

創(chuàng)建表:

基本語法:

create table table_name

(

column_name datatype,...

)在同一個用戶下淡溯,所有的表名要是唯一的

創(chuàng)建用戶信息表:

所需字段:? 編號? ? 用戶名 密碼? 郵箱? 注冊時間

字段的類型:number? ? varchar2(n)? ? ? ? date

create table userinfo

(id number(6,0),

username varchar2(20),

userpwd varchar2(20),

email varchar2(30),

regdate date);

查看表的結(jié)構(gòu)與查看數(shù)據(jù)字典的方法一樣:desc userinfo

修改表:(修改表的結(jié)構(gòu)读整,而不是數(shù)據(jù))

1.添加字段(列或者域):

如果一個表已經(jīng)創(chuàng)建好,還想再添加一些字段:

alter table table_name add column_name datatype;凡是對表進行修改都是alter table

具體操作:向useinfo表里添加一個備注字段

alter table usreinfo add remarks varchars(500);

2.更改字段的數(shù)據(jù)類型:

alter table table_name modify column_name datatype;

操作:修改數(shù)據(jù)類型的長度血筑,更換數(shù)據(jù)類型

alter table userinfo modify remarks varchar2(400);注意:如果在一個表當中已經(jīng)存在了數(shù)據(jù)绘沉,則不能修改,只有在數(shù)據(jù)為空的情況下才能進行更改)豺总。

alter table userinfo modify userpwd number(6,0);修改密碼字段的數(shù)據(jù)類型

3.刪除字段:

alter table table_name drop column column_name;

具體操作:alter table userinfo drop column remarks;

4.修改字段名:

alter table table_name rename column column_name to new_column_name;

具體操作:alter table useinfo rename column email to new_email;

5.修改表名:

rename table_name to new_table_name;

rename userinfo tp new_userinfo;

4.刪除表:

truncate table table_name;(刪除表當中的全部數(shù)據(jù)车伞,也叫截斷表,比delete速度快)

truncate table new_userinfo;刪除表里的數(shù)據(jù)喻喳,表的結(jié)構(gòu)仍然存在另玖。

drop table table_name;刪除整張表的結(jié)構(gòu):

drop table new_userinfo;刪除表不存在了。

操作表中的數(shù)據(jù):

1.添加數(shù)據(jù):

insert語句:

insert into table_name

(column1,column2,...)

values(value1,value2,...)

操作實例:

1.向表中所有字段添加值:

insert into userinfo values(1,'xxx','123','xxx@126.com',sysdate);向表中插入一條數(shù)據(jù)表伦,sysdate函數(shù)獲取當前系統(tǒng)時間谦去。

查看該條數(shù)據(jù):select * from userinfo;

2.向表中指定字段添加值:

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

查看數(shù)據(jù):select username,userpwd from userinfo;

3.向表中添加默認值:

a.創(chuàng)建表時就設(shè)置;create table userinfo1(id number(6,0),regdate date default sysdate);

插入數(shù)據(jù)時:insert into userinfo1 (id) values(1);則regdate字段會自動補上。

查詢:select * from userinfo1;

修改userinfo表email字段

b.已經(jīng)創(chuàng)建好表蹦哼,后來再修改成default

更改字段的數(shù)據(jù)類型:alter table userinfo modify email default '無'鳄哭;

再向表中插入數(shù)據(jù):insert into userinfo (id) values(2);

查看:select email from useinfo;

注意:字符型加單引號;如果在創(chuàng)建表市纲熏,某些字段不能為空時添加值時需不為空妆丘。

2.復(fù)制表數(shù)據(jù):

1.在建表時復(fù)制:

create table table_new as select column1,...|*from table_old;

create table userinfo_new as select * from userinfo;全部復(fù)制

create table userinfo_new1 as select id,username from userfino;復(fù)制部分

2.在添加時復(fù)制:

insert into table_new [(column1,..)] select column1,...| * from table_old;

表已經(jīng)存在锄俄,在添加數(shù)據(jù)時復(fù)制數(shù)據(jù):

insert into userinfo_new select * from userinfo;復(fù)制userinfo表的全部數(shù)據(jù)

查看:select if from userinfo_new;

inert into uerinfo_new(id,username) select id,username from userinfo;復(fù)制userinfo表的部分數(shù)據(jù)

3.修改數(shù)據(jù):

update語句:

update table_name set column1=value1,...[where cinditions];修改的條件,如果不加where condition則會給所有的行更改

操作實例:

無條件的更新:

update userinfo set userpwd='111111';一個字段的更改

select userpwd from userinfo;

update userinfo set userpwd='111',email='111@126.com';多個字段的更改

select userpwd,email from userinfo;

有條件的更新:

用戶名是xxx的密碼改為:123456

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

select userpwd from userinfo;

4.刪除數(shù)據(jù):

以行為單位來進行刪除勺拣。

delete from table_name; truncate table截斷表 和delete from table_name效果一樣

操作實例:

無條件的刪除:

先創(chuàng)建刪除表:create table testdel1 as select * from userinfo;

刪除表奶赠;delete from testdel1;

查看:select * from testdel1;結(jié)果:未選定行,刪除成功药有。

有條件的刪除:刪除用戶名是yyy的用戶:

先查看yyy用戶是否存在:select username from userinfo;

刪除用戶名yyy:detele from userinfo where username='yyy';

約束:數(shù)據(jù)類型是控制輸入的值的類型毅戈,約束是控制你輸入的值要滿足你設(shè)定好的一些要求的。

1.約束的作用:

1.定義規(guī)則

2.確保完整性

2.oracle中的5個約束:

1.非空約束

1.在創(chuàng)建表時設(shè)置非空約束:

create table table_name (column_name datatype not null,...);

create table userinfo_1(id number(6,0),username varchar2(20) not null, userpwd varchar2(20) not null);

2.在修改表時添加非空約束:

alter table table_name modify column_name dtatype not null;

給userinfo添加非空約束:alter table userinfo modify username varchar2(20) no tnull;報錯愤惰,因為表內(nèi)有數(shù)據(jù)苇经。

此時需要把表內(nèi)數(shù)據(jù)刪除才能添加約束:delete from userinfo;

再執(zhí)行: alter table table_name modify column_name dtatype not null;添加約束,就會成功羊苟。

3.在修改表時去除非空約束:

alter table table_name modify column_name datatype null;

alter table table_name modify column_name dtatype null;

2.主鍵約束

作用:確保表當中每一行數(shù)據(jù)的唯一性(非空塑陵,唯一)一張表里只能設(shè)置一個主鍵約束感憾,但是這個主鍵約束可以由多個字段構(gòu)成(聯(lián)合主鍵或復(fù)合主鍵)

1.在創(chuàng)建表的時候設(shè)置主鍵約束:

列集:

create table table_name ( column_name datatype primary key,...)

create table userinfo_p

(id number(6,0) primary key,

username varchar2(20),

userpwd varchar2(20)

); 主鍵約束默認是not null;

表集:

聯(lián)合主鍵:(在所有的字段寫完后蜡励,再寫此句約束)表集約束

constraint constraint_name primary key(column_name1,...)

create table userinfo_p1

(id number(6,0),

username varchar2(20),

userpwd varchar2(20),

constraint pk_idusername primary key(id,username));

結(jié)果表userinfo_p1的id 和username都為not null.

desc user_constraints;通過這個數(shù)據(jù)字典來查詢約束的名字,類型等

例如查約束的名字:

select constraint_name from user_constraints where table_name=' userinfo_p1';

查詢到的主鍵約束名字為:pk_idusername

之前給userinfo_p的id字段設(shè)置主鍵約束但并未設(shè)置名字阻桅,而是由系統(tǒng)生成的凉倚, select constraint_name from user_constraints where table_name=' userinfo_p';結(jié)果為:SYS_C0010836

2.在修改表的時候添加主鍵約束:

ADD CONSTRAINT constraint_name primary key(column_name1,...);

alter table userinfo

add constraint pk_id primary key(id);

如果表當中已經(jīng)存在值了,值必須得是唯一的嫂沉,不能為空值稽寒;最好的在添加主鍵時表內(nèi)沒有值。

select constraint_name from user_constraints where table_name=' userinfo';結(jié)果:pk_id

3.更改約束的名稱:

rename constraint old_name to new_name

alter table userinfo

rename constraint pk_id to new_pk_id;

可以更改主鍵約束的名字趟章,也可以更改任何一個約束的名字杏糙。

4.刪除主鍵約束:

1.禁用|啟用:

disable|enable constraint constraint_name

操作:alter table userinfo

disable constriant new_pk_id;

查看禁用的約束:

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

2.drop constraint constraint_name完全刪除約束

操作:alter table userinfo

drop constraint new_pk_id;

3.drop primary key[cascade],由于每張表只有一個主鍵約束,cascade是表存在及聯(lián)約束時蚓土,刪除其余表對這表的外鍵約束

3.外鍵約束

1.在創(chuàng)建表時設(shè)置外鍵約束:

列集:

create table table1

(column_name datatype references

table2(column_name),...);

table2是主表宏侍,table1是從表;設(shè)置外鍵約束時蜀漆,主表的字段必須是主鍵谅河,主從表中相應(yīng)的字段必須是同一個數(shù)據(jù)類型;從表中外鍵字段的值必須來自主表中的相應(yīng)字段的值确丢,或者為null的值

操作:

1.先創(chuàng)建主表:(用戶類型表)

create table typeinfo

(typeid varchar2(10) primary key,

typename varchar2(20));

2.創(chuàng)建從表:

create table userinfo_f

(id varchar2(10) primary key,

username varchar2(20),

typeid_new varchar2(10) references typeinfo(typeid));

3.驗證向從表當中的typeid的來源要么是主表當中的值要么是空值绷耍。

insert into typeinfo values(1,1);

insert into userinfo_f(id,typeid_new) values(1,2)報錯

insert into userinfo_f(id,typeid_new) values(1,1); ok了

插入空值insert into userinfo_f(id,typeid_new) values(2,null); ok了

表集:

關(guān)鍵字? ? ? ? ? ? ? ? ? ? 外鍵約束關(guān)鍵字

constraint constraint_name foreign key(column_name) references table_name(column_name) [ON DELETE CASCADE]及聯(lián)刪除:主表當中的數(shù)據(jù)刪除之后,從表當中使用了這條數(shù)據(jù)的字段也會被刪除鲜侥。確保了主從表數(shù)據(jù)的完整性褂始。約束的名字是唯一的

create table userinfo_f2

(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_f3

(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);

2.在修改表時添加外鍵約束:

add constraint constraint_name foreign key(column_name) references table_name(column_name) [on delete cascade]

操作:

1.創(chuàng)建表:create table userinfo_f4

(id varchar2(10) primary key,

username varchar2(20),

typeid_new varchar2(10));

2.更改表:

add constraint fk_typeid_alter foreign key(typeid_new)references typeinfo(typeid);

3.刪除外鍵約束:

1.禁用|啟用:

disable|enable constraint constraint_name

因為忘記了外鍵約束的名字,所以先查找外鍵約束的名字:

select constraint_name,constraint_type,status from user_constraints where table_name='USERINFO_F4';

結(jié)果:一個P描函,主鍵約束崎苗;一個R搂赋,外鍵約束,名字為:FK_TYPEID_ALTER

操作:alter table userinfo

disable constraint FK_TYPEID_ALTER;

驗證是否禁用:

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

2.徹底刪除:

drop constraint constraint_name完全刪除約束

操作:alter table userinfo

drop constraint FK_TYPEID_ALTER;

4.唯一約束

作用:保證字段值的唯一性

主鍵約束作用是保證值的唯一性益缠;唯一約束和主鍵約束的區(qū)別:主鍵字段必須是非空的脑奠,而唯一約束則可以為空值;每張表的主鍵約束只能有一個幅慌,而唯一約束卻可以有多個宋欺。

1.在創(chuàng)建表時設(shè)置唯一約束:

列集:

create table table_name

(column_name datatype UNIQUE,...)

操作:create table userinfo_u

(id varchar2(10) primary key,

username varchar2(20) unique,

userpwd varchar2(20));

表集:

constraint constraint_name unique(column_name),這句話放在所有字段定義完成之后胰伍。

要將多個字段設(shè)置成唯一的約束齿诞,需要寫多個唯一約束語句。

操作:create table userinfo_u1

(id varchar2(10) primary key,

username varchar2(20),

constraint un_username unique(username));

2.在修改表時添加唯一約束:

add constraint constraint_name unique(column_name);

操作:1.創(chuàng)建表:create table userinfo_u2

(id varchar2(10) primary key,

username varchar2(20));

2.添加唯一約束:

alter table userinfo_u2 add constraint un_username_new unique(username);

3.刪除唯一約束:

1.暫時禁用:

disable|enable constraint constraint_name

查看約束的名字骂租,類型祷杈,狀態(tài):

select constraint_name,constrint_type,status from user_constraints where table_name=' userinfo_ u2';

結(jié)果為: 一個u 一個p.

alter table userinfo_u2

disable constraint UN_USENAME_NEW;

2.徹底刪除:

drop constraint constraint_name

5.檢查約束

作用:讓表中的數(shù)據(jù)更具有實際意義

員工個人信息:年齡,工資渗饮,電話號碼

50? ? 1000? 134XXXXX

1.在創(chuàng)建表時設(shè)置檢查約束:

在一個表當中也可以有多個但汞。

列集:

create table table_name (column_name datatype check(expressions),...)

操作:create table userinfo_c

(id varchar2(10) primary key,

username varchar2(20),

salary number(5,0) check(salary>0));

這樣就不能往里插負數(shù)的工資數(shù)據(jù)了。

表集:

constraint constraint_name check(expressions);通常以ck,chk開頭

操作:

create table userinfo_c1

(id varchar2(10) primary key,

username varchar2(20),

salary number(5,0),

constraint ck_salary check(salary>0));

2.在修改表時添加檢查約束:

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_salary_new check(salary>0);

3.刪除檢查約束:

1.暫時禁用:

disable|enable constraint constraint_name

2.徹底刪除:

drop constrint constraint_name

約束小結(jié):1.只有主鍵約束在每張表里面只能有一個互站,可以由多個字段構(gòu)成私蕾。

2.外鍵約束時唯一一個涉及兩張表之間關(guān)系的約束

3.在創(chuàng)建表時設(shè)置約束:非空約束只能在列級設(shè)置,不能在表級設(shè)置胡桃,并且設(shè)置非空約束時踩叭,非空約束沒有名字。

4.在修改表時添加約束:在修改表的時候添加非空約束實際上用的是:修改字段的語句翠胰,為:alter table table_name modify column_name datatype not null;

5.更改約束的名稱:非空約束沒有名字容贝,不能使用該語句

1.不知道約束名稱時,可以更加數(shù)據(jù)字典來查看:user_constraints

2.rename constraint old_name to new_name 此語句就是更改約束名稱的語句

6.刪除約束:1.alter table table_name modify column_name datatype null;

2.禁用:disable | enable constraint constraint_name(放在alter table之后出現(xiàn))

3.徹底刪除:drop constraint constraint_name

4.刪除主鍵約束:drop primary key

查詢:

1.基本查詢語句:

select [distinct] column_name1,...|* from table_name [where conditions]

2.在SQL*PLUS中設(shè)置格式:設(shè)置查詢結(jié)果的顯示格式

1.更改查詢后結(jié)果的字段名:column column_name heading new_name之景; (column可以簡寫成col)

操作:設(shè)置新的字段名:col username heading 用戶名;

2.column column_name format dataformat; (注意:字符類型只能設(shè)置顯示的長度)

操作:把用戶名字段的數(shù)值長度改為10:

col username format a10;(a代表字符型斤富,10代表10個長度)

把工資字段設(shè)置為顯示一位小數(shù):

col salary format 9999.9;(9代表一個數(shù)值)

把工資格式改為美元符號開頭:

col salary format $9999.9;

3.清除設(shè)置的格式:col column_name clear;

3.查詢表中的所有字段及指定字段:

1.查詢所有字段:select * from table_name;

操作:select * from users;

2.查詢部分字段:select column1_name,column2_name from table_name;

4.給字段設(shè)置別名? :(注意:是針對查詢結(jié)果進行的,并沒有更改字段的名字)

可以一次為多個字段設(shè)置別名

select column_name as new_name,... from table_name;(注意:as可以省略闺兢,用空格隔開原來的字段名和新名字即可)

操作:select id as 編號茂缚,username as 用戶名,salary 工資 from users;

通過distinct去除重復(fù)的用戶名:

select distinct username as 用戶名 from users屋谭;

5.運算符和表達式:

表達式=操作數(shù)+運算符

操作數(shù):變量脚囊,常量,字段桐磁;

運算符:算術(shù)運算符:+ - * /

比較運算符:>, >=, <, <=, =, <>

邏輯運算符:and or not (not是非)

6.在select語句中使用運算符:(只影響查詢結(jié)果悔耘,不影響實際表中的數(shù)據(jù),要真的改表中的數(shù)據(jù)我擂,需要使用update語句)

使用算術(shù)運算符:select id,username,salary+200 from users;(給工資加200元)

使用比較運算符:select username from users where salary>800;(查詢工資超過800元的人)

使用邏輯運算符:select username from users where salary>800 and salary<>1500;(查詢工資高于800衬以,但不等于1500的人)缓艳;

7.帶條件的查詢:

1.單一條件查詢: select salary from users where username='aaa';

2.多條件的查詢: 使用邏輯運算符連接語句 select * from users where username='aaa' or salary>2000;

select * from users where username='aaa' or (salary>800 and salary<=2000);

邏輯運算符的有限性:not > and > or; 比較運算符 >邏輯運算符

select * from users where not (username='aaa');

8.模糊查詢:

like

通配符的使用:_ %(一個_只能代表一個字符,%可以代表0到多個任意字符)

操作:查找以a開頭的用戶:select * from users where username like 'a%';

查找含有a的用戶名:select * from users where username like '%a%';

9.范圍查詢:

between...and(從什么值到什么值)

操作:查詢工資從800到2000的用戶:select * from users where salary between 800 and 2000;(是閉合區(qū)間)

in/not in (后面的值不是范圍看峻,而是一個具體的值)查詢的值等于什么阶淘,不等于什么。

select * from users where username in ('aaa','bbb');

10.對查詢結(jié)果排序:

select... from...[where...] order by column1 desc/asc,...

操作:select * from users order by username desc,salary asc;(用戶名)

11.case...when語句使用:

1. case column_name

when calue1 then result1,...

[else result] end

操作:select username, case username when 'aaa' then '計算機部門'

when 'bbb' then '市場部門' else '其他部門' end as 部門

from users;

2. case

when column_name=value1

then result1,...[else result] end

操作: select username,case when username='aaa' then '計算機部門'

when username='bbb' then '市場部' else '其他部門' end as 部門

from users;

select username,case when salary<800 then '工資低'

when salary>5000 then '工資高' end as 工資水平

from users;

12.decode函數(shù)的使用:

decode (column_name,value1,result1,...,defaultvalue)

操作: select username, decode(username,'aaa','計算機部門','bbb','市場部門','其他')as 部門

from users;

總結(jié):

1.用戶表空間:

1.如何查看登錄用戶:show user命令 dba_users數(shù)據(jù)字典

2.啟用scoot用戶

3.如何查看某個用戶的默認表空間和臨時表空間

4.表空間管理:創(chuàng)建,修改,刪除表空間

2.表與約束:

1.數(shù)據(jù)類型:char(n) nchar(n) varchar2(n) nvarchar2(n) ;數(shù)值型:number(p,s) float(n) ;日期型:date,timestamp ;其他類型:blob,clob

2.對表的創(chuàng)建,修改,刪除

3.對表中數(shù)據(jù)的操作:添加數(shù)據(jù)insert 修改數(shù)據(jù)update 刪除數(shù)據(jù):delete

4.5個約束:非空約束,主鍵約束,外鍵約束,唯一約束,檢查約束

5.查詢語句:查詢所有字段和指定字段;在查詢語句中使用運算符和表達式;在查詢語句中加入where;范圍查詢;模糊查詢:like關(guān)鍵字,通配符;case...when語句和Decode函數(shù)

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末互妓,一起剝皮案震驚了整個濱河市溪窒,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌冯勉,老刑警劉巖澈蚌,帶你破解...
    沈念sama閱讀 206,214評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異灼狰,居然都是意外死亡宛瞄,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,307評論 2 382
  • 文/潘曉璐 我一進店門交胚,熙熙樓的掌柜王于貴愁眉苦臉地迎上來份汗,“玉大人,你說我怎么就攤上這事承绸÷阌埃” “怎么了?”我有些...
    開封第一講書人閱讀 152,543評論 0 341
  • 文/不壞的土叔 我叫張陵军熏,是天一觀的道長。 經(jīng)常有香客問我卷扮,道長荡澎,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 55,221評論 1 279
  • 正文 為了忘掉前任晤锹,我火速辦了婚禮摩幔,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘鞭铆。我一直安慰自己或衡,他們只是感情好,可當我...
    茶點故事閱讀 64,224評論 5 371
  • 文/花漫 我一把揭開白布车遂。 她就那樣靜靜地躺著封断,像睡著了一般。 火紅的嫁衣襯著肌膚如雪舶担。 梳的紋絲不亂的頭發(fā)上坡疼,一...
    開封第一講書人閱讀 49,007評論 1 284
  • 那天,我揣著相機與錄音衣陶,去河邊找鬼柄瑰。 笑死闸氮,一個胖子當著我的面吹牛谍婉,可吹牛的內(nèi)容都是我干的蒲障。 我是一名探鬼主播焚碌,決...
    沈念sama閱讀 38,313評論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼非剃,長吁一口氣:“原來是場噩夢啊……” “哼箱季!你這毒婦竟也來了霜定?” 一聲冷哼從身側(cè)響起漓滔,我...
    開封第一講書人閱讀 36,956評論 0 259
  • 序言:老撾萬榮一對情侶失蹤锈津,失蹤者是張志新(化名)和其女友劉穎藏姐,沒想到半個月后隆箩,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,441評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡羔杨,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 35,925評論 2 323
  • 正文 我和宋清朗相戀三年捌臊,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片兜材。...
    茶點故事閱讀 38,018評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡理澎,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出曙寡,到底是詐尸還是另有隱情糠爬,我是刑警寧澤,帶...
    沈念sama閱讀 33,685評論 4 322
  • 正文 年R本政府宣布举庶,位于F島的核電站执隧,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏户侥。R本人自食惡果不足惜镀琉,卻給世界環(huán)境...
    茶點故事閱讀 39,234評論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望蕊唐。 院中可真熱鬧屋摔,春花似錦、人聲如沸替梨。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,240評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽副瀑。三九已至弓熏,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間俗扇,已是汗流浹背硝烂。 一陣腳步聲響...
    開封第一講書人閱讀 31,464評論 1 261
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留铜幽,地道東北人滞谢。 一個月前我還...
    沈念sama閱讀 45,467評論 2 352
  • 正文 我出身青樓串稀,卻偏偏與公主長得像,于是被迫代替她去往敵國和親狮杨。 傳聞我的和親對象是個殘疾皇子母截,可洞房花燭夜當晚...
    茶點故事閱讀 42,762評論 2 345

推薦閱讀更多精彩內(nèi)容