常用SQL語句


寫在前面


 

  本文記錄對表中數據的操作的基本SQL語句,以對數據庫數據操作“增刪改查”來覆蓋復習SQL語句,對於數據庫的創建、刪除、和對表的創建、修改、刪除不做記錄,因為現在這個可以很高效方便的通過圖形界面快速完成,所以本文僅僅記錄一些數據操作的、邏輯性的數據操作SQL語句——數據的增、刪、改、查,其中“查”為重難點,所以寫在后面,詳細記錄。

 

建立一個簡單的表來做實驗 ,表中pers為person的簡寫,persId自動增長

 


 

增,即向數據表中插入數據或者說添加新的一條記錄。

語句 :INSERT INTO ...

語法1:

INSERT INTO 表名稱 VALUES (值1, 值2,....)

 

例子:

1 INSERT  INTO person
2 VALUES (1,'張華','','閱讀')

 

 對於這種不在表名后面寫出字段(屬性)的插入方式,需要在VALUES值中添加所有的字段,包括可null的字段和自動增長的id字段都要添加進去,來看反例:

  1. 不在values中添加可自動增長的persId:
    1 INSERT  INTO person
    2 VALUES ('小華','','編程')

     

     

  2. 不在values中添加可null字段
    1 INSERT  INTO person
    2 VALUES (3'小華','')

     

     

語法2:

INSERT INTO table_name (列1, 列2,...) VALUES (值1, 值2,....)

 例子

  1. 不添加ID(已經設置自增長)和不添加可null項,僅僅添加not null:
    1 INSERT  INTO person(persName)
    2 VALUES ('小華')

     這個沒問題,避免了語法1中的不足,在開發中更為靈活,但是要注意,寫入的值對應好相對的屬性,避免一些由於類型相同而錯位的問題。

語法3:

在values的值一次加入多組

1 insert into students
2 values (5,'李白','',18),(6,'后羿','',19),(7,'周哥','',22)

 

 

 


 

改,即對數據中已有數據的更新、修改。

語句:Update...SET...

語法

UPDATE 表名稱 SET 列名稱 = 新值 WHERE 列名稱 = 某值

 

以下是例子,一張修改前的表如下

 

執行修改:

UPDATE person
SET persSex = '男', persHobby = '思考' WHERE persId = 4

 

修改結果:

 

 


刪,即刪除,刪除數據庫中不用的數據,具體的是刪除整個表(這里不寫)、刪除某條記錄。

語句:DELETE 

語法

DELETE FROM 表名稱 WHERE 列名稱 =

 

以下是一個栗子:

刪除前:

 

執行刪除

1 DELETE FROM person
2 WHERE persId = 4

 

刪除后:

 


查,即查詢,通過一定條件限制,查詢出符合要求的數據,查有很多技巧和用處,是重難點。

語句:SELECT 

基本查詢語句:

簡單查詢單個或多個屬性:

SELECT 列名稱 FROM 表名稱

 

查詢全部屬性:

SELECT * FROM 表名稱

 

基礎查詢

  1. 結果樣式:order by排序 ASC:小到大,DESC:大到小;group by 分組、distinct去重
  2. 笛卡爾積:select * from table1,table2
  3. 模糊查詢:like_ %
  4. 統計處理:count()avg()sum()max()min()
  5. 條件限定:having 、where、in/not in和exists、between_and
  6. 屬性、表重命名為新的屬性、表:AS
  7. 運算符:> < = != or and not
  8. 查詢某個屬性並修改其值:select  Freight + 10 as' 運費',name as' 姓名'將一個查詢結果作為下一次查詢的條件(例子:【查詢1】 查詢出雇佣日期比Margaret Peacock還晚的員工。(Employees)
  9. 1 select  *
    2 from Employees
    3 where HireDate >(
    4     select HireDate
    5     from Employees
    6     where FirstName = 'Margaret '
    7             AND LastName = 'Peacock'
    8 )
  10. 將查詢結果存儲為一張新表

    1 CREATE table mytableone AS 
    2 SELECT *
    3 FROM students,
    4         (SELECT student,classes,score
    5         FROM score_t
    6         WHERE score > 80) as R1
    7 WHERE students.id = R1.student

高級查詢

集合操作

  1. 並:union、union all(保留重復行),R U S,和並兩表,要求兩表的屬性類型相同
  2. defference),exceptR-S,得出的結果是R中有的S中沒有的行
  3. 交:intersect,兩表共有的

連接 join(笛卡爾積的簡化)

  1. 內鏈接 join,有的平台用 inner join
  2. 左外鏈接 left  [outer] join,
  3. 右鏈接 right join
  4. 全外鏈接 full join

除(覆蓋)運算


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM