SQL 语法大全
来源:互联网 发布:哔哩哔哩直播姬mac版 编辑:程序博客网 时间:2024/06/02 03:45
SQL语法
例表:“Persons”表
LastName
FirstName
Address
City
Year
Adams
John
Oxford Street
London
1970
Bush
George
Fifth Avenue
New York
1995
Carter
Thomas
Changan Street
Beijing
1980
Gates
Bill
Xuanwumen 10
Beijing
1985
一:基础篇
关键字
描述
例子
SELECT
SELECT 语句用于从表中选取数据。结果被存储在一个结果表中(称为结果集)。
1.SELECT 列名 FROM 表名
2.SELECT * FROM 表名
DISTINCT
DISTINCT 用于返回唯一不同的值。
1.SELECT DISTINCT 列名 FROM 表名
WHERE
如需有条件地从表中选取数据
1.SELECT 列名 FROM 表名 WHERE 列 运算符
2.查询 住在Beijing的人
SELECT * FROM Persons WHERE City=’ Beijing’
AND和OR
用在AND 和 OR 可在 WHERE 子语句中把两个或多个条件结合起来。
AND:都为真才为真
OR:其中一个为真才为真
1.查询 1985年住在Beijing的人
SELECT * FROM Persons WHERE City=’ Beijing’ AND Year = 1985
2.查询住在London或者New York的人
SELECT * FROM Persons WHERE City=’ London’ OR City = ‘New York’
ORDER BY
ORDER BY 语句用于根据指定的列对结果集进行排序。
1.以姓的字母顺序进行排列
SELECT*FROM Persons ORDER BY LastName
2.以Year 从大到小排序
SELECT*FROM Persons ORDER BY Year DESC
3.以Year 从小到大排序
SELECT*FROM Persons ORDER BY Year
INSERT INTO
INSERT INTO 语句用于向表格中插入新的行。
1.将2017年有个姓Yuan 名Hong的住在ChongQing JieFangBei 记录在数据库
INSERT INTO Persons VALUES(‘Yuan’,’ Hong’,’ JieFangBei’,’ ChongQing’,2017)
Update
Update 语句用于修改表中的数据。
1.2017年YuanHong搬家到GuanYinQiao 修改数据
Update Persons SET Adderss=’ GuanYinQiao’ WHERE LastName=’ Yuan’ AND FirstName=’ Hong’
DELETE
DELETE 语句用于删除表中的行
1.将YuanHong对应的数据删除掉。
DELETE FROM Persons WHERE
"Persons" 表:
Id_P
LastName
FirstName
Address
City
1
Adams
John
Oxford Street
London
2
Bush
George
Fifth Avenue
New York
3
Carter
Thomas
Changan Street
Beijing
"Orders" 表:
Id_O
OrderNo
Id_P
1
77895
3
2
44678
3
3
22456
1
4
24562
1
5
34764
65
二:高级教程
TOP
TOP 子句用于规定要返回的记录的数目。
1.我们希望从表中取前两条数据。
SELECT TOP(2) * FROM Persons
我们希望从表中取百分之五十的记录
SELECT TOP 50 PERCENT * FROM Persons
LIKE
LIKE 操作符用于在 WHERE 子句中搜索列中的指定模式。
1.我们希望查找姓的首字母为Y的人
SELECT * FROM Persons WHERE LastName LIKE ‘Y%’
2.我们希望查找姓的尾字母为N的人
SELECT * FROM Persons WHERE LastName LIKE ‘%N’
3.我们希望查找姓中含有A的人
SELECT * FROM Persons WHERE LastName LIKE ‘%A%’
通配符
1.%: 替代一个或多个字符
2_:仅替代一个字符3[charlist]:字符列中的任何单一字符
4[!charlist]:不在字符列中的任何单一字符
1.我们希望查找姓的首字母为Y的人
SELECT * FROM Persons WHERE LastName LIKE ‘Y%’
2.我们希望查找姓的尾字母为N的人
SELECT * FROM Persons WHERE LastName LIKE ‘%N’
3.我们希望查找姓中含有A的人
SELECT * FROM Persons WHERE LastName LIKE ‘%A%’
4.我们希望选取一个人的姓的第一个字符之后是UAN的人
SELECT * FROM Persons WHERE LastName LIKE ‘_UAN’
5.我们希望选取居住城市 以‘A’或‘C’开头的人
SELECT * FROM Persons WHERE City LIKE ‘[AC]%’
6.我们希望选取居住城市 不以‘A’或‘C’开头的人
SELECT * FROM Persons WHERE City LIKE ‘[!AC]%’
IN
IN 操作符允许我们在 WHERE 子句中规定多个值。
1.我们希望选取姓氏为Adams 和 Carter 的人
SELECT * FROM Persons WHERE LastName IN(‘Adams’,’ Carter’)
BETWEEN
操作符 BETWEEN ... AND 会选取介于两个值之间的数据范围。这些值可以是数值、文本或者日期。
1.选取以字母顺序介于"Adams"(包括)和 "Carter"(不包括)之间的人
SELECT * FROM Persons WHERE LastName BETWEEN ‘Adams’ AND ‘Carter’
Alias
Alias 可以为列名称或者表名称指定别名
1.我们的表名是 Persons 我们可以把它取个别名(联表查询的时候常用)
SELECT*FROM Persons AS P WHERE P.LastName BETWEEN ‘Adams’ AND ‘Carter’
INNER join
有时为了得到完整的结果,我们需要从两个或更多的表中获取结果。我们就需要执行 join.通过join多张表的数据
1.现在有两张表 Persons和Orders它们之间通过UserID进行关联的 我们要将两张表一起取出来
SELECT * FROM PersonsAS A INNER JOIN Persons AS B ON A.ID_P =B. ID_P ORDER BY A. LastName
LEFT JOIN
LEFT JOIN 关键字会从左表 (table_name1) 那里返回所有的行,即使在右表 (table_name2) 中没有匹配的行。
1.现在有两张表 Persons和Orders它们之间通过UserID进行关联的 我们要将两张表一起取出来
SELECT * FROM Persons AS A LEFT JOIN OrdersAS B ON A. ID_P =B. ID_P ORDER BY A. LastName
RIGHT JOIN
RIGHT JOIN 关键字会右表 (table_name2) 那里返回所有的行,即使在左表 (table_name1) 中没有匹配的行。
1.现在有两张表 Persons和Orders它们之间通过UserID进行关联的 我们要将两张表一起取出来
SELECT * FROM Persons AS A RIGHT JOIN OrdersAS B ON A. ID_P =B. ID_P ORDER BY A. LastName
FULL JOIN
只要其中某个表存在匹配,FULL JOIN 关键字就会返回行。
1.现在有两张表 Persons 和Orders它们之间通过UserID进行关联的 我们要将两张表一起取出来
SELECT * FROM Persons AS A FULL JOIN OrdersAS B ON A. ID_P =B. ID_P ORDER BY A. LastName
UNION
UNION 操作符用于合并两个或多个 SELECT 语句的结果集。
1.现在我们数据库有两张表class1和class2分别是某年级的两个班的学生信息,假设该年级一共就这两个班,我们要获取该年级所有人的信息
SELECT Student FROM CLASS1
UNION
SELECT Student FROM CLASS2
SELECT INTO
SELECT INTO 语句从一个表中选取数据,然后把数据插入另一个表中。
1拷贝备份复件
SELECT * INTO PersonsBackup FROM Persons
2.向另一个数据库中拷贝表
SELECT * INTO Persons IN ‘Backup.mdb’ FROM Persons
3.我们希望只拷贝某些域
LastName
Adams’
SELECT LastName, Adams INTO Persons INTO PersonsBackup FROM Persons
4.我们在Persons表中提取居住在北京的人的信息,并创建一个带两个列的名是PersonsBackup的表
SELECT LastName, Firstname INTO Persons INTO PersonsBackup FROM Persons WHERE City=’BeiJing’
5.其中包含了从 Persons 和 Orders 两个表中取得的信息
SELECT A.lastName,B.OrderNo
INTO PersonsBackup FROM Persons AS A INNER JOIN Orders AS B ON A.ID_P=B.ID_P
CREATE DATABASE
CREATE DATABASE 用于创建数据库。
Create database 数据库名
CREATE TABLE
CREATE TABLE 语句用于创建数据库中的表。
1.创建表 例表Orders
Create table Orders(
Id_O INT,
OrderNo INT,
ID_P INT)
SQL 约束
NOT NULL 约束强制列不接受 NULL 值。
UNIQUE约束唯一标识数据库表中的每条记录。
PRIMARY KEY RIMARY KEY 约束唯一标识数据库表中的每条记录。
FOREIGN KEY一个表中的 FOREIGN KEY 指向另一个表中的 PRIMARY KEY。
CHECK约束用于限制列中的值的范围。
DEFAULTDEFAULT 约束用于向列中插入默认值。
1.创建表 例表Orders Id_O不能为空
Create table Orders(
Id_O INT NOT NUL ,
OrderNo INT,
ID_P INT)
2.创建表 例表Orders Id_O不能为空 标记Id_P是在本表中只能存在唯一值
Create table Orders(
ID_O INT NOT NUL ,
OrderNo INT,
Id_P INT ,
UNIQUE(ID_P))
3.创建表 例表Orders Id_O不能为空 标记Id_P和 Id_O
Create table Orders(
Id_O INT NOT NUL ,
OrderNo INT,
Id_P INT ,
CONSTRAINT uc_PERSONID UNIQUE(Id_P, Id_O))
4.创建表 例表"Orders" 表创建时在 "Id_O" 列创建 PRIMARY KEY 约束:
Create table Orders(
Id_O INT NOT NUL PRIMARY KEY,
OrderNo INT,
Id_P INT ,)
5.创建表 例表"Orders" 表创建时在 "Id_P" 列创建 FOREIGN KEY约束:
Create table Orders(
Id_O INT NOT NUL PRIMARY KEY,
OrderNo INT,
Id_P INT FOREIGN KEY REFERENCES PERSONS(Id_P))
6..创建表 例表"Orders" 表创建时在 "Id_P" 列创建CHECK约束Id_P>0:
Create table Orders(
Id_O INT NOT NUL PRIMARY KEY,
OrderNo INT,
Id_P INT ,
CHECK (Id_P>0)
7创建表 例表"Orders" 表创建时在 "Id_P" 列创建DEFAULT 约束插入默认值0
Create table Orders(
Id_O INT NOT NUL PRIMARY KEY,
OrderNo INT,
Id_P INT DEFAULT 0,
)
CREATE INDEX
CREATE INDEX您可以在表中创建索引,以便更加快速高效地查询数据。
1.我们希望以Id_o从大到小排列
CREATE INDEX Id_o ON Orders(OrderNo, Id_P)
DROP
DROP可以轻松删除索引、表、数据库
1.删除表
DEOP TABLE 表名
2.删除数据库
DEOP DATABASE 数据库名
ALTER TABLE
ALTER TABLE语句用于在已有的表中添加、修改或删除列。
1.在表Orders中添加列Birthday
ALTER TABLE Orders ADD Birthday DATE
2.删除表Orders中列Birthday
ALTER TABLE Orders DEOP COLUMN Birthday
3.修改表Orders 中列Birthday的数据类型
ALTER TABLE Orders ALTER COLUMN Birthday INT
auto-increment主键
我们通常希望在每次插入新记录时,自动地创建主键字段的值,我们可以在表中创建一个 auto-increment 字段。
1.创建一个表 Orders 使Id_P 起始值为1每增加一条:
CREATE TABLE Orders
{
Id_O INT NOT PRIMARY KEY IDENTITY(1,1),
OrderNo INT,
Id_P INT,
}
VIEW
在 SQL 中,VIEW是基于 SQL 语句的结果集的可视化的表。
1.创建视图:
CREATE VIEW [Current Product List] AS SELECT OrderNo, Id_P FRPM WHERE
Discontinued=No
2.查询视图:
SELECT * FROM [Current Product List]
2017年9月27日 IT小狼狗
- SQL语法大全
- SQL语法大全
- SQL 语法大全
- SQL 语法大全
- SQL语法大全
- SQL语法大全
- SQL语法大全
- SQL语法大全
- SQL语法大全
- SQL语法大全
- sql语法语句大全
- SQL语法大全
- SQL语法大全中文版
- sql语法大全
- SQL语法大全
- SQL语法大全
- SQL语法大全
- SQL语法大全
- iOS定位经纬度转换
- Android把图片导入sdcard
- Mysql模糊查询中对于“?”占位符的使用
- lnmp环境部署
- JVM原理与调优_动力节点Java学院整理
- SQL 语法大全
- MySQL入门2 约束与多表操作
- unity3d独立开发之路(第一期)
- Lua学习笔记1-全局变量
- 最长公共子序列
- android设置EditText不可编辑内容,响应点击事件
- 数据库----索引
- 循环和数组
- 关于ProgressBar的美化问题