关系数据库标准语言 SQL

一. SQL概述

SQL是英文(Structured Query Language)的缩写,意思为结构化查询语言,它包括了数据定义、查询、操纵和控制四种功能。包括数据定义语句(DDL)、数据操纵语句(DCL)及权限的操作。

SQL的特点:
综合统一;
高度非过程化;
面向集合的操作方式;

以同一种语法结构提供两种使用方法;
语言简洁,易学易用;

二. 数据定义

在这里插入图片描述
2.1 定义语句格式

在这里插入图片描述
定义表
1.定义基本表

CREATE TABLE <表名>(<列名> <数据类型>[ <列级完整性约束条件> ][<列名> <数据类型>[ <列级完整性约束条件>] ][<表级完整性约束条件> ] )

2.修改基本表

ALTER TABLE <表名>[ ADD <新列名> <数据类型> [ 完整性约束 ] ][ DROP <完整性约束名> ][ ALTER COLUMN<列名> <数据类型>]

3.删除基本表

DROP TABLE <表名>[RESTRICT| CASCADE]

RESTRICT:删除表是有限制的。
欲删除的基本表不能被其他表的约束所引用
如果存在依赖该表的对象,则此表不能被删除
CASCADE:删除该表没有限制。
在删除基本表的同时,相关的依赖对象一起删除

定义索引
1.建立索引的目的
加快查询速度
2.谁可以建立索引
DBA 或 表的属主(即建立表的人)
DBMS一般会自动建立以下列上的索引:PRIMARY KEYUNIQUE

1.建立索引

CREATE [UNIQUE] [CLUSTER] INDEX <索引名> 
ON <表名>(<列名>[<次序>][,<列名>[<次序>] ])

1)用<表名>指定要建索引的基本表名字
2)索引可以建立在该表的一列或多列上,各列名之间用逗号分隔
3)用<次序>指定索引值的排列次序,升序:ASC,降序:DESC。缺省值:ASC
4)UNIQUE表明此索引的每一个索引值只对应唯一的数据记录
5)CLUSTER表示要建立的索引是聚簇索引

2.修改索引

ALTER INDEX <旧索引名> RENAME TO <新索引名>

3.删除索引

DROP INDEX <索引名>

删除索引时,系统会从数据字典中删去有关该索引的描述。

三、数据查询

对于多表查询,优先顺序:不相关子查询;连接查询;相关子查询;Exist查询

SELECT [ALL|DISTINCT] <目标列表达式>[<目标列表达式>] …
FROM <表名或视图名>[<表名或视图名> ][WHERE <条件表达式> ]
[ GROUP BY <列名1> [ HAVING <条件表达式> ] ]
[ ORDER BY <列名2> [ ASC|DESC ] ]

SELECT子句:指定要显示的属性列
FROM子句:指定查询对象(基本表或视图)
WHERE子句:指定查询条件
GROUP BY子句:对查询结果按指定列的值分组,该属性列值相等的元组为一个组。通常会在每组中作用集函数。
HAVING短语:筛选出只有满足指定条件的组
ORDER BY子句:对查询结果表按指定列值的升序或降序排序

一、单表查询
在这里插入图片描述

% (百分号) 代表任意长度(长度可以为0)的字符串
_ (下横线) 代表任意单个字符
ESCAPE 短语
当用户要查询的字符串本身就含有 % 或 _ 时,要使用ESCAPE ‘<换码字符>’ 短语对通配符进行转义。

ORDER BY子句
1)ORDER BY子句
可以按一个或多个属性列排序
升序:ASC;降序:DESC;缺省值为升序
2)当排序列含空值时
ASC:排序列为空值的元组最后显示
DESC:排序列为空值的元组最先显示

GROUP BY子句
GROUP BY子句分组:细化聚集函数的作用对象
HAVING短语与WHERE子句的区别:
作用对象不同
WHERE子句作用于基表或视图,从中选择满足条件的元组
HAVING短语作用于组,从中选择满足条件的组。

二、连接查询

等值与非等值连接查询
等值连接:连接运算符为=
eg:查询每个学生及其选修课程的情况

SELECT Student.*,SC.*
FROM Student,SC
WHERE Student.Sno = SC.Sno;

自然连接:
eg:查询每个学生及其选修课程的情况

SELECT Student.Sno,Sname,Ssex,Sage,Sdept,Cno,Grade
FROM Student,SC
WHERE Student.Sno = SC.Sno;

eg:找出每个学生超过他选修课程平均成绩的课程
号。

SELECT Sno, Cno
FROM SC x
WHERE Grade >=(SELECT AVG(Grade) 
FROM SC y
WHERE  y.Sno=x.Sno);

带有ANY(SOME)或ALL谓词的子查询
谓词语义

➢ ANY:任意一个值
➢ ALL:所有值

五、Select语句的一般形式

SELECT [ALL|DISTINCT] 
<目标列表达式> [别名] [ ,<目标列表达式> 
[别名]] …
FROM <表名或视图名> [别名] 
      [ ,<表名或视图名> [别名]][WHERE <条件表达式>]
[GROUP BY <列名1>
[HAVING <条件表达式>]]
[ORDER BY <列名2> [ASC|DESC]

===================================================================
一、插入数据

INSERT
INTO <表名> [(<属性列1>[<属性列2 >)]
VALUES (<常量1> [<常量2>])

二、修改数据

UPDATE <表名>
SET <列名>=<表达式>[<列名>=<表达式>][WHERE <条件>]

三、删除数据

DELETE
FROM <表名>
[WHERE <条件>]

===================================================================

一、简历视图

1.建立视图

CREATE VIEW
<视图名> [(<列名> [<列名>])]
AS <子查询> [WITH CHECK OPTION]

2.删除视图

DROP VIEW <视图名>

二、查询视图
用户角度:查询视图与查询基本表相同

三、更新视图
更新视图和更新基本表相同

四、视图的作用
1.视图能够简化用户的操作
2. 视图使用户能以多种角度看待同一数据
3. 视图对重构数据库提供了一定程度的逻辑独立性
4. 视图能够对机密数据提供安全保护
5. 适当的利用视图可以更清晰的表达查询

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值