没有合适的资源?快使用搜索试试~ 我知道了~
首页SQL语句大全解析及示例(个人总结-入门级)
资源详情
资源评论
资源推荐

一、 引言
一个数据库通常包含一个或多个表。每个表由一个名字标识,表的一行称
为一条记录,表的列称为字段。某个表的某个字段可以直接用列名表示,也可
以表示为“表名.列名”。
SQL 对大小写不敏感。
SQL 分为两个部分:数据操作语言 (Data Manipulation Language,DML) 和
数据定义语言 (Data Definition Language,DDL)。SQL (结构化查询语言)是用于
执行查询的语法,但是 SQL 语言也包含用于更新、插入和删除记录的语法。
查询和更新指令构成了 SQL 的 DML 部分:
(1) SELECT - 从数据库表中获取数据
(2) UPDATE - 更新数据库表中的数据
(3) DELETE - 从数据库表中删除数据
(4) INSERT INTO - 向数据库表中插入数据
SQL 的数据定义语言 (DDL) 部分使我们有能力创建或删除表格。我们也可
以定义索引(键),规定表之间的链接,以及施加表间的约束。
SQL 中最重要的 DDL 语句:
(1) CREATE DATABASE - 创建新数据库
(2) ALTER DATABASE - 修改数据库
(3) CREATE TABLE - 创建新表
(4) ALTER TABLE - 变更(改变)数据库表
(5) DROP TABLE - 删除表
(6) CREATE INDEX - 创建索引(搜索键)

(7) DROP INDEX - 删除索引
二、 SQL 语句——DML
选择/查询
1. SELECT [列名 1, 列名 2……] FROM [表名]
SELECT * FROM [表名]
例:SELECT name FROM student
SELECT name, age FROM student
SELECT * FROM student
2. SELECT DISTINCT [列名] FROM [表名]
解释:DISTINCT 关键词表示选择结果中没有重复的
例:SELECT DISTINCT name FROM student
3. SELECT [列名] FROM [表名] WHERE [列名] [运算符] [值]
SELECT * FROM [表名] WHERE [列名] [运算符] [值]
例:SELECT name FROM student WHERE age>15
SELECT * FROM student WHERE sex=’male’
解释:单引号来环绕文本值(大部分数据库系统也接受双引号);如果是数值,
不使用引号。
4. SELECT [列名] FROM [表名] WHERE [列名] [运算符] [值] AND [列名] [运算
符] [值]
SELECT [列名] FROM [表名] WHERE [列名] [运算符] [值] OR [列名] [运算
符] [值]
例:SELECT name FROM student WHERE sex=’male’ AND age>15

SELECT * FROM student WHERE age<15 OR age>20
SELECT name FROM student WHERE (age<15 OR age>20) AND sex=’male’
5. SELECT [列名 1, 列名 2……] FROM [表名] ORDER BY [列名 1, 列名 2……]
SELECT [列名 1, 列名 2……] FROM [表名] ORDER BY 列名 1 ASC, 列名 2
DESC
解释:Desc 表示逆顺序,Asc 表示顺序。
例:SELECT company, orderNumber FROM table ORDER BY company
SELECT company, number FROM table ORDER BY company DESC, number
ASC
6. SELECT TOP [数目] [列名] FROM [表名]
SELECT TOP [数目 PERCENT] [列名] FROM [表名]
解释:从表中选取前面 n 条记录,或者前面 n%条记录。
例:SELECT TOP 10 name FROM student
SELECT TOP 25 PERCENT name FROM student
SELECT TOP 30 * FROM student
7. SELECT [列名] FROM [表名] WHERE [列名] LIKE [模式]
例:SELECT age FROM student WHERE name LIKE ‘S%’
SELECT age FROM student WHERE name LIKE ‘%ph%’
SELECT age FROM student WHERE name LIKE ‘%ia’
解释:S%表示值以 S 开头,%ph%表示值中包含 ph,%ia 表示值以 ia 结束。
8. SELECT [列名] FROM [表名] WHERE [列名] IN (值 1, 值 2……)
解释:选择条件为某列的值为列举之中的一个即可
例:SELECT name FROM student WHERE age IN (25, 26, 27)
(表示从 student 表中选择 age 为 25 或 26 或 27 的所有 name)
SELECT age FROM student WHERE name IN (‘Sophia’, ‘Wilson’)

