SQL 常用語法

一谭贪、什么是SQL?

?SQL 是用于訪問和處理數據庫的標準的計算機語言斤蔓。

二隆圆、SQL 能做什么漱挚?

? ? ? ?SQL 面向數據庫執(zhí)行查詢

? ? ? ?SQL 可從數據庫取回數據

? ? ? ?SQL 可在數據庫中插入新的記錄

? ? ? ?SQL 可更新數據庫中的數據

? ? ? ?SQL 可從數據庫刪除記錄

? ? ? ?SQL 可創(chuàng)建新數據庫

? ? ? ?SQL 可在數據庫中創(chuàng)建新表

? ? ? ?SQL 可在數據庫中創(chuàng)建視圖

? ? ? ?SQL 可以設置表、存儲過程和視圖的權限

三匾灶、在學語法之前,需要注意的是:

1. SQL 對大小寫不敏感

四租漂、SQL DML 和 DDL

可以把 SQL 分為兩個部分:數據操作語言 (DML) 和 數據定義語言 (DDL)阶女。

查詢和更新指令構成了 SQL 的 DML 部分:

SELECT- 從數據庫表中獲取數據

UPDATE- 更新數據庫表中的數據

DELETE- 從數據庫表中刪除數據

INSERT INTO- 向數據庫表中插入數據

SQL 的數據定義語言 (DDL) 部分使我們有能力創(chuàng)建或刪除表格颊糜。我們也可以定義索引(鍵),規(guī)定表之間的鏈接秃踩,以及施加表間的約束衬鱼。

SQL 中最重要的 DDL 語句:

CREATE DATABASE- 創(chuàng)建新數據庫

ALTER DATABASE- 修改數據庫

CREATE TABLE- 創(chuàng)建新表

ALTER TABLE- 變更(改變)數據庫表

DROP TABLE- 刪除表

CREATE INDEX- 創(chuàng)建索引(搜索鍵)

DROP INDEX- 刪除索引

五、具體的一些基本語法

1. select 語法

SELECT 列名稱 FROM 表名稱

SELECT * FROM 表名稱

SELECT?列名稱1憔杨,列名稱2 FROM 表名稱

2. select distinct

用來剔除掉一些重復的值鸟赫,用法同select

select distinct 列名稱 from 表名稱

3. where

SELECT 列名稱 FROM 表名稱 WHERE 列 運算符 值

其中運算符可以是常見的等號,大于號等消别,也可以是 between(在某個范圍內)抛蚤, like(搜索某種模式)

4. and? ?, or

顧名思義,就是或 和且 的關系

5. order by

對結果進行升序的排序

如果想要按照降序排序寻狂,可以語句末尾使用desc關鍵字

6. insert info 語句

可以向表格里面插入新的行

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

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

7. update?

去修改表中的數據

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

8. delete

DELETE FROM 表名稱 WHERE 列名稱 = 值

多說兩句:千萬別亂刪東西啊岁经,這些東西刪了,就找不回來了

所以我們DPW 這邊有弄個cronjob蛇券,每天定時去備份數據庫缀壤,放在IT那邊

9. TOP ,limit纠亚,rownum

規(guī)定要返回的記錄數目

注意:不是每個數據庫習題都支持top語句塘慕,但是有類似的

比如: SQL server的語法:

SELECT TOP number|percent column_name(s) FROM table_name

MySQL的語法

SELECT column_name(s) FROM table_name LIMIT number

Oracle的語法

SELECT column_name(s)? FROM table_name? WHERE ROWNUM <= number

三者舉例:

10. Like

SELECT column_name(s) FROM table_name WHERE column_name LIKE pattern

舉例:

1. 表示查找B開頭的parameter_id 集合

2. 表示查找e為結尾的parameter_id 集合

提示:"%" 可用于定義通配符(模式中缺少的字母)。

也可以結合NOT 關鍵字蒂胞,表示反選?

eg :SELECT?*from?app_parameterwhere?parameter_idNOT?LIKE'B%';

11. 通配符

像上面說的 %图呢,就是一個通配符,常用通配符如下

注意:通配符必須和LIKE 一起使用

12 IN

IN 操作符允許我們在 WHERE 子句中規(guī)定多個值啤誊。

和where一起使用

13 between? and

