SQL學習筆記

SQL筆記

@(學習筆記)mysql

基本語法

// 查詢語句,select * from 表名稱,表示選取全部列
SELECT 列名稱 FROM 表名稱

// 關鍵詞 DISTINCT 用於返回惟一不一樣的值。
SELECT DISTINCT 列名稱 FROM 表名稱

// 有條件的選取數據
SELECT 列名稱 FROM 表名稱 WHERE 列 運算符 值

// AND 和 OR 運算符,能夠在where子語句中把多個條件鏈接起來
SELECT * FROM Test WHERE cond1='A' AND cond2='B'
SELECT * FROM Test WHERE cond1='A' OR cond2='B'

// 根據指定的列對結果集進行排序,ORDER BY
SELECT Company, OrderNumber FROM Orders ORDER BY Company
SELECT Company, OrderNumber FROM Orders ORDER BY Company DESC // 降序
SELECT Company, OrderNumber FROM Orders ORDER BY Company ASC // 升序

// INSERT INTO,向表格中插入新的行
INSERT INTO 表名稱 VALUES (值1, 值2,....)
INSERT INTO table_name (列1, 列2,...) VALUES (值1, 值2,....) // 指定插入數據的列

// UPDATE,修改表中的數據
UPDATE 表名稱 SET 列名稱 = 新值 WHERE 列名稱 = 某值

// DELETE,刪除表中的行
DELETE FROM 表名稱 WHERE 列名稱 = 值
DELETE * FROM table_name // 刪除全部行

高級語法

// TOP子句,規定要返回的記錄的數目,在mysql中使用limit子句
SELECT column_name(s) FROM table_name LIMIT number

// LIKE 操做符用於在 WHERE 子句中搜索列中的指定模式。
SELECT column_name(s) FROM table_name WHERE column_name LIKE pattern
SELECT * FROM Persons WHERE City LIKE 'N%' // "%" 可用於定義通配符(模式中缺乏的字母)。

// SQL通配符
% ----- 替代一個或多個字符
_ ----- 僅替代一個字符
[charlist] ----- 字符列中的任何單一字符
[^charlist] ----- 不在字符列中的任何單一字符

// IN,IN 操做符容許咱們在 WHERE 子句中規定多個值。
SELECT column_name(s) FROM table_name WHERE column_name IN (value1,value2,...)

// BETWEEN,操做符 BETWEEN ... AND 會選取介於兩個值之間的數據範圍。這些值能夠是數值、文本或者日期。
SELECT column_name(s) FROM table_name WHERE column_name BETWEEN value1 AND value2

// Alias,能夠爲列名稱和表名稱指定別名
SELECT column_name(s) FROM table_name AS alias_name // 表的alias用法
SELECT column_name AS alias_name FROM table_name // 給列定別名

// join,從多個表中獲取數據
寫法1:SELECT Persons.LastName, Persons.FirstName, Orders.OrderNo FROM Persons, Orders WHERE Persons.Id_P = Orders.Id_P
寫法2:SELECT Persons.LastName, Persons.FirstName, Orders.OrderNo FROM Persons INNER JOIN Orders ON Persons.Id_P = Orders.Id_P ORDER BY Persons.LastName

函數

// AVG, AVG 函數返回數值列的平均值(null不計入)。
SELECT AVG(column_name) FROM table_name

// count,COUNT() 函數返回匹配指定條件的行數(null不計入)。
SELECT COUNT(column_name) FROM table_name

// FIRST()函數,FIRST() 函數返回指定的字段中第一個記錄的值。
SELECT FIRST(column_name) FROM table_name

// LAST() 函數,LAST() 函數返回指定的字段中最後一個記錄的值。
SELECT LAST(column_name) FROM table_name

// MAX() 函數,MAX 函數返回一列中的最大值。NULL 值不包括在計算中。
SELECT MAX(column_name) FROM table_name

// MIN() 函數,MIN 函數返回一列中的最小值。NULL 值不包括在計算中。
SELECT MIN(column_name) FROM table_name

// SUM() 函數,SUM 函數返回數值列的總數(總額)。
SELECT SUM(column_name) FROM table_name

// GROUP BY,合計函數 (好比 SUM) 經常須要添加 GROUP BY 語句。GROUP BY 語句用於結合合計函數,根據一個或多個列對結果集進行分組。
SELECT column_name, aggregate_function(column_name)
FROM table_name
WHERE column_name operator value
GROUP BY column_name

// HAVING 子句,在 SQL 中增長 HAVING 子句緣由是,WHERE 關鍵字沒法與合計函數一塊兒使用。
SELECT column_name, aggregate_function(column_name)
FROM table_name
WHERE column_name operator value
GROUP BY column_name
HAVING aggregate_function(column_name) operator value

// LEN函數,LEN 函數返回文本字段中值的長度。
SELECT LEN(column_name) FROM table_name
相關文章
相關標籤/搜索