(表示从 student 表中选择 name 为‘Sophia’ 或‘Wilson’的所有 age)
9. SELECT [列名] FROM [表名] WHERE [列名] BETWEEN [值 1] AND [值 2]
SELECT [列名] FROM [表名] WHERE [列名] NOT BETWEEN [值 1] AND [值 2]
例 : SELECT name FROM student WHERE age BETWEEN 20 AND 25 ( 包括
20,不包括 25)
SELECT name FROM student WHERE age NOT BETWEEN 20 AND 25
多表联合选择/查询
10. SELECT [列 1, 列 2……] FROM [表 1, 表 2] WHERE [列 3=列 4]
SELECT [列 1, 列 2……] FROM [表 1] Inner JOIN [表 2] ON [列 3=列 4]
解释:上述两种方式实现相同的功能,从两个或多个表中获取结果
例:SELECT student.name, student.age, course.cid FROM student, course WHERE
student.sid=course.sid
SELECT student.name, student.age, course.cid FROM student, Inner JOIN
course ON student.sid=course.sid
11. SELECT [列 1, 列 2……] FROM [表 1] Left JOIN [表 2] ON [列 3=列 4]
解释:从左表(表 1)那里返回所有的行,即使在右表(表 2)中没有匹配的行。
12. SELECT [列 1, 列 2……] FROM [表 1] Right JOIN [表 2] ON [列 3=列 4]
解释:从右表(表 2)那里返回所有的行,即使在左表(表 1)中没有匹配的行。
13. SELECT [列 1, 列 2……] FROM [表 1] Full JOIN [表 2] ON [列 3=列 4]
解释:从左表(表 1)和右表(表 2)返回所有的行,即使两个表中存在不匹配的行。
14. SELECT [ 列 1, 列 2……] FROM [ 表 1] UNION SELECT [ 列 3, 列 4……]

FROM [表 2]
SELECT [ 列 1, 列 2……] FROM [ 表 1] UNION ALL SELECT [ 列 3, 列 4……]
FROM [表 2]
解释:UNION 内部的 SELECT 语句必须拥有相同数量的列,列也必须拥有相似
的数据类型,每条 SELECT 语句中的列的顺序必须相同。UNION All 允许从两
个表中获取的值重复。
例 : SELECT name
,
age FROM Chinese UNION SELECT name
,
age FROM
America
SELECT name
,
age FROM Chinese UNION ALL SELECT name
,
age FROM
America
15. SELECT [列 1, 列 2……] INTO [表 2] FROM [表 1]
SELECT [列 1, 列 2……] INTO [表 2] IN [其他数据库] FROM [表 1]
解释:从表 1 中获取数据存入表 2。
例:SELECT * INTO student_back FROM student
SELECT name, age INTO student_back IN bakeup.mdb FROM student
SELECT name, age INTO student_back IN bakeup.mdb FROM student WHERE
sex=’female’
插入/更新/删除
16. INSERT INTO [表名] ([列名 1, 列名 2……]) VALUES ([值 1, 值 2……])
INSERT INTO [表名] VALUES ([值 1, 值 2……])
例:INSERT INTO student (name, age) VALUES (‘Sophia’, 26)
INSERT INTO student VALUES (‘Sophia’, ‘female’ 26)
17. UPDATE [表名] SET[列名=值] WHERE [列名=值]
剩余24页未读,继续阅读














安全验证
文档复制为VIP权益,开通VIP直接复制

评论0