這個寫法一般是取兩者之間的范圍岳瞭,可以是數值,文本或者日期

也可以結合NOT 蚊锹,取反

搜索結果

14 join?

為了得到完整的結果瞳筏,我們需要從兩個或者多個表中獲取結果,這時候就要用到join

Person:

這個表里面牡昆,id_P就是這個表的主鍵

然后看下Order 這個表

注意了姚炕,這邊的id_O是這個表的主鍵,同時丢烘,order表中的id_P引用了person里面的人柱宦,而無需使用它們的確切名字

所以,這兩個表播瞳,利用了id_P 掸刊,串聯(lián)了起來

可以這樣使用:

SELECT * FROM Persons, Orders WHERE Persons.Id_P = Orders.Id_P

在放我項目里,我舉個例子:

第一張表:?app_profile

第二張表:

現在赢乓,我想搜這兩張表的所有organation_id = =?9Nno1vGQUKpp3wf7_nGqg的數據

也可以用join 的關鍵字來表達忧侧,比如這兩句是等同的

不同的SQL JOIN

INTER JOIN 是屬于內連接石窑,和JOIN 一樣

LEFT JOIN: 不管右表中沒有匹配,都會從左表返回所有的行

RIGHT JOIN: 不管左表中沒有匹配蚓炬,都會從右表返回所有的行

FULL JOIN: 全部輸出左右表所有的行

15 UNION

用于合并兩個或者多個select語句的結果集

請注意松逊,UNION 內部的 SELECT 語句必須擁有相同數量的列。列也必須擁有相似的數據類型肯夏。同時经宏,每條 SELECT 語句中的列的順序必須相同

舉個例子:

SELECT E_Name FROM Employees_China

UNION

SELECT E_Name FROM Employees_USA

那這樣的結果就是:

16 select into

從一個表中選取數據,然后把數據插入另一個表中

常用于創(chuàng)建表的備份附件或用戶對記錄進行存檔

語法:

1. 把所有的列插入新表

SELECT * INTO new_table_name? FROM old_tablename

2. 只把希望的列插入新表

SELECT column_name(s) INTO new_table_name? FROM old_tablename

3. 也可以和where相結合

SELECT LastName,Firstname INTO Persons_backup FROM Persons WHERE City='Beijing'

后面的(17-28)比較Corner驯击,大家了解一下即可

17 create database

用戶創(chuàng)建數據庫烁兰,語法為:?CREATE DATABASE database_name

18 create table

用于創(chuàng)建表,語法為: create table tableName ( 列名稱1 數據類型余耽, 列名稱2 數據類型)

19 constraints

這個是約束缚柏,比如創(chuàng)建表后的一些約束

這個在下面會具體說到

20? not null?

強制約束不接受NULL 值

?create table tableName ( 列名稱1 數據類型 NOT NULL, 列名稱2 數據類型)

21 unique

強制約束唯一性

?create table tableName (列名稱1 數據類型 NOT NULL碟贾, 列名稱2 數據類型 UNIQUE)

22 PRIMARY KEY?

約束唯一表示數據庫的每條記錄?

?create table tableName ( 列名稱1 數據類型 PRIMARY KEY?币喧, 列名稱2 數據類型 UNIQUE)

23?FOREIGN KEY

24 check?

只能放入特定的值(true,false)

25 default?

默認值

26 create index?

創(chuàng)建索引

在不讀取整個表的情況下袱耽,索引使數據庫應用程序可以更快的查找數據

介紹下什么是索引

您可以在表中創(chuàng)建索引杀餐,以便更加快速高效地查詢數據

用戶無法看到索引,他們只能被用來加速搜索/查詢

語法:

27 drop (一定要慎用)

使用drop語句朱巨,可以撤銷索引史翘、表以及數據庫

刪除索引:?

刪除表:

刪除數據庫:

僅僅刪除表內的數據,不刪除表本身

28 ALTER? TABLE?

ALTER TABLE 語句用于在已有的表中添加冀续、修改或者刪除列

添加列 :?

刪除列:

29 AUTO INCREMENT?

auto increment 會在新紀錄插入表中時琼讽,生成一個唯一的數據

我們通常希望在每次插入新紀錄時,自動創(chuàng)建主鍵字段的值

語法:

