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ù)庫
CREATE DATABASE
IF NOT EXISTS date_name DEFAULT charset utf8;
  • 切換數(shù)據(jù)庫
 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è)以上的條件對記錄進(jìn)行過濾。
-- 從 "Websites" 表中選取 alexa 排名大于 "15" 且國家為 "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) 來操作正則表達(dá)式。下面的 SQL 語句選取 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 語句選取 alexa 介于 1 和 20 之間的所有網(wǎng)站:
SELECT * FROM Websites
WHERE alexa BETWEEN 1 AND 20;
  • SQL別名 通過使用 SQL,可以為表名稱或列名稱指定別名。
    基本上,創(chuàng)建別名是為了讓列名稱的可讀性更強(qiáng)。在下面的情況下,使用別名很有用:
    • 在查詢中涉及超過一個(gè)表
    • 在查詢中使用了函數(shù)
    • 列名稱很長或者可讀性差
    • 需要把兩個(gè)列或者多個(gè)列結(jié)合在一起
-- 列的 SQL 別名語法
SELECT column_name AS alias_name
FROM table_name;
表的 SQL 別名語法
SELECT column_name(s)
FROM table_name AS alias_name;
  • JOIN 用于把來自兩個(gè)或多個(gè)表的行結(jié)合起來.不同的 SQL JOIN
    可以使用的不同的 SQL JOIN 類型:
    • INNER JOIN:如果表中有至少一個(gè)匹配,則返回行
    • LEFT JOIN:即使右表中沒有匹配,也從左表返回所有的行
    • RIGHT JOIN:即使左表中沒有匹配,也從右表返回所有的行
    • FULL JOIN:只要其中一個(gè)表中存在匹配,則返回行
select * from table1 join table2 on id_1 = id_2;
  • UNION 操作符合并兩個(gè)或多個(gè) SELECT 語句的結(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ī)定(通過 CREATE TABLE 語句),或者在表創(chuàng)建之后規(guī)定(通過 ALTER TABLE 語句)。
    在 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ī)定沒有給列賦值時(shí)的默認(rèn)值。
  • CREATE INDEX 語句用于在表中創(chuàng)建索引。在不讀取整個(gè)表的情況下,索引使數(shù)據(jù)庫應(yīng)用程序可以更快地查找數(shù)據(jù)。

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

-- 給已經(jīng)存在的colume添加自增語法:
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)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

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

友情鏈接更多精彩內(nèi)容