//插入
INSERT INTO table_name (列1, 列2,...) VALUES (值1, 值2,....)
//更新
UPDATE 表名称 SET 列名称 = 新值 WHERE 列名称 = 某值
//删除
DELETE FROM 表名称 WHERE 列名称 = 值
//top子句
SELECT TOP number|percent column_name(s) FROM table_name
//例如 select top 5 value from table_name
//like
SELECT column_name(s) FROM table_name WHERE column_name LIKE pattern
//例如 SELECT * FROM Persons WHERE City LIKE 'N%'
//'N%' '%lon%' '%g'
//sql通配符
//IN 操作符允许我们在 WHERE 子句中规定多个值。
SELECT column_name(s) FROM table_name WHERE column_name IN (value1,value2,...)
//BETWEEN 操作符
//操作符 BETWEEN ... AND 会选取介于两个值之间的数据范围。这些值可以是数值、文本或者日期。
SELECT column_name(s)FROM table_nameWHERE column_name BETWEEN value1 AND value2
//表的 SQL Alias 语法, 也即as语法 别名语法
SELECT column_name(s) FROM table_name AS alias_name
SELECT po.OrderID, p.LastName, p.FirstName
FROM Persons AS p, Product_Orders AS po
WHERE p.LastName='Adams' AND p.FirstName='John'
//语法说明
//join 用于根据两个或者多个表中的列之间的关系,从这些表中查询数据。
//JOIN: 如果表中有至少一个匹配,则返回行
//INNER JOIN:同JOIN
//LEFT JOIN: 即使右表中没有匹配,也从左表返回所有的行
//RIGHT JOIN: 即使左表中没有匹配,也从右表返回所有的行
//FULL JOIN: 只要其中一个表中存在匹配,就返回行
//举例说明
//INNER JOIN 内连接
SELECT column_name(s) FROM table_name1 INNER JOIN table_name2 ON table_name1.column_name=table_name2.column_name
//LEFT JOIN 左连接,左表返回所有行,右表有就返回,没有返回null
SELECT column_name(s) FROM table_name1 LEFT JOIN table_name2 ON table_name1.column_name=table_name2.column_name
//RIGHT JOIN 右连接,右表返回所有行,左边有就返回,没有返回null,同left JOIN,替换关键词left join
//UNION
//UNION 操作符用于合并两个或者多个select语句的结果集
//请注意,UNION 内部的 SELECT 语句必须拥有相同数量的列。列也必须拥有相似的数据类型。同时,每条 SELECT 语句中的列的顺序必须相同。(也就是说字段个数要相同)
SELECT column_name(s) FROM table_name1 UNION SELECT column_name(s) FROM table_name2
//sql select into
//select into 语句从一个表中选取数据,然后把数据插入另一个表中。
//select into 语句常用于创建表的备份复件或者用于对记录进行存档
//IN 子句用于向另一个数据库中拷贝表
SELECT * INTO Persons IN 'Backup.mdb' FROM Persons
//sql CreateDB
//CREATE DATABASE 用于创建数据库
CREATE DATEBASE database_name
//创建表
//CREATE TABLE
CREATE TABLE 表名称
(
列名称1 数据类型,
列名称2 数据类型,
...
)
//举例
CREATE TABLE Persons
(
Id_P int,
LastName varchar(255),
FirstName varchar(255),
Address varchar(255),
City varchar(255)
)
//sql约束
//限制加入表的数据的类型,可以在创建表时添加,或者在表创建之后也可以(通过 ALTER TABLE 语句)。
//NOT NULL 约束强制字段始终包含值。这意味着,如果不向字段添加值,就无法插入新记录或者更新记录。
//UNIQUE
//PRIMARY KEY 主键
CREATE TABLE Persons
(
Id_P int NOT NULL,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255),
PRIMARY KEY (Id_P)
)
CREATE TABLE Persons
(
Id_P int NOT NULL,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255),
CONSTRAINT pk_PersonID PRIMARY KEY (Id_P,LastName)
)
ALTER TABLE Persons ADD PRIMARY KEY (Id_P)
//FOREIGN KEY 一个表中的 FOREIGN KEY 指向另一个表中的 PRIMARY KEY。
CREATE TABLE Orders
(
Id_O int NOT NULL,
OrderNo int NOT NULL,
Id_P int,
PRIMARY KEY (Id_O),
FOREIGN KEY (Id_P) REFERENCES Persons(Id_P)
)
//CHECK
CREATE TABLE Persons
(
Id_P int NOT NULL,
...
CHECK (Id_P>0)
)
//DEFAULT
//DEFAULT 约束用于向列中插入默认值。,如果没有规定其他的值,那么会将默认值添加到所有的新记录。
OrderDate date DEFAULT GETDATE()
//SQL CREATE INDEX语句用语在表中创建索引。
//在不读取整个表的情况下,索引使数据库应用程序可以更快地查找数据。
CREATE INDEX index_name ON table_name(column_name)
CREATE UNIQUE INDEX index_name ON table_name (column_name) //唯一索引
SQL DROP INDEX 删除索引语句
mysql: ALTER TABLE table_name DROP INDEX index_name
SQL DROP TABLE 删除表
DROP TABLE 表名称
SQL DROP DATABASE 删除数据库
DROP DATEBASE 数据库名称
SQL TRUNCATE TABLE 删除表内数据不删表结构
TRUNCATE TABLE 表名称
表中添加列
ALTER TABLE table_name ADD column_name datatype
删除表中列
ALTER TABLE table_name DROP COLUMN column_name
//某些数据库系统不允许这种在数据库表中删除列的方式 (DROP COLUMN column_name)。
//要改变表中列的数据类型,请使用下列语法:
ALTER TABLE table_name ALTER COLUMN column_name datatype
//AUTO INCREMENT 插入新数据,自动创建主键的值
CREATE TABLE Persons
(
P_Id int NOT NULL AUTO_INCREMENT,
...
PRIMARY KEY (P_Id)
)
//视图基于 SQL 语句的结果集的可视化的表
CREATE VIEW view_name AS
SELECT column_name(s) FROM table_name WHERE condition
//实例
CREATE VIEW [Current Product List] AS SELECT ProductID,ProductName FROM Products WHERE Discontinued=No