默認?auto increment 是從1開始洪唐,要是從其他值開始钻蹬,要執(zhí)行這句:

ALTER TABLE Persons AUTO_INCREMENT=100

29 VIEW

視圖是可視化的表

SQL中,視圖是基于SQL語句的結果集的可視化的表

視圖包含行和列凭需,就像一個真實的表问欠。視圖的字段就是來自一個或者多個數據庫中真實的表中的字段。

我們可以像視圖添加SQL函數粒蜈,where以及join語句等

create view 語法:

視圖總是顯示最近的數據顺献,每當用戶查詢視圖時,數據庫引起通過SQL語句來重建數據

舉個例子:

創(chuàng)建view:

查看它:

更新視圖語法

例子:

查看結果就是:

撤銷視圖

DROP VIEW viewName

30 null

null值是遺漏的未知數據

默認枯怖,表的列可以存放null值

我們可以用 is null 或者 is not null 來判斷是否為空值,null 和 0 是不等價的

?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末注整,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌肿轨,老刑警劉巖借浊,帶你破解...
    沈念sama閱讀 218,640評論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現場離奇詭異萝招,居然都是意外死亡,警方通過查閱死者的電腦和手機存捺,發(fā)現死者居然都...
    沈念sama閱讀 93,254評論 3 395
  • 文/潘曉璐 我一進店門槐沼,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人捌治,你說我怎么就攤上這事岗钩。” “怎么了肖油?”我有些...
    開封第一講書人閱讀 165,011評論 0 355
  • 文/不壞的土叔 我叫張陵兼吓,是天一觀的道長。 經常有香客問我森枪,道長视搏,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,755評論 1 294
  • 正文 為了忘掉前任县袱,我火速辦了婚禮浑娜,結果婚禮上,老公的妹妹穿的比我還像新娘式散。我一直安慰自己筋遭,他們只是感情好,可當我...
    茶點故事閱讀 67,774評論 6 392
  • 文/花漫 我一把揭開白布暴拄。 她就那樣靜靜地躺著漓滔,像睡著了一般。 火紅的嫁衣襯著肌膚如雪乖篷。 梳的紋絲不亂的頭發(fā)上响驴,一...
    開封第一講書人閱讀 51,610評論 1 305
  • 那天,我揣著相機與錄音那伐,去河邊找鬼踏施。 笑死,一個胖子當著我的面吹牛罕邀,可吹牛的內容都是我干的畅形。 我是一名探鬼主播,決...
    沈念sama閱讀 40,352評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼诉探,長吁一口氣:“原來是場噩夢啊……” “哼日熬!你這毒婦竟也來了?” 一聲冷哼從身側響起肾胯,我...
    開封第一講書人閱讀 39,257評論 0 276
  • 序言:老撾萬榮一對情侶失蹤竖席,失蹤者是張志新(化名)和其女友劉穎耘纱,沒想到半個月后,有當地人在樹林里發(fā)現了一具尸體毕荐,經...
    沈念sama閱讀 45,717評論 1 315
  • 正文 獨居荒郊野嶺守林人離奇死亡束析,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 37,894評論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現自己被綠了憎亚。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片员寇。...
    茶點故事閱讀 40,021評論 1 350
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖第美,靈堂內的尸體忽然破棺而出蝶锋,到底是詐尸還是另有隱情,我是刑警寧澤什往,帶...
    沈念sama閱讀 35,735評論 5 346
  • 正文 年R本政府宣布扳缕,位于F島的核電站,受9級特大地震影響别威,放射性物質發(fā)生泄漏躯舔。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,354評論 3 330
  • 文/蒙蒙 一省古、第九天 我趴在偏房一處隱蔽的房頂上張望庸毫。 院中可真熱鬧,春花似錦衫樊、人聲如沸飒赃。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,936評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽载佳。三九已至,卻和暖如春臀栈,著一層夾襖步出監(jiān)牢的瞬間蔫慧,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,054評論 1 270
  • 我被黑心中介騙來泰國打工权薯, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留姑躲,地道東北人。 一個月前我還...
    沈念sama閱讀 48,224評論 3 371
  • 正文 我出身青樓盟蚣,卻偏偏與公主長得像黍析,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子屎开,可洞房花燭夜當晚...
    茶點故事閱讀 44,974評論 2 355

推薦閱讀更多精彩內容