SQL语言(一)
概述
SQL特点:
综合统一
高度非过程化
以同一种语言结构提供多种使用方法
语言简洁易学易用
基本表
本身独立存在的表
一个关系就对应一个基本表
一个或多个基本表对应一个存储文件
一个表可以带若干索引
存储文件
视图(虚表)
数据定义
创建 | 删除 | 修改 | |
---|---|---|---|
模式 | CREATE SCHEMA | DROP SCHEMA | |
表 | CREATE TABLE | DROP TABLE | ALTER TABLE |
视图 | CREATE VIEW | DROP VIEW | |
索引 | CREATE INDEX | DROP INDEX | ALTER INDEX |
定义模式
CREATE SSCHEMA "模式名" AUTHORIZATION (WANG 用户名)
模式名可以缺省,表示采用和用户名一样的模式名
定义模式实际上定义了一个命名空间(目录)定义模式的同时可以定义表和视图和授权定义的子句 CREATE SCHEMA <模式名> AUTHORIZATION <用户名>[<表定义子句>|<视图定义子句>|<授权定义子句>]
DROP SCHEMA <模式名> <CASCADE | RESTRICT>
CASCADE
(级联)——删除模式的同时吧模式中的所有数据库对象全部删除
RESTRICT
(限制)——如果模式中定义了相熟的数据库对象,拒绝执行,必须先删除下属对象
定义基本表
CREATE TABLE <表名> (<列名> <数据类型>[<列级完整性约束条件>] 组成 该表的列 [,<列名><数据类型>[<列级完整性约束条件>]]…… [,<表级完整性约束条件>]);
定义基本表所属模式的方式:
■方法一: 在表名中明显地给出模式名Create table"S-T" Stde...... /*模式名为S-T*/ Create table "S-T".Cource....); Create table "S-T".....;
■方法二: 在创建模式的同时创建表
■方法三: 设置所属的模式
创建基本表(其他数据库对象也一样)时,若没有指定模式,系统根据搜索路径来确定该对象所属的模式关系数据库管理系统会以“搜索路径”指向的模式作为数据库对象的模式名设置搜索路径的方式:SET search_ path TO "S-T",PUBLIC;
ALTER TABLE <表名> [ADD[COLUMN] <新列名><数据类型> [完整性约束]] [ADD <表级完整性约束>] [DROP [ COLUMN] <列名> [CASCADE| RESTRICT]] [DROP CONSTRAINT<完整性约束名>[ RESTRICT | CASCADE ] ] [ALTER COLUMN <列名><数据类型>] ;
索引的定义
建立索引的目的:加快查询的速度
常见索引:顺表文件上的索引,B+树索引(动态平衡),哈希索引(快),位图索引
CREATE [UNIQUE] [CLUSTER] INDEX <索引名> ON <表名>(<列名>[<次序>][,<列名>[<次序>].].); <表名>:要建索引的基本表的名字 索引:可以建立在该表的一列或多列上,各列名之间用逗号分隔 <次序>:指定索引值的排列次序,升序: ASC,降序: DESC。缺省值: ASC UNIQUE:此索引的每一个索引值只对应唯一的数据记录 CLUSTER: 表示要建立的索引是聚簇索引
修改索引——ALTER INDEX <旧索引名> RENAME TO <新索引名>
删除索引——DROP INDEX <索引名>;