SQL指令操作篇

SQL: Structured Query Language

  • DOL: create / drop /alter

  • DML: insert / delete / update

  • DQL: select

  • DCL: grant / revoke

DOL: create / drop /alter

  • 創(chuàng)建一個(gè)數(shù)據(jù)庫(kù)
CREATE DATABASE
IF NOT EXISTS date_name DEFAULT charset utf8;
  • 切換數(shù)據(jù)庫(kù)
 USE date_name;
  • 刪除表
DROP TABLE IF EXISTS tb_dept;
  • 創(chuàng)建表驱闷,能夠唯一確定一條記錄的列可以設(shè)置為主鍵
CREATE TABLE tb_dept
(
-- deptno 不能為空
deptno INTEGER NOT NULL COMMENT '部門編號(hào)',
dename VARCHAR(20) NOT NULL COMMENT '部門名稱',
dloc VARCHAR(10) COMMENT '所在地',
PRIMARY KEY (deptno)
);
  • 向已知表添加數(shù)據(jù)項(xiàng)
ALTER TABLE tb_dept ADD ddate date COMMENT '成立日期';
  • 向表添加數(shù)據(jù)
INSERT INTO tb_dept VALUES (10, '財(cái)務(wù)部', '成都', NOW());
INSERT INTO tb_dept (deptno, dename) VALUES (20, '研發(fā)部');
INSERT INTO tb_dept (deptno, dename) VALUES (30, '銷售1部'), (40, '銷售2部'), (50, '后勤部');
  • 刪除數(shù)據(jù)(注意:帶上條件)
DELETE FROM tb_dept WHERE deptno=50;
  • 更新數(shù)據(jù)
UPDATE tb_dept SET dloc='深圳', ddate='2018-4-1' WHERE deptno=30;

DQL: select

  • WHERE 子句用于提取那些滿足指定標(biāo)準(zhǔn)的記錄里伯。
-- 查詢country='CN'的網(wǎng)址
SELECT * FROM Websites WHERE country='CN';
  • AND & OR 運(yùn)算符用于基于一個(gè)以上的條件對(duì)記錄進(jìn)行過(guò)濾激况。
-- 從 "Websites" 表中選取 alexa 排名大于 "15" 且國(guó)家為 "CN" 或 "USA" 的所有網(wǎng)站
SELECT * FROM Websites
WHERE alexa > 15
AND (country='CN' OR country='USA');
  • ORDER BY 按照某個(gè)標(biāo)準(zhǔn)排序查詢
-- 從 "Websites" 表中選取所有網(wǎng)站碎紊,并按照 "alexa" 列降序排序
SELECT * FROM Websites
ORDER BY alexa DESC;
  • LIKE 操作符用于在 WHERE 子句中搜索列中的指定模式唱较。
-- 選取 name 以字母 "G" 開始的所有客戶:
SELECT * FROM Websites
WHERE name LIKE 'G%';
  • 通配符 可用于替代字符串中的任何其他字符天梧。在 SQL 中戚丸,通配符與 SQL LIKE 操作符一起使用。SQL 通配符用于搜索表中的數(shù)據(jù)裸违。
    在 SQL 中掖桦,可使用以下通配符:


    通配符
-- 選取 url 以字母 "https" 開始的所有網(wǎng)站
SELECT * FROM Websites
WHERE url LIKE 'https%';
  • MySQL 中使用 REGEXP 或 NOT REGEXP 運(yùn)算符 (或 RLIKE 和 NOT RLIKE) 來(lái)操作正則表達(dá)式。下面的 SQL 語(yǔ)句選取 name 以 "G"供汛、"F" 或 "s" 開始的所有網(wǎng)站:
SELECT * FROM Websites
WHERE name REGEXP '^[GFs]';
  • IN 操作符 允許在 WHERE 子句中規(guī)定多個(gè)值
-- 選取 name 為 "Google" 或 "Baidu" 的所有網(wǎng)站
SELECT * FROM Websites
WHERE name IN ('Google','Baidu');
  • BETWEEN 操作符 用于選取介于兩個(gè)值之間的數(shù)據(jù)范圍內(nèi)的值枪汪。
