数据库设计(五)SQL

SQL(Structured Query Language),结构化查询语言,是现行关系数据库的标准语言,SQL不单支持数据查询(Data Query)功能,还支持数据定义(Data Definition)、数据操纵(Data Manipulation)和数据控制(Data Control)功能。

0 关键词

1 SQL基本动词

功能 动词
数据定义 CREATE, DROP, ALTER
数据查询 SELECT
数据操纵 INSERT, UPDATE, DELETE
数据控制 GRANT, REVOKE

2 数据定义

创建 删除 修改
模式 CREATE SCHEMA DROP SCHEMA -
CREATE TABLE DROP TABLE ALTER TABLE
视图 CREATE VIEW DROP VIEW -
索引 CREATE INDEX DROP INDEX -

2.1 模式

2.1.1 定义模式

 CREATE SCHEMA <模式名> AUTHORIZATION <用户名> 

注意:模式的定义需要DBA权限或者DBA授予的CREATE SCHEMA权限。

2.1.2 删除模式

DROP SCHEMA <模式名> 
  • CASCADE:级联。在删除模式时,将会将该模式下的所有数据库对象全部删除,比如定义在该模式下的基本表、视图等。
  • RESTRICT:限制。若要删除的模式下已经定义了数据库对象,则对该模式的删除操作会被系统拒绝。

2.2 基本表

2.2.1 定义基本表

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

2.2.2 修改基本表

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

2.2.3 删除基本表

DROP TABLE <表名> [ CASCADE | RESTRICT ]
  • CASCADE:级联。级联删除将删除该基本表和依赖于该基本表的所有对象,例如视图等。
  • RESTRICT:限制。当该基本表存在被其他表的约束所引用、存在依赖于该基本表的视图、存在触发器、储过程或函数等情况下,该基本表将不能被删除。

2.3 索引

2.3.1 建立索引

CREATE [ UNIQUE ] [ CLUSTER ] INDEX <索引名> ON <表名> ( <列名> [<次序>] [,<列名>[<次序>] ]… )
  • 表名:要建立索引的基本表的名字。
  • 次序:ASC(升序)或者DESC(降序)默认值为ASC。
  • UNIQUE:索引值只对应唯一的一条数据记录。
  • CLUSTER:聚簇索引。聚簇索引的索引项的顺序与表中记录的物理顺序一致。

注意:在经常查询的列上建立聚簇索引虽然可以提高查询效率,但如果该索引列上的数据经常更新(增、删、改)则会导致整个物理顺序的改变,系统开销较大。因此聚簇索引并不适合建立在经常更新(增、删、改)的列上。

2.3.2 删除索引

DROP INDEX <索引名>

3 数据查询

SELECT [ALL | DISTINCT] <目标列表达式> [别名] [, <目标列表达式>][别名]…
FROM <表名> [别名] [,<表名> [别名]]…
[WHERE <条件表达式>]
[GROUP BY <列名A> [HAVING <条件表达式>]]
[ORDER BY <列名B> [ASC | DESC]]
  • ALL:查询所有行,不指定默认为ALL。

  • DISTINCT:去除查询列中取值重复的行,只保留一行。

  • FROM:FROM后加表名,用于指定所要查询的表。

  • WHERE:WHERE后加条件表达式,用于指定查询条件。

  • GROUP BY:有GROUP BY子句的话,将按列名A的列值进行分组。

  • HAVING:有 HAVING子句的话,将按HAVING后的条件表达式对查询结果进行过滤。

  • ORDER BY:有ORDER BY子句的话,将对查询结果按列名B得值进行升序(ASC)或者降序(DESC)排列。

  • 目标列表达式常见格式:

    • *
    • <表名>. *
    • COUNT( [DISTINCT | ALL] * )
    • [ <表名>. ] <属性列名表达式> [, [ <表名>. ] <属性列名表达式> ]…
  • 聚集函数常见格式:
    < COUNT | SUM | AVG | MAX | MIN > [DISTINCT | ALL <列名> ]

  • WHERE子句条件表达式常见格式:

你可能感兴趣的:(数据库设计(五)SQL)