数据库--SQL语言

203 阅读2分钟

一、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.删除视图

  • DROP VIEW 视图名

三、数据查询

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.嵌套查询