Oracle知識梳理(三)操做篇:SQL基礎操做彙總

Oracle知識梳理(三)操做篇:SQL基礎操做彙總oracle

 

1、表操做spa

 一、表的建立(CREATE TABLE):設計

基本語句格式:       CREATE TABLE  table_name ( col_name    datatype, ……);blog

解釋 table_name 爲要建立的表的名稱(同一登陸用戶下表名必須惟一),col_name 爲表中屬性的名稱,datatype 爲屬性的相應數據類型,同一表中會有許多字段,也能夠在字段數據類型後追加各類約束條件(具體見約束)。table

例:class

二、表的修改(ALTER TABLE):email

解釋全部對錶進行修改的語句,開頭均以alter table+要修改的表的名稱,後面的一系列操做只須要追加相應的關鍵字語句便可,例如添加字段 ALTER TABLE table_name ADD col_name datatype登錄

(修改表名)基本語句格式RENAME table_name TO new_table_name;        (TO前面爲原表名,後面爲新的表名)基礎

例:變量

(添加字段)基本語句格式ALTER TABLE table_name ADD col_name datatype;    (add關鍵字爲添加字段使用)

例:

(修改字段名稱)基本語句格式ALTER TABLE table_name RENAME COLUMN col_name TO new_col_name;    (RENAME COLUMN爲修改字段名的關鍵字,TO後面爲新的名稱,前面爲原名稱)

例:

(修改字段數據類型)基本語句格式ALTER TABLE tbale_name MODIFY col_name datatype;     

例:

(刪除字段)基本語句格式ALTER TABLE table_name DROP COLUMN col_name;       (drop column爲字段刪除的關鍵字)

例:

三、表的刪除(DROP TABLE\TRUNCATE TABLE):

①截斷方式刪除表:僅清空表中數據,不會刪除表,也不會刪除表中的字段。

基本語句格式TRUNCATE TABLE table_name;

例:

②徹底刪除方式刪除表:會將整個表刪除,包括表中數據和表的結構、字段。

基本語句格式DROP TABLE table_name;

例:

四、向插入數據(INSERT INTO):

①純插入方式

基本語句格式:INSERT INTO table_name  (col_name1,col_name2…… ) VALUES(value1,value2……);  

解釋:values前的括號內爲字段名集,後面爲對應的值,值的數據類型必須與字段的數據類型一致,不然沒法添加,同時,根據values前括號內的內容能夠進行指定字段添加,例如:僅寫一個username字段,values後括號內僅一個「zhangsan」,即對單一字段添加值

例:

②複製表數據

(在建立表時進行復制)基本語句格式:CREATE TABLE table_new  AS SELECT  col_name1,col_name2... | * FROM table_old;  

  解釋:將table_old表中數據複製到新表中,能夠指定字段,也可所有複製,所有複製使用*,具體字段指定字段名便可。

例:

(在添加時進行復制)基本語句格式:INSERT INTO table_new (col_name1,col_name2…… ) SELECT col-name1,col-name2... | *  FROM table_old;

例:

五、修改表中數據(UPDATE ):

(無條件更新)基本語句格式:UPDATE table_name SET col_name1 = value1,col_name2=value2……;  (這種方式會將表中所有數據進行更新)

例:

此例中將全部password字段值設爲11111

(有條件更新)基本語句格式:UPDATE table_name SET col_name1=value1,col_name2=value2..  WHERE col-name=value...

例:

六、刪除表中數據(DELETE):

①刪除所有數據:

基本語句格式:DELETE FROM table_name;        這一句與上文截斷的結果一致,刪除該表中所有數據。

②刪除具體某行的數據:

基本語句格式:DELETE FROM table_name WHERE col_name=value....;

例:

2、約束

 一、主鍵約束(PRIMARY | CONSTRAINT)

注:一張表僅能有一個主鍵約束,主鍵約束能夠由多個字段構成(聯合主鍵,複合主鍵)。主鍵約束根據關鍵字PRIMARY KEY 和 CONSTRAINT來實現

建立表時添加主鍵約束:

① CREATE TABLE table_name (col_name1 datatype PRIMARY KEY);//建立表時,直接對某一屬性指定爲主鍵

