SELECT:用于从表中选取数据
SELECT 列名称 FROM 表名称
DISTINCT:用于返回唯一不同的值
SELECT DISTINCT 列名称 FROM 表名称
WHERE:有条件地从表中选取数据
SELECT 列名称 FROM 表名称 WHERE 列 运算符 值
AND & OR:在 WHERE 子语句中把两个或多个条件结合起来
ORDER BY:用于对结果集进行排序
SELECT 列名称 FROM 表名称 ORDER BY 列名称
INSERT INTO:用于向表格中插入新的行
INSERT INTO 表名称 VALUES (值1, 值2,….))
INSERT INTO table_name (列1, 列2,…) VALUES (值1, 值2,….))
UPDATE:用于修改表中的数据
UPDATE 表名称 SET 列名称 = 新值 WHERE 列名称 = 某值
DELETE:用于删除表中的行
DELETE FROM 表名称 WHERE 列名称 = 值
TOP:用于规定要返回的记录的数目
SQL Server :
SELECT TOP number|percent 列名称 FROM 表名称
MySQL :
SELECT 列名称 FROM 表名称 LIMIT number
Oracle :
SELECT 列名称 FROM 表名称 WHERE ROWNUM <= number
LIKE:用于在 WHERE 子句中搜索列中的指定模式
SELECT 列名称 FROM 表名称 WHERE 列名称 LIKE pattern
通配符:用于在 WHERE 子句中搜索列中的指定模式
IN:在 WHERE 子句中规定多个值
SELECT 列名称 FROM 表名称 WHERE 列名称 IN (value1,value2,…)
BETWEEN :用于选取介于两个值之间的数据范围
SELECT 列名称 FROM 表名称
WHERE 列名称 BETWEEN value1 AND value2
Alias:用于为列名称和表名称指定别名(Alias)
表:SELECT 列名称 FROM 表名称 AS alias_name
列:SELECT 列名称 AS alias_name FROM 表名称
JOIN:用于根据两个或多个表中的列之间的关系,从这些表中查询数据
SELECT 列名称 FROM 左表名称
INNER JOIN 右表名称
ON 左表名称.列名称=右表名称.列名称
INNER JOIN:
在表中存在至少一个匹配时,INNER JOIN 关键字返回行
LEFT JOIN:从左表那里返回所有的行,即使在右表中没有匹配的行
RIGHT JOIN:从右表 那里返回所有的行,即使在左表中没有匹配的行
FULL JOIN:只要其中某个表存在匹配,FULL JOIN 关键字就会返回行
UNION 和 UNION ALL:用于合并两个或多个 SELECT 语句的结果集(应有相同数量同类型的列)
内容不重复:
SELECT 列名称 FROM 左表名称
UNION
SELECT 列名称 FROM 右表名称内容重复:
SELECT 列名称 FROM 左表名称
UNION ALL
SELECT 列名称 FROM 右表名称
SELECT INTO:从一个表中选取数据,然后把数据插入另一个表中
SELECT *
INTO 新表名[IN externaldatabase]
FROM 旧表名
CREATE DATABASE:用于创建数据库
CREATE DATABASE 数据库名称
CREATE TABLE:用于创建数据库中的表
CREATE TABLE 表名称
(
列名称1 数据类型,
列名称2 数据类型,
列名称3 数据类型,
….
)
约束:用于限制加入表的数据的类型
NOT NULL:强制列不接受 NULL 值
CREATE TABLE Persons(Id_P int NOT NULL)
UNIQUE :唯一标识数据库表中的每条记录
MYSQL:
CREATE TABLE Persons
(
Id int NOT NULL,
UNIQUE (Id)
)SQL Server / Oracle / MS Access:
CREATE TABLE Persons
(
Id int NOT NULL UNIQUE
)添加约束
ALTER TABLE Persons
ADD UNIQUE (Id)
PRIMARY KEY:
主键必须包含唯一的值。
主键列不能包含 NULL 值。
每个表都应该有一个主键,并且每个表只能有一个主键
MYSQL:
CREATE TABLE Persons
(
Id int NOT NULL,
PRIMARY KEY (Id)
)
FOREIGN KEY:一个表中的 FOREIGN KEY 指向另一个表中的 PRIMARY KEY
MYSQL:
CREATE TABLE Persons
(
Id int NOT NULL,
FOREIGN KEY (Id) REFERENCES Persons(Id)
)
CHECK :用于限制列中的值的范围
My SQL:
CREATE TABLE Persons
(
Id int NOT NULL,
CHECK (Id>0)
)
DEFAULT:用于向列中插入默认值
My SQL / SQL Server / Oracle / MS Access:
CREATE TABLE Persons
(
City varchar(255) DEFAULT ‘Sandnes’
)
CREATE INDEX:用于在表中创建索引
CREATE INDEX 索引名
ON 表名称(列名称)创建一个唯一的索引。唯一的索引意味着两个行不能拥有相同的索引值
CREATE UNIQUE INDEX 索引名
ON 表名称(列名称)
撤销索引、表以及数据库:通过使用 DROP 语句,可以轻松地删除索引、表和数据库。
1. 使用 DROP INDEX 命令删除表格中的索引
2. DROP TABLE 语句用于删除表(表的结构、属性以及索引也会被删除)
3. DROP DATABASE 语句用于删除数据库:
4. TRUNCATE TABLE 命令(仅仅删除表格中的数据):
Microsoft SQLJet (以及 Microsoft Access):
DROP INDEX 索引名 ON 表名称
MS SQL Server:
DROP INDEX 表名称.索引名
IBM DB2 和 Oracle:
DROP INDEX 索引名
MySQL:
ALTER TABLE 表名称 DROP INDEX 索引名
ALTER TABLE:用于在已有的表中添加、修改或删除列
添加列
ALTER TABLE table_name
ADD column_name datatype删除列
ALTER TABLE table_name
DROP COLUMN column_name
AUTO INCREMENT:在新记录插入表中时生成一个唯一的数字
MySQL
CREATE TABLE Persons
(
Id int NOT NULL AUTO_INCREMENT
)SQL Server
CREATE TABLE Persons
(
Id int PRIMARY KEY IDENTITY
)Access
CREATE TABLE Persons
(
Id int PRIMARY KEY AUTOINCREMENT,
)Oracle
先创建序列
CREATE SEQUENCE seq_person
MINVALUE 1
START WITH 1
INCREMENT BY 1
CACHE 10
在插入时使用序列
INSERT INTO Persons (Id)
VALUES (seq_person.nextval)
VIEW:视图是可视化的表。
Date:日期处理
NULL :NULL 值是遗漏的未知数据。通过IS NULL 和 IS NOT NULL进行选取
NULL 函数:SQL ISNULL()、NVL()、IFNULL() 和 COALESCE() 函数
SQL Server / MS Access
ISNULL(列名称,0)–如果值为NULL则返回0
Oracle
NVL(列名称,0)–如果值为NULL则返回0
MySQL
IFNULL(列名称,0)–如果值为NULL则返回0
数据类型:数据类型和范围