当前位置:   article > 正文

SQL语句_在dbms中建立“学生-课程”数据库,其关系逻辑模式如下:student(学生表):stude

在dbms中建立“学生-课程”数据库,其关系逻辑模式如下:student(学生表):stude

目录

一、基础

(一)SQL完成核心功能的9个动词

(二)SQL支持关系数据库三级模式结构

(三)基本表、存储文件、视图的基本定义

1. 基本表

2. 存储文件

3. 视图

二、学生-课程数据库

(一)学生表

(二)课程表

(三)学生选课表

三、数据定义

(一)模式的定义

1. 定义模式

2. 说明

(二)模式的删除

1. 语句格式 

2. 说明

(三)表的定义

1. 定义基本表

2. 数据类型

3. 模式与表

(四)创建基本表

1. 创建表时给出模式名

2. 在创建模式语句中同时创建表

3. 设置所属模式,在创建表名中不必给出模式

(五)修改基本表

1. 语句格式

2. 向Student表增加“入学时间”列,其数据类型为日期型

3. 将年龄的数据类型由字符型(假设原来的数据类型是字符型)改为整数

4. 增加课程名称必须取唯一值的约束条件

(六)删除基本表

1. 语句格式

2. 例:删除Student表

3. 若表上建有视图,选择RESTRICT时表不能删除

四、索引

(一)基本概念 

1. 建立索引的目的

2. 谁可以建立索引

3. 谁维护索引

4. 使用索引

5. 关系数据库管理系统中常见索引

6. 说明

(二)建立索引

1. 语句格式

2. 例:建立聚簇索引

3. 例:为学生-课程数据库中的Student,Course,SC三个表建立索引

4. 聚簇索引

(三)修改索引

1. 语句格式

(四)删除索引

1. 语句格式

2. 注意


一、基础

(一)SQL完成核心功能的9个动词

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

(二)SQL支持关系数据库三级模式结构

(三)基本表、存储文件、视图的基本定义

1. 基本表

  • 本身独立存在的表
  • SQL中一个关系就对应一个基本表
  • 一个(或多个)基本表对应一个存储文件
  • 一个表可以带若干索引(索引可以当作是“目录”,索引的目的可以帮助快速查询)

2. 存储文件

  • 逻辑结构组成了关系数据库的内模式
  • 物理结构是任意的,对用户透明的 

3. 视图

  • 从一个或几个基本表导出的表
  • 数据库中只存放视图的定义而不存放视图对应的数据
  • 视图是一个虚表(虚表意味着在数据库中不存在)
  • 用户可以在视图上再定义视图

二、学生-课程数据库

  • 学生-课程模式 S-T

(一)学生表

(二)课程表

 

(三)学生选课表

 

三、数据定义

SQL的数据定义功能:模式定义、表定义、视图和索引的定义

(一)模式的定义

1. 定义模式

CREATE SCHEMA <模式名> AUTHORIZATION <用户名>;
  • authorization的意思是授权 
  • 例如:为用户WANG定义一个学生-课程模式S-T
CREATE SCHEMA "S-T" AUTHORIZATION WANG;

2. 说明

  • 第一:若没有指定模式名,那么<模式名>隐含为<用户名>

例如:

CREATE SCHEMA AUTHORIZATION WANG;

该语句没有指定<模式名>,因此<模式名>隐含为用户名WANG

  • 第二:在CREATE SCHEMA中可以接受CREATE TABLE,CREATE VIEW和GRANT子句
CREATE SCHEMA <模式名>AUTHORIZATION<用户名>[<表定义子句>|<视图定义子句>|<授权定义子句>];
  1. CREATE SCHEMA TEST AUTHORIZATION ZHANG
  2. CREATE TABLE TAB1 ( COL1 SMALLINT,
  3. COL2 INT,
  4. COL3 CHAR(20),
  5. COL4 NUMERIC(10,3),
  6. COL5 DECIMAL(5,2)
  7. ); 【一般分开写】
  • 第三:执行创建模式语句必须拥有DBA权限,或者DBA授予在CREATE SCHEMA的权限

(二)模式的删除

1. 语句格式 

DROP SCHEMA <模式名> <CASCADE|RESTRICT>;

2. 说明

  • CASCADE和RESTRICT必须二选一 
  • CASCADE(级联):删除模式的同时把该模式中的所有的数据库对象全部删除
  • RESTRICT(限制):如果该模式中定义了下属的数据库对象(如表、视图等),则拒绝该删除语句的执行。当该模式中没有任何下属的对象的时候才能执行

例如:

DROP SCHEMA ZHANG CASCADE;

删除模式ZHANG,同时该模式中定义的表TAB1也被删除

(三)表的定义

