SQL語句的分類

### 1.SQL語句的分類

*? DDL語句(數(shù)據(jù)定義語句)

? ? 主要用于定義數(shù)據(jù)庫對象的SQL語句

? ? *數(shù)據(jù)庫對象:表(table)暇藏,列(column),視圖(view)扒俯,索引(index)...*

? ? 1.? create: 創(chuàng)建

? ? 2.? alter: 修改

? ? 3.? replace: 替換

? ? 4.? drop: 放棄(刪除)

? ? 5.? truncate: 截斷

*? DML語句(數(shù)據(jù)操作語句)

? ? 主要用于數(shù)據(jù)的變更

? ? 1.? insert 插入(新增數(shù)據(jù))

? ? 2.? update 更新(修改數(shù)據(jù))

? ? 3.? delete 刪除

? ? 4.? merage 合并

*? TCL語句(事務控制語句)

? ? 主要用于事務控制

? ? 1.? commit 提交事務

? ? 2.? rollback 回滾事務

*? DQL語句(數(shù)據(jù)查詢語句)

? ? 主要用于查詢和檢索數(shù)據(jù)

? ? 1.? select 查詢

*? DCL語句(數(shù)據(jù)控制語句)

? ? 主要用于數(shù)據(jù)庫權限管理

? ? 1.? grant 授權

? ? 2.? revoke 回收

### 2.DML語句(數(shù)據(jù)操作語句)

##### 2.1 新增數(shù)據(jù)(insert)

語法:

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

向表中增加一條記錄

*? 為所有的列都賦值