-- 下面的 SQL 語(yǔ)句選取 alexa 介于 1 和 20 之間的所有網(wǎng)站:
SELECT * FROM Websites
WHERE alexa BETWEEN 1 AND 20;
  • SQL別名 通過(guò)使用 SQL凛俱,可以為表名稱或列名稱指定別名。
    基本上料饥,創(chuàng)建別名是為了讓列名稱的可讀性更強(qiáng)。在下面的情況下朱监,使用別名很有用:
    • 在查詢中涉及超過(guò)一個(gè)表
    • 在查詢中使用了函數(shù)
    • 列名稱很長(zhǎng)或者可讀性差
    • 需要把兩個(gè)列或者多個(gè)列結(jié)合在一起
-- 列的 SQL 別名語(yǔ)法
SELECT column_name AS alias_name
FROM table_name;
表的 SQL 別名語(yǔ)法
SELECT column_name(s)
FROM table_name AS alias_name;
  • JOIN 用于把來(lái)自兩個(gè)或多個(gè)表的行結(jié)合起來(lái).不同的 SQL JOIN
    可以使用的不同的 SQL JOIN 類型:
    • INNER JOIN:如果表中有至少一個(gè)匹配岸啡,則返回行
    • LEFT JOIN:即使右表中沒(méi)有匹配,也從左表返回所有的行
    • RIGHT JOIN:即使左表中沒(méi)有匹配赫编,也從右表返回所有的行
    • FULL JOIN:只要其中一個(gè)表中存在匹配巡蘸,則返回行
select * from table1 join table2 on id_1 = id_2;
  • UNION 操作符合并兩個(gè)或多個(gè) SELECT 語(yǔ)句的結(jié)果。
SELECT column_name(s) FROM table1
UNION
SELECT column_name(s) FROM table2;
  • 新表復(fù)制舊表
CREATE TABLE 新表 SELECT * FROM 舊表
  • INSERT INTO SELECT 從一個(gè)表復(fù)制數(shù)據(jù)擂送,然后把數(shù)據(jù)插入到一個(gè)已存在的表中悦荒。當(dāng)然也可以復(fù)制制定項(xiàng)。
INSERT INTO table2 SELECT * FROM table1;
  • SQL 約束用于規(guī)定表中的數(shù)據(jù)規(guī)則嘹吨。如果存在違反約束的數(shù)據(jù)行為搬味,行為會(huì)被約束終止。約束可以在創(chuàng)建表時(shí)規(guī)定(通過(guò) CREATE TABLE 語(yǔ)句)蟀拷,或者在表創(chuàng)建之后規(guī)定(通過(guò) ALTER TABLE 語(yǔ)句)碰纬。
    在 SQL 中,我們有如下約束:

    • NOT NULL - 指示某列不能存儲(chǔ) NULL 值问芬。
    • UNIQUE - 保證某列的每行必須有唯一的值悦析。
    • PRIMARY KEY - NOT NULL 和 UNIQUE 的結(jié)合。確保某列(或兩個(gè)列多個(gè) 列的結(jié)合)有唯一標(biāo)識(shí)此衅,有助于更容易更快速地找到表中的一個(gè)特定的記錄强戴。
    • FOREIGN KEY - 保證一個(gè)表中的數(shù)據(jù)匹配另一個(gè)表中的值的參照完整性。
    • CHECK - 保證列中的值符合指定的條件挡鞍。
    • DEFAULT - 規(guī)定沒(méi)有給列賦值時(shí)的默認(rèn)值骑歹。
  • CREATE INDEX 語(yǔ)句用于在表中創(chuàng)建索引。在不讀取整個(gè)表的情況下墨微,索引使數(shù)據(jù)庫(kù)應(yīng)用程序可以更快地查找數(shù)據(jù)陵刹。

  • AUTO INCREMENT 會(huì)在新記錄插入表中時(shí)生成一個(gè)唯一的數(shù)字。

