SQL语句全教程
内蒙信元 SQL语句学习参考
结构式查询语言(SQL)教程 目录
1. select语句完整的语法 ...................................................................................... 1
1.1在where子句的条件
表
关于同志近三年现实表现材料材料类招标技术评分表图表与交易pdf视力表打印pdf用图表说话 pdf
达式可使用下列运算符: .................................... 2 2. select语句中的限定 .......................................................................................... 2
2.1 select子句中的规定 ................................................................................... 2
2.2条件表达式中的算术比较操作 .................................................................. 3
2.3 列和基本表的改名操作 ............................................................................. 3
2.4 字符串的匹配操作..................................................................................... 3
2.5 集合的并、交、差操作 ............................................................................. 4
2.6 空值的比较操作 ........................................................................................ 4
2.7 集合比较操作 ............................................................................................ 4 3. SQL的数据更新 ................................................................................................. 5
3.1数据插入 ..................................................................................................... 5
3.2数据删除 ..................................................................................................... 5
3.3数据修改 ..................................................................................................... 5
4基本表的创建、修改和撤销 ................................................................................. 5
4.1基本表的创建 ............................................................................................. 5
4.2表结构的修改 ............................................................................................. 6
4.3基本表的撤销 ............................................................................................. 6 5 SQL模式(数据库)的创建和撤销 ................................................................... 6
1. select语句完整的语法
select 目标表的列名或列表达式序列
from 基本表名和(或)视图序列
[where 行条件表达式]
[group by 列名序列
[having 组条件表达式]]
order by 列名[asc|desc],…]
句法中[]表示该项可选。
整个语句的执行过程如下:
(1) 读取from子句中基本表、视图的数据,执行笛卡尔积操作。 (2) 选取满足where子句中给出的条件表达式的元组。
1 / 6
内蒙信元 SQL语句学习参考 (3) 按group子句中指定列的值分组,同时提取满足having子句中条件表达
式的那些组。
(4) 按select子句中给出的列名或表达式求值输出。
(5) order子句对输出的目标表进行排序,按附加说明asc升序排列,或按desc
降序排列。
1.1在where子句的条件表达式可使用下列运算符:
, 算术比较运算符:<,<=,>,>=,=,<>或!=。
, 逻辑运算符:and,or,not。
, 集合成员资格运算符:in,not in。
, 谓词:exists(存在谓词),all,some,unique(不重复)。 , 聚合函数:avg(平均值),min(最小值),max(最大值),sum(和),count
(计数)。
, where子句的条件表达式中运算对象还可以是另一个select语句,即select
语句可以嵌套。
另外,select语句的查询结果之间还可以进行集合的并、交、差操作,其运算符是集合运算符:union、intersect和except。
由于where子句中条件表达式可以很复杂,因此select语句能表达所有的关系代数表达式。
2. select语句中的限定
2.1 select子句中的规定
select子句描述查询输出的
表格
关于规范使用各类表格的通知入职表格免费下载关于主播时间做一个表格详细英语字母大小写表格下载简历表格模板下载
结构,即输出值的列名或表达式。其形式如下:
select[all|distinct] < 列名或列表达式的序列 > | *
(1) distinct选项保证重复的行将从结果中去除;而all选项是默认的,
将保证重复的行留在结果中,一般就不必写出。
(2) 星号 * 是对在from子句中命名表的所有列的简写。
(3) 列表达式是对一个单列求聚合值的表达式。
(4) 允许表达式中出现包含+、-、*和/以及列名、常数的算术表达式。
例:
select distinct C#
from S,SC
where S.S#=SC.S# and SEX =’M’
select S#,2003-AGE
2 / 6
内蒙信元 SQL语句学习参考
from S;
这里“2003-AGE”不是列名,而是一个表达式。
2.2条件表达式中的算术比较操作
条件表达式中可出现算术比较运算符(< ,<= ,> ,>= ,= ,!=),也可以用“between…and…”比较运算符限定一个值的范围。
例如:检索18~20岁的结果
where AGE>=18 and AGE<=20;
where AGE between 18 and 20;
类似的,不在某个范围内可以用“not between…and…”比较运算符。 2.3 列和基本表的改名操作
有时,一个基本表在select语句的from子句中多次出现,即这个表被多次调用。为区别不同的引用,应给每次的引用标上不同的名字,也就是把基本表定义为一个元组的变量。
有时,用户也可以要求输出的的列名与基本表中列名不一致,可以在select子句用“旧名 as 新名”形式改名。
例:在基本表S中检索每个学生的出生年份,输出的列名为STUDENT_NAME和BIRTH_YEAR。
select SNAME as STUDENT_NAME,2010-AGE as BIRTH_YEAR
from S;
在实际使用时,as字样可缺省。
2.4 字符串的匹配操作
条件表达式中字符串匹配操作符是“like(not like)”。在表达式中可使用两个通配符:
百分号(%):与零个或多个字符组成的字符串匹配。
下划线(_):与单个字符匹配。
例如:where SNAME like „D%? --检索以字符D打头的姓名。
为了使字符串中包含特殊字符(即%和_),SQL允许定义转义字符。转义字符紧靠特殊字符并放在它前面,表示该特殊字符将被当成普通字符。在“like”表达式中使用“escape”关键字来定义转义字符。
例如,如果使用反斜线(\)作为转义字符,那么:
like „ab\%cd%?escape „\? --匹配所有以“ab%cd”开头的字符串
like „ab\\cd%?escape „\ --匹配所有以“ab\cd”开头的字符串
SQL还允许在字符上使用多种函数,例如连接(“||”),提取子串、计算字符串长度以及大小写转换操作。
3 / 6
内蒙信元 SQL语句学习参考 2.5 集合的并、交、差操作
当两个子查询结果的结构完全一致时,可以让这两个子查询执行并、交、差操作。并、交、差的运算符为union、intersect、except。
例如:
(select 查询语句1)
union
(select 查询语句2)
2.6 空值的比较操作
SQL中允许列值为空,空值用保留字NULL表示。
例:在基本表S中检索年龄为空值的学生姓名。
select SNAME
from S
where AGE is null;
这里用“is null”测试列值是否为空值。如果要测试非空值,可以用短语“is not null”。
空值的存在增加了算术操作和比较操作的复杂性。SQL中规定,涉及到+、-、*、/的算术表达式中有一个值是空值时,表达式的值也是空值。涉及到空值的比较操作的结果认为是“false”。
在聚合函数中遇到空值时,除了count(*)外,都跳过空值而去处理非空值。 2.7 集合比较操作
(1)集合成员资格的比较
其形式如下:
元组(行) in(集合)
元组(行) not in(集合)
这里的集合可以是一个select查询语句,或者是元组的集合,但其结构应与前面元组的结构相同。in操作符表示:如果元组在集合内,那么其逻辑值为true;否则为false。
例如,where C# in(?C2?,?C4?)
上式中表示C#等于C2或C4的集合。
(2)集合成员的算数比较
其形式如下:
元组(行) θ some(集合)
元组(行) θ all(集合)
这里要求“元组”与集合中“元素”的结构一致。θ是算数比较运算符。
“θ some”操作表示左边那个元组与右边集合中至少一个元素满足θ运算。
“θ all”操作表示左边那个元组与右边集合中每一个元素满足θ运算。
4 / 6
内蒙信元 SQL语句学习参考 3. SQL的数据更新
SQL的数据更新包括数据插入、删除和修改等三种操作,下面分别介绍。
3.1数据插入
有四种方式往基本表中插入数据:
(1) 单元组的插入
insert into 基本表名[(列名)]
values(元组值);
(2) 多元组的插入
insert into 基本表名[(列名)]
values(元组值),(元组值),…,(元组值); (3) 查询结果的插入
insert into 基本表名[(列名)]