MYSQL 學習筆記02

SQL TOP

TOP 子句用于規(guī)定要返回的記錄的數(shù)目。

對于擁有數(shù)千條記錄的大型表來說,TOP 子句是非常有用的。

注釋:并非所有的數(shù)據(jù)庫系統(tǒng)都支持 TOP 子句。

語法:SELECT TOP 條目數(shù) 查詢的相應字段 FROM 表名

SELECT TOP 5 * FROM user
#查詢user 表中五條數(shù)據(jù)
SELECT TOP 50 * FROM user
#查詢user 表中50%的數(shù)據(jù)

SQL LIKE

LIKE 操作符

LIKE 操作符用于在 WHERE 子句中搜索列中的指定模式。

語法:SELECT 查詢的相應字段 FROM 表名 WHERE 條件 LIKE 模式 - 模糊查詢

SELECT * FROM user WHERE uname LIKE 'L%'
#查詢表中姓名與L相關的數(shù)據(jù)
SELECT * FROM user WHERE uname NOT LIKE 'L%'
#查詢表中姓名與L不相關的數(shù)據(jù)

SQL 通配符

SQL 通配符

在搜索數(shù)據(jù)庫中的數(shù)據(jù)時,SQL 通配符可以替代一個或多個字符。

SQL 通配符必須與 LIKE 運算符一起使用。

通配符 描述
% 替代一個或多個字符
_ 僅替代一個字符
[charlist] 字符列中的任何單一字符
[^charlist]或者[!charlist] 不在字符列中的任何單一字

示例:

SELECT * FROM user WHERE uname LIKE 'L%';
#查詢表中uname L開頭的數(shù)據(jù)
SELECT * FROM user WHERE uname LIKE '%L';
#查詢表中uname L結束的數(shù)據(jù)
SELECT * FROM user WHERE uname LIKE '%c%';
#查詢表中uname 名字中帶有c的數(shù)據(jù)
SELECT * FROM user WHERE uname LIKE '_x';
#查詢表中uname 名稱中帶有*x的數(shù)據(jù)
SELECT * FROM user WHERE uname LIKE '[ALN]%'
#查詢表中uname 名稱中ALN的數(shù)據(jù)
SELECT * FROM user WHERE uname LIKE '[^ALN]%'
#查詢表中uname 名稱中不包含ALN的數(shù)據(jù)

SQL IN 操作符

SQL IN操作符

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

語法: SELECT 查詢相應字段 FROM 表名 WHERE 條件 IN (value1,value2...)

SELECT * FROM user WHERE uname IN ('lx','cm');
#查詢user表 uname 是'lx','cm'的數(shù)據(jù)

SQL BETWEEN

SQL BETWEEN 操作符

操作符 BETWEEN ... AND 會選取介于兩個值之間的數(shù)據(jù)范圍。這些值可以是數(shù)值、文本或者日期。

語法: SELECT 查詢相應字段 FROM 表名 WHERE 條件 BETWEEN value1 AND value2

SELECT * FROM user WHERE uname BETWEEN 'lx' AND 'cm';
#查詢表中l(wèi)x與cm列表中的數(shù)據(jù),不包含cm 
#例如: 表的順序是 lx,lcm,cm,xl  查詢出來的數(shù)據(jù)是 lx lcm

SQL Alias(別名)

通過SQL 可以為列表名稱指定別名

語法: SELECT 查詢字段名 FROM 表名 AS 別名

語法: SELECT 查詢字段名 AS 別名 FROM 表名

SELECT * FROM user AS aliasUser AND score AS aliasScore;
#返回的數(shù)據(jù)為兩個表的數(shù)據(jù)

SQL JOIN

SQL JOIN

用于根據(jù)兩個或多個表中的列之間的關系,從這些表中查數(shù)據(jù)。

SELECT Persons.LastName, Persons.FirstName, Orders.OrderNo
FROM Persons, Orders
WHERE Persons.Id_P = Orders.Id_P 

#用join的方式

SELECT Persons.LastName, Persons.FirstName, Orders.OrderNo
FROM Persons
INNER JOIN Orders
ON Persons.Id_P = Orders.Id_P

SQL INNER JOIN

在表中存在至少一個匹配時,INNER JOIN 關鍵字返回行。

SELECT Persons.LastName, Persons.FirstName, Orders.OrderNo
FROM Persons
INNER JOIN Orders
ON Persons.Id_P=Orders.Id_P

注釋: SQL JOIN更多語法請查看文檔

  • INNER JOIN 如果匹配到則不返回
  • LEFT JOIN 返回中變即便沒有匹配到的
  • RIGHT JOIN 返回右邊即便沒匹配到的
  • FULL JOIN 返回左右兩邊

SQL UNION

SQL UNION 操作符

UNION 操作符用于合并兩個或多個 SELECT 語句的結果集。

注意:UNION 內部的 SELECT 語句必須擁有相同數(shù)量的列。列也必須擁有相似的數(shù)據(jù)類型。同時,每條 SELECT 語句中的列的順序必須相同

語法:SELECT 查詢字段 FROM 表1 UNIOIN SELECT 查詢字段 FROM 表2

SQL SELECT INTO

SQL SELECT INTO

SELECT INTO 語句從一個表中選取數(shù)據(jù),然后把數(shù)據(jù)插入另一個表中

SELECT INTO 語句常用于創(chuàng)建表的備份復件或者用于對記錄進行存檔

SQL Constranints

約束用于限制加入表的數(shù)據(jù)的類型。

可以在創(chuàng)建表時規(guī)定約束(通過 CREATE TABLE 語句),或者在表創(chuàng)建之后也可以(通過 ALTER TABLE 語句)

  • NOT NULL 必須插入的值
  • UNIQUE
  • PRIMARY KEY 每個表必須有一個主鍵且只能有一個主鍵
  • FOREIGN KEY 外鍵 #FOREIGN KEY (Id_P) REFERENCES Persons(Id_P)
    • 一個表中的 FOREIGN KEY 指向另一個表中的 PRIMARY KEY
  • CHECK CHECK 約束用于限制列中的值的范圍
  • DEFAULT 創(chuàng)建表時的默認值

SQL CREATE INDEX

CREATE INDEX

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

用戶修改有索引的數(shù)據(jù)比沒有索引的數(shù)據(jù)會花費更多的時間

語法:CREATE INDEX index_name ON table_name (column_name);

SQL ALTER TABLE

ALTER TABLE

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

添加語法:ALTER TABLE table_name ADD column_name datatype

ALTER TABLE Persons ADD Birthday date;

刪除語法:ALTER TABLE table_name DROP COLUMN column_name

ALTER TABLE Persons DROP COLUMN Birthday;

修改語法:ALTER TABEL table_name MODIFY COLUMN column_name datatype

#修改類型
ALTER TABLE Persons MODIFY Birthday varchar(16);
#修改字段是類型
ALTER TABLE Persons CHANGE Birthday birthday varchar(16);

SQL INCREMENT

AUTO INCREMENT

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

CREATE TABLE Persons(
        P_Id int NOT NULL AUTO_INCREMENT, #AUTO_INCREMENT 自增
        LastName varchar(255) NOT NULL,
        FirstName varchar(255),
        Address varchar(255),
        City varchar(255),
        PRIMARY KEY (P_Id)
)
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容