-- 給已經(jīng)存在的colume添加自增語(yǔ)法:
ALTER TABLE table_name CHANGE column_name column_name data_type(size) constraint_name AUTO_INCREMENT;
  • SELECT DISTINCT 去除表中重復(fù)項(xiàng)
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末欢嘿,一起剝皮案震驚了整個(gè)濱河市衰琐,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌炼蹦,老刑警劉巖羡宙,帶你破解...
    沈念sama閱讀 221,576評(píng)論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異掐隐,居然都是意外死亡狗热,警方通過(guò)查閱死者的電腦和手機(jī)钞馁,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,515評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)匿刮,“玉大人僧凰,你說(shuō)我怎么就攤上這事∈焱瑁” “怎么了训措?”我有些...
    開封第一講書人閱讀 168,017評(píng)論 0 360
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)光羞。 經(jīng)常有香客問(wèn)我绩鸣,道長(zhǎng),這世上最難降的妖魔是什么纱兑? 我笑而不...
    開封第一講書人閱讀 59,626評(píng)論 1 296
  • 正文 為了忘掉前任呀闻,我火速辦了婚禮,結(jié)果婚禮上潜慎,老公的妹妹穿的比我還像新娘捡多。我一直安慰自己,他們只是感情好铐炫,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,625評(píng)論 6 397
  • 文/花漫 我一把揭開白布局服。 她就那樣靜靜地躺著,像睡著了一般驳遵。 火紅的嫁衣襯著肌膚如雪淫奔。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,255評(píng)論 1 308
  • 那天堤结,我揣著相機(jī)與錄音唆迁,去河邊找鬼。 笑死竞穷,一個(gè)胖子當(dāng)著我的面吹牛唐责,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播瘾带,決...
    沈念sama閱讀 40,825評(píng)論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼鼠哥,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了看政?” 一聲冷哼從身側(cè)響起朴恳,我...
    開封第一講書人閱讀 39,729評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎允蚣,沒(méi)想到半個(gè)月后于颖,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,271評(píng)論 1 320
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡嚷兔,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,363評(píng)論 3 340
  • 正文 我和宋清朗相戀三年森渐,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了做入。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,498評(píng)論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡同衣,死狀恐怖竟块,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情耐齐,我是刑警寧澤浪秘,帶...
    沈念sama閱讀 36,183評(píng)論 5 350
  • 正文 年R本政府宣布,位于F島的核電站蚪缀,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏恕出。R本人自食惡果不足惜询枚,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,867評(píng)論 3 333
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望浙巫。 院中可真熱鬧金蜀,春花似錦、人聲如沸的畴。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,338評(píng)論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)丧裁。三九已至护桦,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間煎娇,已是汗流浹背二庵。 一陣腳步聲響...
    開封第一講書人閱讀 33,458評(píng)論 1 272
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留缓呛,地道東北人催享。 一個(gè)月前我還...
    沈念sama閱讀 48,906評(píng)論 3 376
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像哟绊,于是被迫代替她去往敵國(guó)和親因妙。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,507評(píng)論 2 359

推薦閱讀更多精彩內(nèi)容

  • SQL語(yǔ)言基礎(chǔ) 本章票髓,我們將會(huì)重點(diǎn)探討SQL語(yǔ)言基礎(chǔ)攀涵,學(xué)習(xí)用SQL進(jìn)行數(shù)據(jù)庫(kù)的基本數(shù)據(jù)查詢操作。另外請(qǐng)注意本章的S...
    厲鉚兄閱讀 5,332評(píng)論 2 46
  • DataBase-MySQL-PGSQL rm -f *.backup pg_dump -h localhost ...
    燕京博士閱讀 433評(píng)論 0 0
  • 數(shù)據(jù)庫(kù)概述: 數(shù)據(jù)庫(kù)(DataBase洽沟,DB):指長(zhǎng)期保存在計(jì)算機(jī)的存儲(chǔ)設(shè)備上汁果,按照一定規(guī)則組織起來(lái),可以被各種用...
    字節(jié)碼閱讀 545評(píng)論 0 0
  • 從產(chǎn)品設(shè)計(jì)的角度來(lái)思考技能的迭代那些技能點(diǎn)能帶來(lái)質(zhì)的提升玲躯?從自己自學(xué)舞蹈的經(jīng)歷抽象成模型來(lái)觀察潛在的規(guī)律 1 偶像...
    Michaelhan閱讀 282評(píng)論 0 0
  • 2018年2月19日据德,周一鳄乏,初三的日子第183天。 今天一掃陰霾棘利,也許是昨天陣陣浩蕩的春風(fēng)橱野,吹來(lái)滿天湛藍(lán)。天空藍(lán)得...
    天空有云閱讀 444評(píng)論 0 0