第三章关系数据库标准语言SQL
- 3.1_SQL的特点
- 3.3_数据定义
- 3.3.1_基本表的定义、删除与修改
- 3.3.3_索引的建立与删除
- 3.4_数据查询
- 3.4.1_查询时消除重复行
- 3.4.2_涉及空值的查询
- 3.4.3_BETWEEN AND的使用
- 3.4.4_字符匹配
- 3.4.5_聚集函数
- 3.5_数据更新
- 3.5.1_插入数据
- 3.5.2_修改数据
- 3.5.3_删除数据
- 3.6_视图(除了建立,其他与对表的操作一样)
- 3.6.1_建立视图
- 3.6.2_删除视图
总结sql操作:
对表或者视图的操作需要写上table或者view,如create table table_name (…)
对表或者视图中数据的操作不用,如insert into table_name values(…)
3.1_SQL的特点
1.综合统一
集数据定义语言(DDL),数据操纵语言(DML),数据控制语言(DCL)功能于一体。
2.高度非过程化
3.面向集合的操作方式
4.以同一种语法结构提供多种使用方式
5.语言简洁,易学易用
3.3_数据定义
3.3.1_基本表的定义、删除与修改
1.定义基本表
CREATE TABLE <表名>
(<列名> <数据类型>[ <列级完整性约束条件> ]
[,<列名> <数据类型>[ <列级完整性约束条件>] ] …
[,<表级完整性约束条件> ] )
2.修改基本表
3.删除基本表
DROP TABLE <表名>[RESTRICT| CASCADE]
3.3.3_索引的建立与删除
1.建立索引
CREATE [UNIQUE] [CLUSTER] INDEX <索引名> ON <表名>(<列名>[<次序>][,<列名>[<次序>] ]…)
2.删除索引
DROP INDEX <索引名>
3.4_数据查询
HAVING短语与WHERE子句的区别: 作用对象不同
WHERE子句作用于基表或视图,从中选择满足条件的元组
HAVING短语作用于组,从中选择满足条件的组。
having与where用法详解
3.4.1_查询时消除重复行
例:SELECT DISTINCT Sno FROM SC
3.4.2_涉及空值的查询
select * from Student where score IS null
注意IS不能是’=’
3.4.3_BETWEEN AND的使用
select * from Student where age BETWEEN 20 AND 30
注意:是20<= age <=30
3.4.4_字符匹配
3.4.5_聚集函数
3.5_数据更新
3.5.1_插入数据
方法一:
INSERT
INTO <表名> [(<属性列1> [,<属性列2>… )]
[子查询]
INSERT
INTO <表名> [(<属性列1> [,<属性列2>… )]
values((<属性列1> [,<属性列2>… ))
例:
INSERT INTO Dept_age(Sdept,Avg_age)SELECT Sdept,AVG(Sage)FROM StudentGROUP BY Sdept或INSERT INTO Dept_age(Sdept,Avg_age)values(1110,20)
3.5.2_修改数据
UPDATE <表名>
SET <列名>=<表达式>[,<列名>=<表达式>]…
[WHERE <条件>]
3.5.3_删除数据
DELETE
FROM <表名>
[WHERE <条件>]
3.6_视图(除了建立,其他与对表的操作一样)
3.6.1_建立视图
CREATE VIEW
<视图名> [(<列名> [,<列名>]…)]
AS <子查询>
[WITH CHECK OPTION]
WITH CHECK OPTION表示对视图进行update、insert和delete操作时要保证更新、插入或删除的行满足视图定义中的谓语条件
--建立信息系学生的视图,并要求进行修改和插入操作时仍需保证该视图只有信息系的学生 。CREATE VIEW IS_StudentAS SELECT Sno,Sname,SageFROM StudentWHERE Sdept= 'IS'WITH CHECK OPTION
3.6.2_删除视图
DROP VIEW <视图名>