②CONSTRAINT  constraint_name PRIMARY KEY (col_name1,col_name2..);//表級約束,通常在建立表時,全部字段都完成後,最後追加這個語句,以下例子:

create table userinfo(

id   number(6,0),

username   varchar2(20),

rank    varchar2(10),

constraint   pk_key (id,username),

);   //其中pk_key爲人爲命名的主鍵名稱

 

修改表時添加主鍵約束:ADD CONSTRAINT constraint_name PRIMARY KEY(col_name1,col_name2..);//通常跟在 ALTER TABLE table table_name後,進行主鍵追加,以下例子:

ALTER TABLE userinfo ADD CONSTRAINT pk_id (id );

修改主鍵約束名稱:RENAME CONSTRAINT old_name TO new_name; //用在ALTER TABLE table_name 後面,進行主鍵名稱的更改,以下例子:

ALTER TABLE userinfo RENAME CONSTRAINT pk_id TO pk_newid;

刪除主鍵約束:

①DROP CONSTRAINT constraint_name ; //完全刪除名稱爲constraint_name的主鍵約束,跟在ALTER TABLE table_name 後使用。

②DISABLE|ENABLE  CONSTRAINT  constraint_name;//這種方式爲 禁用 | 開啓 主鍵約束,並無實質的刪除,一樣是跟在ALTER TABLE table_name 語句後面使用。

二、外鍵約束(REFERENCES)

建立表時添加外鍵約束:

①CREATE TABLE table1(col_name1 datatype REFERENCES table2(col-name));//經過關鍵字REFERENCES,選擇table2中的字段做爲外鍵,被引用的字段必須爲table2的主鍵

②CONSTRAINT constraint_name FOREIGN KEY( col_name1,col_name2...) REFERENCES table2(col-name,col-name)[ON DELETE CASCADE ] //表級設置,同時指定級聯刪除,所謂級聯刪除就是,咱們主表中的一條數據被刪除,那麼從表中引用主表字段的這一行數據也會被刪除(經過ON DELETE CASCADE)。

修改表時設置外鍵約束:ADD CONSTRAINT constraint_name FOREIGN KEY( col_name1,col_name2...) REFERENCES table2(col-name,col-name)[ON DELETE CASCADE ]//跟在修改表語句後使用

刪除外鍵約束:

①DROP CONSTRAINT constraint_name ; //完全刪除名稱爲constraint_name的外約束,跟在ALTER TABLE table_name 後使用。

②DISABLE|ENABLE  CONSTRAINT  constraint_name;//這種方式爲 禁用 | 開啓 外鍵約束,並無實質的刪除,一樣是跟在ALTER TABLE table_name 語句後面使用。

三、非空約束(NOT NULL)

建立時添加非空約束:CREATE TABLE table_name (col_name datype NOT NULL);

修改表時添加非空約束:ALTER TABLE tbale_name MODIFY col_name datatype NOT NULL; 

刪除非空約束:ALTER TABLE tbale_name MODIFY col_name datatype NULL; 

四、惟一約束(UNIQUE)

注:惟一約束能夠有多個,而主鍵約束僅限一個,二者都有惟一限制

建立時添加非空約束:CREATE TABLE table_name (col_name datype UNIQUE);   或者 CONSTRAINT constraint_name UNIQUE (col-name,col-name);

修改表時添加非空約束:ALTER TABLE tbale_name ADD CONSTRAINT constraint_name UNIQUE (col-name,col-name)

刪除非空約束:DISABLE|ENABLE  CONSTRAINT  constraint_name;  或者 DROP CONSTRAINT constraint_name ;

五、檢查約束(CHECK)

注:檢查約束就是限制數據的實際意義,好比現實生活中工資不會出現負數,因此在表設計的時候,工資字段就要設置檢查約束,使其大於等於0

建立表的時候添加檢查約束:CREATE TABLE table_name (col_name datype CHECK( 具體的約束條件  ));  或者  CONSTRAINT constraint_name CHECK (條件);

修改表時添加檢查約束:ALTER TABLE tbale_name ADD CONSTRAINT constraint_name CHECK (條件)

