第三章关系数据库标准语言SQL

总结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  Student
              GROUP 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_Student
        AS 
        SELECT Sno,Sname,Sage
        FROM  Student
        WHERE  Sdept= 'IS'
        WITH CHECK OPTION

3.6.2_删除视图

DROP VIEW <视图名>

猜你喜欢

转载自blog.csdn.net/qq_43907296/article/details/110790844