大师网-带你快速走向大师之路 解决你在学习过程中的疑惑,带你快速进入大师之门。节省时间,提升效率

SQL学习笔记

SQL笔记

@(学习笔记)

基本语法

// 查询语句,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