关键字 | 功能 | 语法 |
---|---|---|
DISTINCT | 去重复值 | SELECT DISTINCT 列名称 FROM 表名称 |
WHERE | 条件查询 | SELECT 列名称 FROM 表名称 WHERE 列 运算符 值 运算符(等于=|不等于<>|大于>|小于<|大于等于>=| 小于等于<=| BETWEEN 在某个范围内| LIKE 搜索某种模式) |
AND 和 OR | WHERE 子语句中把两个或多个条件结合起来 | SELECT * FROM Persons WHERE (FirstName='Thomas' OR FirstName='William') AND LastName='Carter' |
ORDER BY | 默认ASC升序 DESC则降序 | SELECT Company, OrderNumber FROM Orders ORDER BY Company DESC, OrderNumber ASC |
INSERT INTO | 向表格中插入新的行 | INSERT INTO 表名称 VALUES (值1, 值2,....) INSERT INTO table_name (列1, 列2,...) VALUES (值1, 值2,....) |
Update | 修改表中数据 | UPDATE Person SET Address = 'Zhongshan 23', City = 'Nanjing' WHERE LastName = 'Wilson' |
DELETE | 删除表行 | DELETE FROM Person WHERE LastName = 'Wilson' 删除所有行 DELETE * FROM table_name |
TOP | 取数据 | 取前两条:SELECT TOP 2 * FROM Persons 取前50%:SELECT TOP 50 PERCENT * FROM Persons |
LIKE | 操作符 | %:代表零个或多个字符 _ :仅替代一个字符 [!charlist]:不在字符列中的任何单一字符 查N开头:SELECT * FROM Persons 查G结尾:SELECT * FROM Persons |
IN | 操作符允许我们在 WHERE 子句中规定多个值 | 选取姓氏为 Adams 和 Carter 的人: SELECT * FROM Persons WHERE LastName IN ('Adams','Carter') |
BETWEEN | 范围取值 | 范围查询年龄: SELECT column_name(s) |
AS (鸡肋功能) | 别名只是为了使查询程序更易阅读和书写 | SELECT po.OrderID, p.LastName, p.FirstName 等价于 SELECT Product_Orders.OrderID, Persons.LastName, Persons.FirstName |
inner Join | 用于根据两个或多个表中的列之间的关系,从这些表中查询数据 | SELECT Persons.LastName, Persons.FirstName, Orders.OrderNo FROM Persons, Orders WHERE Persons.Id_P = Orders.Id_P 等价于 SELECT Persons.LastName, Persons.FirstName, Orders.OrderNo FROM Persons INNER JOIN Orders ON Persons.Id_P = Orders.Id_P ORDER BY Persons.LastName |
LEFT JOIN | 左表为主返回行,不管右表是否匹配 | 查所有订购人以及订购单: SELECT Persons.LastName, Persons.FirstName, Orders.OrderNo |
RIGHT JOIN | 右表为主返回行,不管左表是否匹配 | 查所有定购单以及订购人: SELECT Persons.LastName, Persons.FirstName, Orders.OrderNo |
FULL JOIN | 列出所有 | 查所有人订购人,所有订购单: SELECT Persons.LastName, Persons.FirstName, Orders.OrderNo |
UNION 和 UNION ALL | 结果集 UNION允许重复UNION ALL不许重复 | SELECT column_name(s) FROM table_name1 UNION SELECT column_name(s) FROM table_name2 |
SELECT INTO | 把查询结果备份成一个表 | SELECT * INTO new_table_name [IN externaldatabase] FROM old_tablename |
CREATE DATABASE | 创建数据库 | CREATE DATABASE database_name |
CREATE TABLE | 创建表 | CREATE TABLE Persons UNIQUE (Id_P) :唯一标识一条记录可以多个 PRIMARY KEY (Id_P):唯一标识一条记录只能一个 foreign key (Id_P):外键约束,意思就是该字段与另外一张表有联系.好比儿子必定有爸爸,要是有人想把爸爸K掉,儿子就肯定不干了!反之没儿子的人如果要被K,就没人管啦 CHECK (Id_P>0):限制值 City varchar(255) DEFAULT 'Sandnes':默认值 |
CREATE INDEX | 比如你要从一个有一万条记录的表中读取记录,那么如果有索引,他会通过索引定位,找到你要找的记录,速度比一个一个记录的扫描表快很多很多倍。 | CREATE INDEX PersonIndex ON Person (LastName, FirstName) |
DROP | 删除操作 | 删除索引:DROP INDEX index_name 数据库不同则语法存在差异,自行百度 删除表:DROP TABLE 表名称 仅删除表格数据:TRUNCATE TABLE 表名称 删除数据库:DROP DATABASE 数据库名称 |
ALTER TABLE | 添加、修改、删除列 | 添加列:ALTER TABLE table_name 删除列:ALTER TABLE table_name 修改列:ALTER TABLE Persons |
VIEW | 视图是一个虚拟表 | CREATE VIEW view_name AS SELECT column_name(s) FROM table_name WHERE condition |
DATE | 日期函数 | MySQL Date 中的函数用法 NOW() 返回当前的日期和时间 SQL Server中的函数用法 |
RDBMS | 关系数据库系统 | 是 SQL 的基础,也是所有现代数据库系统诸如 Oracle、SQL Server、IBM DB2、Sybase、MySQL 以及 Microsoft Access 的基础。 |
函数 | 用法:SELECT function(列) FROM 表 AVG(column) 返回某列的平均值 UCASE(column) 函数把字段的值转换为大写 LCASE(column) 函数把字段的值转换为小写 MID() 函数用于从文本字段中提取字符 LEN() 函数返回文本字段中值的长度 ROUND() 函数用于把数值字段舍入为指定的小数位数 FORMAT() 函数用于对字段的显示进行格式化 | |
GROUP BY | 分组查询:主要用于某个重复值,列属性的分开查询操作 | 查询每个客户的总金额: SELECT Customer,SUM(OrderPrice) FROM Orders |
HAVING | 中增加 HAVING 子句原因是,WHERE 关键字无法与合计函数一起使用 | 查找客户 "Bush" 或 "Adams" 拥有超过 1500 的订单总金额:SELECT Customer,SUM(OrderPrice) FROM Orders WHERE Customer='Bush' OR Customer='Adams' GROUP BY Customer HAVING SUM(OrderPrice)>1500 |