TOP 子句:用于规定要返回的记录的数目。对于拥有数千条记录的大型表来说,TOP 子句是非常有用的。
#并非所有的数据库系统都支持 TOP 子句,在MYSQL中用limit子句代替
例:从 “Persons” 表中选取头两条记录:
*SELECT TOP 2 * FROM Persons *
从 “Persons” 表中选取 50% 的记录:
SELECT TOP 50 PERCENT * FROM Persons
LIKE 操作符用于在 WHERE 子句中搜索列中的指定模式
GROUP BY:GROUP BY 语句用于结合合计函数,根据一个或多个列对结果集进行分组。后面不可接where子句。除聚集计算语句外,select中的每一列都必须在Group by语句中给出。Group by必须在Where子句之后,order by 之前。
#合计函数 (比如 SUM) 常常需要添加 GROUP BY 语句。
HAVING:在 SQL 中增加 HAVING 子句原因是,WHERE 关键字无法与聚集函数一起使用,聚集函数是针对结果集进行的,但是where条件并不是在查询出结果集之后运行,所以主函数放在where语句中,会出现错误,而having不一样,having是针对结果集做筛选的,所以我门一般吧组函数放在having中,用having来代替where,having一般跟在group by后。WHERE过滤行,HAVING 过滤分组。HAVING支持所有WHERE分组。
通配符:%、_、[charlist]、[!charlist]
_总是刚好匹配一个字符,所以单个数字得用%
例:从上面的 “Persons” 表中选取居住的城市以 “A” 或 “L” 或 “N” 开头的人:SELECT * FROM Persons WHERE City LIKE ‘[ALN]%’
*从上面的 “Persons” 表中选取居住的城市不以 “A” 或 “L” 或 “N” 开头的人:*SELECT * FROM Persons WHERE City LIKE ‘[!ALN]%’
IN 操作符:允许我们在 WHERE 子句中规定多个值。
BETWEEN 操作符在 WHERE 子句中使用,作用是选取介于两个值之间的数据范围。这些值可以是数值、文本或者日期。
#不同的数据库对between的处理方式是有差异的
AS:对表或列指定别名
SQL连接:
join 用于根据两个或多个表中的列之间的关系,从这些表中查询数据,在表中存在至少一个匹配时,JOIN 关键字返回行,inner join = join
LEFT JOIN 关键字会从左表那里返回所有的行,即使在右表 中没有匹配的行。#在某些数据库中, LEFT JOIN 称为 LEFT OUTER JOIN。
RIGHT JOIN 关键字会右表那里返回所有的行,即使在左表中没有匹配的行。#在某些数据库中, RIGHT JOIN 称为 RIGHT OUTER JOIN。
FULL JOIN 只要其中某个表存在匹配,FULL JOIN 关键字就会返回行。有的数据库没有FULL JOIN。
UNION 操作符用于合并两个或多个 SELECT 语句的结果集。#UNION 内部的 SELECT 语句必须拥有相同数量的列。列也必须拥有相似的数据类型。同时,每条 SELECT 语句中的列的顺序必须相同。默认地,UNION 操作符选取不同的值。如果允许重复的值,请使用 UNION ALL。另外,UNION 结果集中的列名总是等于 UNION 中第一个 SELECT 语句中的列名。
SQL表操作:
SELECT INTO 语句可用于创建表的备份复件。它从一个表或者多个表中选取数据,然后把数据插入另一个表中。该语句常用于创建表的备份复件或者用于对记录进行存档。任何select选项和子句都可以在select into中使用
INSERT INTO 语句用于向表格中插入新的行。语法:*
INSERT INTO table_name (列1, 列2,…) VALUES (值1, 值2,…)*
Update 语句用于修改表中的数据。语法:
UPDATE 表名称 SET 列名称 = 新值 WHERE 列名称 = 某值
DELETE 语句用于删除表中的行。语法:
DELETE FROM 表名称 WHERE 列名称 = 值
ALTER TABLE 语句用于在已有的表中添加、修改或删除列。
添加列:ALTER TABLE table_name ADD column_name datatype
删除列:ALTER TABLE table_name DROP COLUMN column_name
改变列的数据类型:ALTER TABLE table_name ALTER COLUMN column_name datatype
CREATE DATABASE 用于创建数据库。语法:
CREATE DATABASE database_name*
CREATE TABLE 语句用于创建数据库中的表。语法:
CREATE TABLE 表名称(列名称1 数据类型,列名称2 数据类型,列名称3 数据类型,…)
SQL 约束
约束用于限制加入表的数据的类型。可以在创建表时规定约束(通过 CREATE TABLE 语句),或者在表创建之后也可以(通过 ALTER TABLE 语句)。
NOT NULL 约束强制列不接受 NULL 值。这意味着,如果不向字段添加值,就无法插入新记录或者更新记录。例:
CREATE TABLE Persons (Id_P int NOT NULL, LastName varchar(255) NOT NULL)
UNIQUE 约束唯一标识数据库表中的每条记录。语法:SQL UNIQUE 约束
RIMARY KEY 约束唯一标识数据库表中的每条记录。主键必须包含唯一的值。主键列不能包含 NULL 值。每个表都应该有一个主键,并且每个表只能有一个主键。语法:SQL PRIMARY KEY 约束
UNIQUE 和 PRIMARY KEY 约束均为列或列集合提供了唯一性的保证。PRIMARY KEY 拥有自动定义的 UNIQUE 约束。# 每个表可以有多个 UNIQUE 约束,但是每个表只能有一个 PRIMARY KEY 约束。
FOREIGN KEY 约束:一个表中的 FOREIGN KEY 指向另一个表中的 PRIMARY KEY。语法:SQL FOREIGN KEY 约束
CHECK 约束用于限制列中的值的范围。如果对单个列定义 CHECK 约束,那么该列只允许特定的值。如果对一个表定义 CHECK 约束,那么此约束会在特定的列中对值进行限制。语法:SQL CHECK 约束
DEFAULT 约束用于向列中插入默认值。如果没有规定其他的值,那么会将默认值添加到所有的新记录。语法:SQL DEFAULT 约束
CREATE INDEX 语句用于在表中创建索引。在不读取整个表的情况下,索引使数据库应用程序可以更快地查找数据。语法:
CREATE INDEX index_name ON table_name (column_name) “column_name” 规定需要索引的列。
DROP 语句,可以轻松地删除索引、表和数据库。语法:DROP
Auto-increment 会在新记录插入表中时生成一个唯一的数字。语法:AUTO increment
VIEW 视图 # 视图总是显示最近的数据。每当用户查询视图时,数据库引擎通过使用 SQL 语句来重建数据。例:
CREATE VIEW view_name AS
SELECT column_name(s)
FROM table_name
WHERE condition
DATE 日期函数 语法:SQL DATE
NULL:是遗漏的未知数据。如果表中的某个列是可选的,那么我们可以在不向该列添加值的情况下插入新记录或更新已有的记录。这意味着该字段将以 NULL 值保存。NULL 值的处理方式与其他值不同NULL 用作未知的或不适用的值的占位符。注:无法比较 NULL 和 0;它们是不等价的。NULL函数
GRANT:授予权限
REVOKE:收回权限