1. 定义基本表

  1. CREATE TABLE <表名>
  2. (<列名> <数据类型>[ <列级完整性约束条件> ]
  3. [,<列名> <数据类型>[ <列级完整性约束条件>] ]
  4. [,<表级完整性约束条件> ] );
  • <表名>:所要定义的基本表的名字
  • <列名>:组成该表的各个属性(列)
  • <列级完整性约束条件>:涉及相应属性列的完整性约束条件
  • <表级完整性约束条件>:涉及一个或多个属性列的完整性约束条件 
  • 说明:如果完整性约束条件涉及到该表的多个属性列,则必须定义在表级上,否则既可以定义在列级也可以定义在表级 

2. 数据类型

3. 模式与表

  • 每一个基本表都属于某一个模式 ,一个模式包含多个基本表
  • 创建基本表(其他数据库对象也一样)时,若没有指定模式,系统会根据搜索路径来确定该对象所属的模式

显示当前的搜索路径:

SHOW search_path;

搜索路径的当前默认值:

$user, PUBLIC;

DBA用户可以设置搜索路径:

SET search_path TO “S-T”,PUBLIC;//第一个模式名S-T

说明:

  • 若搜索路径中的模式名不存在,系统将给出错误
  • 若搜索路径中的存在模式,RDBMS会使用模式列表中第一个存在的模式作为数据对象的模式名

(四)创建基本表

  •  以定义一个学生-课程模式S-T为例

1. 创建表时给出模式名

  1. CREATE TABLE "S-T" .Student(....);/*S-T为模式名*/
  2. CREATE TABLE "S-T" .Course(....);
  3. CREATE TABLE "S-T".SC(....);

2. 在创建模式语句中同时创建表

  1. CREATE SCHEMA TEST AUTHORIZATION ZHANG
  2. CREATE TABLE TAB1 ( COL1 SMALLINT,
  3. COL2 INT,
  4. COL3 CHAR(20),
  5. COL4 NUMERIC(10,3),
  6. COL5 DECIMAL(5,2)
  7. ); 【一般分开写】

3. 设置所属模式,在创建表名中不必给出模式

(五)修改基本表

1. 语句格式

  1. ALTER TABLE <表名>
  2. [ ADD[COLUMN] <新列名> <数据类型> [ 完整性约束 ] ]
  3. [ ADD <表级完整性约束>]
  4. [ DROP [ COLUMN ] <列名> [CASCADE| RESTRICT] ]
  5. [ DROP CONSTRAINT<完整性约束名>[ RESTRICT | CASCADE ] ]
  6. [ALTER COLUMN <列名><数据类型> ] ;
  • 说明:

2. 向Student表增加“入学时间”列,其数据类型为日期型

3. 将年龄的数据类型由字符型(假设原来的数据类型是字符型)改为整数

 

4. 增加课程名称必须取唯一值的约束条件

ALTER TABLE Course ADD UNIQUE(Cname); 

(六)删除基本表

1. 语句格式

DROP TABLE <表名>[RESTRICT|CASCADE];

2. 例:删除Student表

DROP TABLE  Student  CASCADE ;
  • 基本表定义被删除,数据被删除
  • 表上建立的索引、视图、触发器等一般也将被删除 

3. 若表上建有视图,选择RESTRICT时表不能删除

四、索引

(一)基本概念 

1. 建立索引的目的

  • 加快查询速度

2. 谁可以建立索引

DBA或表的属主(即建立表的人)。

DBMS一般会自动建立以下列上的索引:PRIMARY  KEY,UNIQUE
 

3. 谁维护索引

关系数据库管理系统(DBMS)自动完成

4. 使用索引

关系数据库管理系统自动选择合适的索引作为存取路径,用户不必也不能显式地选择索引

5. 关系数据库管理系统中常见索引

  • 顺序文件上的索引
  • B+树索引
  • 散列(hash)索引
  • 位图索引 

特点

  • B+树索引具有动态平衡的优点
  • HASH索引具有查找速度快的特点

6. 说明

(二)建立索引

1. 语句格式

  1. CREATE [UNIQUE] [CLUSTER] INDEX <索引名>
  2. ON <表名>(<列名>[<次序>][,<列名>[<次序>] ]…);

2. 例:建立聚簇索引

3. 例:为学生-课程数据库中的Student,Course,SC三个表建立索引

4. 聚簇索引

聚簇索引是指索引顺序与表中记录的物理顺序一致的索引组织

例如:在Student表的Sname列上建立一个聚簇索引

CREATE CLUSTER INDEX Stusname ON Student(Sname)
  • 在最经常查询的列上建立聚簇索引以提高查询效率
  • 一个基本表上最多只能建立一个聚簇索引
  • 经常更新的列不宜建立聚簇索引

(三)修改索引

1. 语句格式

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

(四)删除索引

1. 语句格式

DROP INDEX <索引名>;

2. 注意

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

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Gausst松鼠会/article/detail/489661
推荐阅读
相关标签
  

闽ICP备14008679号