1. 程式人生 > >複習之SQL語句(一)——常用單表“增刪改查”語句使用

複習之SQL語句(一)——常用單表“增刪改查”語句使用

結構化查詢語言(Structured Query Language)簡稱SQL

結構化查詢語言是高階的非過程化程式語言,允許使用者在高層資料結構上工作。它不要求使用者指定對資料的存放方法,也不需要使用者瞭解具體的資料存放方式,所以具有完全不同底層結構的不同資料庫系統, 可以使用相同的結構化查詢語言作為資料輸入與管理的介面。結構化查詢語言語句可以巢狀,這使它具有極大的靈活性和強大的功能。

注意

  • SQL 對大小寫不敏感:SELECT 與 select 是相同的。
  • SQL關鍵字建議使用大寫形式 新建一個table_user表
CREATE TABLE `table_user` (
`id`  int(32) NOT NULL AUTO_INCREMENT ,
`username`  varchar(32) NULL COMMENT '使用者名稱' ,
`password`  varchar(32) NULL COMMENT '密碼' ,
`summary`  varchar(128) NULL COMMENT '簡介' ,
PRIMARY KEY (`id`)
)
;

SELECT語句

查詢table_user表全部欄位資訊

SELECT * FROM table_user

查詢table_user表中username、password兩個欄位資訊

SELECT username,password FROM table_user

SELECT語句和WHERE子句

WHERE:條件 AND:和 OR:或 查詢id=3和username=123456的 table_user表全部欄位資訊

SELECT * FROM table_user WHERE id=3 AND  username=123456

SELECT語句與ORDER BY

ORDER BY 語句用於對結果集進行排序 ASC:升序(預設) DESC:降序 order by userId, age desc; //這個desc只針對前面一個欄位,多個欄位,先按第一個排 兩個的降序排列 orderby userId desc,age desc;

查詢table_user表全部欄位資訊根據id降序排列

SELECT * FROM table_user ORDER BY id DESC

SELECT DISTINCT 語句

在表中,一個列可能會包含多個重複值,有時您也許希望僅僅列出不同(distinct)的值。

DISTINCT 關鍵詞用於返回唯一不同的值。 查詢不同的username

SELECT DISTINCT username FROM table_user;

SELECT …LIKE語句

like ‘a%’ 模糊查詢 like ‘_a%’ 萬用字元 %表示0個到多個字元 _表示一個字元 [charlist] 字元列中的任何單一字元 [^charlist]或[!charlist] 不在字元列中的任何單一字元 模糊查詢username包含r都所有資料

SELECT * FROM table_user where username LIKE 'r%'

模糊查詢username中包含r、d、其中一個

SELECT * FROM table_user where username RLIKE '[rd]'

SELECT 其他

  • sql 裡面不等於 <>
  • between … and … 在什麼之間
  • in(list) 查詢一個list的資料
  • in(12,18)
  • 查詢欄位為null where username is null
  • 分頁查詢 limit 1,10
SELECT * FROM table_user limit 1,10
  • 別名
SELECT COUNT(*) count FROM table_user 

INSERT INTO語句

INSERT INTO 語句用於向表格中插入新的行。 新增一條username=root,password=123456的資料

兩種寫法

INSERT INTO table_user(username,password) VALUES ('root',123456)

下面這種資料列數和引數值要對應,包括主鍵也要給參 如id=9

INSERT INTO table_user VALUES (9,'root',123456,11111)

否則,[Err] 1136 - Column count doesn’t match value count at row 1 此處注意兩點

  • id 即主鍵要設自增,否則 [Err] 1364 - Field ‘id’ doesn’t have a default value

  • 非數字型別引數如:root 要加單引號,否則 [Err] 1054 - Unknown column ‘root’ in 'field list’

INSERT INTO SELECT 語句

INSERT INTO SELECT 語句從一個表複製資料,然後把資料插入到一個已存在的表中。目標表中任何已存在的行都不會受影響。

從一個表中複製所有的列插入到另一個已存在的表中: 要求表字段一模一樣

INSERT INTO table_user SELECT * FROM user2

也可以只複製希望的列插入到另一個已存在的表中: 這個比上面的靈活

INSERT INTO table_user(username) SELECT username FROM user2

SELECT INTO FROM語句

語句形式為:SELECT vale1, value2 into Table2 from Table1 要求目標表Table2不存在,因為在插入時會自動建立表Table2,並將Table1中指定欄位資料複製到Table2中。

UPDATE語句

根據id=1修改username=root,password=123456

   UPDATE table_user SET username='root', password=123456 WHERE id=1

DELETE語句

根據id=1刪除一條資料

DELETE FROM table_user WHERE id=1