刪除檢查約束:DISABLE|ENABLE  CONSTRAINT  constraint_name;  或者 DROP CONSTRAINT constraint_name ;

3、查詢

 

一、運算符 

算數運算符: +、-、*、/

比較運算符:> , >= , < , <= , = , <>          注:主要用在where關鍵字後面,結果爲布爾值 

邏輯運算符:NOT,  AND , OR        用以連接條件,對應着並,或,非。

表達式 = 操做數 + 運算符         這裏的操做數在oracle中能夠是變量,常量,字段

二、基本查找語句(SELECT)

基本語句格式:SELECT col-name1,col-name2... | * FROM table_name;

三、條件查詢(SELECT .... WHERE ...)

基本語句格式:SELECT col-name1,col-name2... | * FROM table_name WHERE 具體的條件表達式

                    例如:  SELECT  username,password FROM userinfo WHERE id>=1 AND salary >500;       //查詢id大於1,工資大於500的全部用戶的帳號和密碼信息

四、模糊查詢(LIKE)

          LIKE運算符能夠歸爲比較運算符的一種,經過 LIKE 關鍵字配合通配符  ‘_,%’ 構成實現模糊查詢的表達式,放置where後面便可。

  " _ " :  一個 ' _ '僅能代替一個字符,例如 a_,表明首字母爲a,後面僅有一位字符的組合。

  " % ":表明0個或多個字符,不限個數,例如  %a,表明末尾爲a的全部字符組合

基本語句格式:SELECT  * | col-name1,col-name2... FROM table_name WHERE  col-name LIKE  ' 通配符組成的信息 '

例如:   SELECT * FROM  userinfo WHERE username LIKE ‘a% ’     //查詢用戶名以a爲首字母的全部信息

SELECT email FROM  userinfo WHERE username LIKE ‘_a% ’     // 查詢用戶名第二個字符爲a的郵箱

SELECT username FROM  userinfo WHERE username LIKE ‘%a% ’    //查詢用戶名中包含a字母的全部用戶的用戶名

五、範圍查詢(BETWEEN.....AND....) 

主要經過 between  and 的組合構成某項屬性的範圍條件,與以前的條件查詢中運用<,>運算符進行條件查詢效果一致,同時進行條件表達式組合時也能夠配合NOT 進行組合,例如 NOT BETWEEN 30 AND 50,便是查小於30和大於50的範圍

基本語句格式: SELECT * | col-name1,col-name2... FROM table_name WHERE col-name BETWEEN ? AND ?;

六、並表查詢

 並表查詢主要依附於表的連接(JOIN),表的連接分爲,內鏈接,外鏈接,交叉鏈接。

內鏈接基本語句格式:SELECT *FROM table1 [inner] join table2 on table1.字段1=table2.字段1....;

內鏈接基本語句格式2:SELECT * FROM table1,table2  WHERE table1.字段1=table2.字段1....;

交叉鏈接:表與表之間作笛卡兒積,SELECT * FROM table1,table2....

外鏈接又可細分爲左外鏈接,右外鏈接和全鏈接

①左外鏈接:LEFT OUTER JOIN 

           左側的表中的所有數據都會被顯示出來,可是右側表的數據,只有和左側匹配上的字段纔會被查詢出來!不然都會顯示null!

    基本語句格式1SELECT * FROM table1 LEFT OUTER JOIN  table2 on table1.col-name1=table2.col-name1;

    基本語句格式2SELECT* FROM table1 LEFT OUTER JOIN  table2 where table1.col-name1=table2.col-name1;

②右外鏈接:RIGHT OUTER JOIN 

           右側的表中的所有數據都會被顯示出來,可是左側表的數據,只有和右側匹配上的字段纔會被查詢出來!不然都會顯示null!

     基本語句格式1:SELECT * FROM table1 RIGHT OUTER JOIN  table2 on table1.col-name1=table2.col-name1;

     基本語句格式2:SELECT* FROM table1 RIGHT OUTER JOIN  table2 where table1.col-name1=table2.col-name1;

③全外鏈接:FULL/ALL OUTER JOIN

     基本語句格式:SELECT * FROM table1 FULL OUTER JOIN  table2 on table1.col-name1=table2.col-name1;

相關文章
相關標籤/搜索