? ? ![image](//upload-images.jianshu.io/upload_images/15606715-2fa8900e9605a9b8.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/238/format/webp)

```

INSERT INTO dept VALUES(1,'開發(fā)一部','沈陽');

```

![image](//upload-images.jianshu.io/upload_images/15606715-ad59c3248ce6640c.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/285/format/webp)

*? 為指定的列賦值

? ? 為指定的列進行賦值,未指定的列的值默認就是null

? ? **如果某個列是not null,則它必須被賦值**

```

INSERT INTO dept(deptno,dname) VALUES(2,'開發(fā)二部');

```

*? 一次插入多條數(shù)據(jù)(MySQL方言)(了解)

```

INSERT INTO dept VALUES(3,'開發(fā)三部','沈陽'),(4,'開發(fā)四部','沈陽');

```

##### 2.2 刪除數(shù)據(jù)(delete)

從表中移除一些數(shù)據(jù)

*? 無條件刪除(全刪除)

```

DELETE FROM dept;

```

*? 有條件刪除 (根據(jù)設定條件進行刪除)

1.? 刪除deptno的值是4的部門記錄

```

DELETE FROM dept WHERE deptno = 4;

```

2.? 刪除loc的值是"沈陽"的部門記錄

```

DELETE FROM dept WHERE loc = '沈陽';

```

3.? 邏輯-與 AND

? ? X AND Y必須同時滿足兩個條件X和Y

? ? 刪除loc是“北京”同時名字是“開發(fā)一部”的記錄

```

DELETE FROM dept WHERE dname = '開發(fā)一部' AND loc = '北京'

```

4.? 邏輯-或 OR

? ? X OR Y必須滿足X和Y其中任一條件

? ? 刪除loc是“北京”或者名字是“開發(fā)一部”的記錄

```

DELETE FROM dept WHERE dname = '開發(fā)一部' OR loc = '北京'

```

5.? 邏輯-非 NOT

? ? 表示邏輯取反 X = 12 取反 X != 12 X <> 12

? ? X > 12 取反 X <= 12

? ? 刪除學生考試分數(shù)在[80,90]區(qū)間的記錄

```

DELETE FROM student WHERE score >= 80 and score <= 90

DELETE FROM student WHERE score between 80 and 90;

```

刪除學生考試分數(shù)不在[80,90]區(qū)間的記錄

```

DELETE FROM student WHERE score < 80 or score > 90

DELETE FROM student WHERE score NOT between 80 and 90;

```

*面試題:delete捞蛋,drop和truncate的區(qū)別吠撮?*

*delete DML語句 表示刪除表中數(shù)據(jù)尊惰,這個操作是可以恢復的*

*drop DDL語句 表示刪除整張表,包含表結構泥兰, 不可恢復*

*truncate DDL語句 表示截斷表弄屡,不刪除表結構只清空數(shù)據(jù), 數(shù)據(jù)不可恢復鞋诗,刪除速度快*

##### 2.3 修改數(shù)據(jù)(update)

修改表中一些數(shù)據(jù)

*? 無條件修改(全表進行更新)

? ? 將dept表中所有數(shù)據(jù)的dname更新為“開發(fā)部”膀捷,loc更新為“北京”

```

UPDATE dept SET dname = '開發(fā)部',loc = '北京'

```

將emp表中所有數(shù)據(jù)的sal增加200

```

UPDATE emp SET sal = sal + 200

```

*? 有條件修改(符合條件記錄進行修改)

? ? 將dept表中的dname是“開發(fā)二部”的數(shù)據(jù)的loc設置為“北京”

```

UPDATE dept SET loc = '北京' WHERE dname = '開發(fā)二部'

```

### 3.事務的概念

事務(Transaction),一般是指要做的或所做的事情削彬。在計算機術語中是指訪問并可能更新數(shù)據(jù)庫中各種數(shù)據(jù)項的一個程序執(zhí)行單元(unit)全庸。

比如說轉賬的例子是事務(101賬號給102賬號轉賬100)

```

update 賬戶 set 余額 = 余額 - 100 where 賬號= 101

update 賬戶 set 余額 = 余額 + 100 where 賬號= 102

```

兩條SQL語句必須同時執(zhí)行組成了一個完整的執(zhí)行單元,必須同時成功

事務的四個特性

*? 原子性:組成事務的這些SQL語句是一個整體吃警,不可能繼續(xù)劃分

*? 一致性:這些SQL語句要么同時成功糕篇,要么同時失敗。不允許只成功一部分

*? 隔離性:不同事務之間不能互相干擾

*? 持久性:事務執(zhí)行成功后酌心,數(shù)據(jù)有效地保存

事務控制

```

set AutoCommit false;? -- 關閉自動提交

update 賬戶 set 余額 = 余額 - 100 where 賬號= 101;

update 賬戶 set 余額 = 余額 + 100 where 賬號= 102;

commit;? -- 手動提交

```

當執(zhí)行commit時會將兩個語句的執(zhí)行結果同時執(zhí)行到數(shù)據(jù)庫中

```

set AutoCommit false;? -- 關閉自動提交

update 賬戶 set 余額 = 余額 - 100 where 賬號= 101;

update 賬戶 set 余額 = 余額 + 100 where 賬號= 102;

rollback;? -- 手動回滾

```

當執(zhí)行rollback時會將兩個語句的執(zhí)行結果同時撤銷拌消,不會對數(shù)據(jù)庫產(chǎn)生影響

### 4.查詢數(shù)據(jù)準備

##### 4.1 建表

*? 創(chuàng)建location表

```

CREATE TABLE location (

? locid varchar(64) NOT NULL,

? adress varchar(128) DEFAULT NULL,

? PRIMARY KEY (locid)

)

```

*? 創(chuàng)建dept表

```

CREATE TABLE dept (

? deptno int(8) NOT NULL,

? dname varchar(64) NOT NULL,

? loc varchar(64) DEFAULT NULL,

? PRIMARY KEY (deptno)

)

```

*? 創(chuàng)建emp表

```

CREATE TABLE emp (

? empno int(8) NOT NULL,

? ename varchar(64) NOT NULL,

? job varchar(64) DEFAULT NULL,

? mgr int(8) DEFAULT NULL,

? hiredate date DEFAULT NULL,

? sal int(8) DEFAULT NULL,

? comm int(8) DEFAULT NULL,

? deptno int(8) DEFAULT NULL,

? PRIMARY KEY (empno),

? KEY `FK_EMP_DEPTNO` (deptno),

? CONSTRAINT `FK_EMP_DEPTNO` FOREIGN KEY (deptno) REFERENCES dept (deptno)

)

```

##### 4.2 創(chuàng)建數(shù)據(jù)

*? location表數(shù)據(jù)

```

insert? into location(locid,adress) values ('BOSTON','110, NO.5 Street');

insert? into location(locid,adress) values ('DALLAS','No.12 Farm');

insert? into location(locid,adress) values ('NEW YORK','NO 121 Queen Street ');

```

*? dept表數(shù)據(jù)

```

insert? into dept(deptno,dname,loc) values (10,'RESEARCH','BOSTON');

insert? into dept(deptno,dname,loc) values (20,'SALES','NEW YORK');

insert? into dept(deptno,dname,loc) values (30,'MANAGE','DALLAS');

insert? into dept(deptno,dname,loc) values (40,'HRD','NEW YORK');

```

*? emp表數(shù)據(jù)

```

insert? into emp(empno,ename,job,mgr,hiredate,sal,comm,deptno) values (1001,'TOM','PROGRAMER',1004,'1994-12-22',3800,NULL,10);

insert? into emp(empno,ename,job,mgr,hiredate,sal,comm,deptno) values (1002,'SMITH','PROGRAMER',1004,'1994-07-05',3500,NULL,10);

insert? into emp(empno,ename,job,mgr,hiredate,sal,comm,deptno) values (1003,'JACK','CLERK',1004,'1992-02-12',2500,NULL,10);

insert? into emp(empno,ename,job,mgr,hiredate,sal,comm,deptno) values (1004,'SCOTT','ANALIST',1007,'1992-01-15',4500,NULL,10);

insert? into emp(empno,ename,job,mgr,hiredate,sal,comm,deptno) values (1005,'ALEX','CLERK',1006,'1993-05-07',2800,NULL,30);

insert? into emp(empno,ename,job,mgr,hiredate,sal,comm,deptno) values (1006,'FORD','MANAGER',1007,'1994-07-05',4300,NULL,NULL);

insert? into emp(empno,ename,job,mgr,hiredate,sal,comm,deptno) values (1007,'KING','PESIDENT',NULL,'1992-01-01',7000,NULL,30);

insert? into emp(empno,ename,job,mgr,hiredate,sal,comm,deptno) values (1008,'MOON','MANAGER',1007,'1992-01-15',5000,1200,20);

insert? into emp(empno,ename,job,mgr,hiredate,sal,comm,deptno) values (1009,'TED','SALESMAN',1008,'1994-07-14',2500,1500,20);

insert? into emp(empno,ename,job,mgr,hiredate,sal,comm,deptno) values (1010,'JUCY','SALESMAN',1008,'1998-08-07',2200,800,20);

insert? into emp(empno,ename,job,mgr,hiredate,sal,comm,deptno) values (1011,'LEE','SALESMAN',1008,'1999-07-12',2200,500,20);

insert? into emp(empno,ename,job,mgr,hiredate,sal,comm,deptno) values (1012,'AMY','CLERK',1008,'1994-08-05',2200,NULL,20);

insert? into emp(empno,ename,job,mgr,hiredate,sal,comm,deptno) values (1013,'EMLIY','ANALIST',1007,'1996-06-29',4500,NULL,10);

insert? into emp(empno,ename,job,mgr,hiredate,sal,comm,deptno) values (1014,'ZORO','PROGRAME

```

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市安券,隨后出現(xiàn)的幾起案子墩崩,更是在濱河造成了極大的恐慌,老刑警劉巖侯勉,帶你破解...
    沈念sama閱讀 211,884評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件鹦筹,死亡現(xiàn)場離奇詭異,居然都是意外死亡址貌,警方通過查閱死者的電腦和手機铐拐,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,347評論 3 385
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來练对,“玉大人遍蟋,你說我怎么就攤上這事∶荆” “怎么了虚青?”我有些...
    開封第一講書人閱讀 157,435評論 0 348
  • 文/不壞的土叔 我叫張陵,是天一觀的道長螺男。 經(jīng)常有香客問我棒厘,道長纵穿,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,509評論 1 284
  • 正文 為了忘掉前任奢人,我火速辦了婚禮谓媒,結果婚禮上,老公的妹妹穿的比我還像新娘达传。我一直安慰自己篙耗,他們只是感情好,可當我...
    茶點故事閱讀 65,611評論 6 386
  • 文/花漫 我一把揭開白布宪赶。 她就那樣靜靜地躺著宗弯,像睡著了一般。 火紅的嫁衣襯著肌膚如雪搂妻。 梳的紋絲不亂的頭發(fā)上蒙保,一...
    開封第一講書人閱讀 49,837評論 1 290
  • 那天,我揣著相機與錄音欲主,去河邊找鬼邓厕。 笑死,一個胖子當著我的面吹牛扁瓢,可吹牛的內容都是我干的详恼。 我是一名探鬼主播,決...
    沈念sama閱讀 38,987評論 3 408
  • 文/蒼蘭香墨 我猛地睜開眼引几,長吁一口氣:“原來是場噩夢啊……” “哼昧互!你這毒婦竟也來了?” 一聲冷哼從身側響起伟桅,我...
    開封第一講書人閱讀 37,730評論 0 267
  • 序言:老撾萬榮一對情侶失蹤敞掘,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后楣铁,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體玖雁,經(jīng)...
    沈念sama閱讀 44,194評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 36,525評論 2 327
  • 正文 我和宋清朗相戀三年盖腕,在試婚紗的時候發(fā)現(xiàn)自己被綠了赫冬。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,664評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡溃列,死狀恐怖面殖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情哭廉,我是刑警寧澤,帶...
    沈念sama閱讀 34,334評論 4 330
  • 正文 年R本政府宣布相叁,位于F島的核電站遵绰,受9級特大地震影響辽幌,放射性物質發(fā)生泄漏。R本人自食惡果不足惜椿访,卻給世界環(huán)境...
    茶點故事閱讀 39,944評論 3 313
  • 文/蒙蒙 一乌企、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧成玫,春花似錦加酵、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,764評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至钦勘,卻和暖如春陋葡,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背彻采。 一陣腳步聲響...
    開封第一講書人閱讀 31,997評論 1 266
  • 我被黑心中介騙來泰國打工腐缤, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人肛响。 一個月前我還...
    沈念sama閱讀 46,389評論 2 360
  • 正文 我出身青樓岭粤,卻偏偏與公主長得像,于是被迫代替她去往敵國和親特笋。 傳聞我的和親對象是個殘疾皇子剃浇,可洞房花燭夜當晚...
    茶點故事閱讀 43,554評論 2 349

推薦閱讀更多精彩內容

  • 引出 ?請思考如下問題? –查詢所有員工的每個月工資總和雹有,平均工資偿渡? –查詢工資最高和最低的工資是多少? –查詢公...
    C_cole閱讀 7,283評論 0 3
  • 1. select * from emp; 2. select empno, ename, job from em...
    海納百川_4d26閱讀 1,897評論 0 4
  • ORACLE自學教程 --create tabletestone ( id number, --序號usernam...
    落葉寂聊閱讀 1,072評論 0 0
  • 1.SQL概述 SQL語言(Structured Query Language)是一種數(shù)據(jù)庫查詢和程序設計語言霸奕,用...
    Rannio閱讀 585評論 0 4
  • 看到這個題目溜宽,尼也許會覺得我有些夸張。那你就跟我來吧质帅。 這就是弘吉剌家庭旅游景區(qū)弘吉剌部落是美女與智慧的象征适揉。部落...
    Tao延濤閱讀 398評論 1 3