数据库--SQL语言
一、SQL语言
1.1.SQL概念
- SQL是结构化查询语言(Structured Query Language)的缩写,其功能包括数据查询、数据操纵、数据定义和数据控制四个部分
- SQL语言简洁、方便实用、功能齐全,已成为目前应用最广的关系数据库语言
- SQL既是自含式语言(联机交互),又是嵌入式语言(宿主语言)
1.2.基本概念
- 基本表(BASE TABLE):是独立存在的表,不是由其它的表导出的表。一个关系对应一个基本表,一个或多个基本表对应一个存储文件
- 视图(VIEW):是一个虚拟的表,是从一个或几个基本表导出的表。数据库中只存放视图的定义而不存放视图对应的数据,这些数据仍存放在导出视图的基本表中。当基本表中的数据发生变化时,从视图中查询出来的数据也随之改变
二、数据定义
2.1.基本概念
- SQL语言使用数据定义语言(DDL)实现其数据定义功能,可对数据库用户、基本表、视图、索引进行定义和撤销
2.2.定义基本表
- CREATE TABLE <表名>(<列名>[{, <列名>|<表约束>}])
- <表名>合法标识符,最多128个字符,如s,sc,c,不允许重名
- <列名><数据类型>[DEFAULT] [{列约束}]
2.3.修改基本表
- ALTER TABLE <表名>
- [ ADD <新列名> <数据类型> [完整性约束]]
- [ALTER COLUMN <列名> <数据类型>]
- [ DROP <COLUMN 列名> | <完整性约束名>];
- ADD子句:增加新列和新的完整性约束条件
- ALTER COLUMN子句:用于修改列
- DROP子句:删除指定列或完整性约束条件
2.4.删除表
- DROP TABLE <表名>
- 基本表删除后,表中的数据和表上建立的索引都被删除,而建立在该表上的视图不会删除,系统将继续保留其定义,但已无法使用
2.5.定义视图
- CREATE VIEW <视图名>[(<列名>[,<列名>]....)]
- AS
- <子查询>
- [with check option]
2.6.删除视图
三、数据查询
3.1.SELECT语句的一般格式
- SELECT [all|Distinct] <列名> [{, <列名>}]
- FROM <表名或视图名> [{, <表名或视图名>}]
- [WHERE <检索条件>]
- [CROUP BY <列名1> [HAVING <条件表达式>]]
- [ORDER BY <列名2>[ASC|DESC]];
3.2.SELECT语句的执行过程是:
- 根据WHERE子句的检索条件,从FROM子句指定的基本表或视图中选取满足条件的元组,再按照SELECT子句中指定的列,投影得到结果表
- 如果有GROUP子句,则将查询结果按照<列名1>相同的值进行分组
- 如果GROUP子句后有HAVING短语,则只输出满足HAVING条件的元组
- 如果有ORDER子句,查询结果还要按照<列名2>的值进行排序
3.3.单表查询
3.4.连接查询
- 表的连接方法有两种:
- 表之间满足一定的条件的行进行连接,此时FROM子句中指明进行连接的表名,WHERE子句指明连接的列明及其连接条件
- 利用关键字JOIN进行连接
3.5.嵌套查询