SQL语句 创建表、模式、索引 您所在的位置:网站首页 数据库mysql创建表格 SQL语句 创建表、模式、索引

SQL语句 创建表、模式、索引

2024-01-19 16:12| 来源: 网络整理| 查看: 265

一、数据定义语句

一、 数据定义:

操作对象创建删除修改模式CREATE SCHEMADROP ~表CREATE TABLEDROP ~ALTER TABLE视图CREATE VIEWDROP VIEW索引CREATE INDEXDROP INDEXALTER INDEX 一个数据库中可以建立多个模式,一个模式下通常包括多个表、视图和索引等数据库对象。(什么是索引???)

二、数据字典 数据字典是关系数据库管理系统内部的一组系统表,它记录了数据库中所有对象的定义信息以及一些统计信息:

关系模式、表、视图、索引的定义完整性约束的定义各类用户对数据库的操作权限统计信息 关系数据库管理系统在执行SQL的数据定义语句时,实际上就是在更新数据字典表中的相应信息。(数据字典怎么查看??????) 三、创建表

1. 创建表 【例3.1】建立“学生”表Student。学号是主码,姓名取值唯一。

CREATE TABLE Student (Sno CHAR(9) PRIMARY KEY, // 列级完整性约束条件,Sno是主码 Sname CHAR(20) unique, // Sname取唯一值 UNIQUE约束 Ssex CHAR(2), Sage SMALLINT, Sdept CHAR(20) );

【例3.2】建立一个“课程”表Course

CREATE TABLE Course (Cno CHAR(4) PRIMARY KEY, Cname CHAR(40), Cpno CHAR(4), Ccredit SMALLINT, FOREIGN KEY (Cpno) REFERENCES Course(Cno) //Cpno是外码,被参照的是Course表,被参照的列是cno );

【例3.3】建立一个学生选课表SC

CREATE TABLE SC( Sno CHAR(9), Cno CHAR(4), Grade SMALLINT, //主码由两个属性构成,必须作为表级完整性进行定义 PRIMARY KEY (Sno,Cno), //表级完整性约束条件,Sno是外码,被参照表示Student FOREIGN KEY (Sno)REFERENCES Student(Sno) //表级完整性越是条件,Cno是外码,被参照表示Course FOREIGN KEY (Cno)REFERENCES Course(Cno) ) 四、模式的创建于删除

一、模式的创建

CREATE SCHEMA AUTHORIZATION [||]定义模式实际上定义了一个命名空间(或者说是目录)在这个空间中可以定义该模式包含的数据库对象,例如基本表、视图、索引等。在CREATE SCHEMA中可以接受CREATE TABLE,CREATE VIEW和GRANT子句。(啥是GRANT子句?)

【例题3.1】为用户WANG定义一个学生-课程模式S-T

CREATE SCHEMA "S-T" AUTHORIZATION WANG;

【例题3.2】为用户ZHANG创建了一个模式TEST,并且在其中定义一个表TABE1

CREATE SCHEMA TEST AUTHORIZATION ZHANG CREATE TABLE TABE1 ( COL1 SMALLINT, COL2 INT, COL3 CHAR(20), COL4 NUMERIC(10,3), COL5 DECIMAL(5,2) );

二、模式的删除 DROP SCHEMA

CASCADE(级联) 删除模式的同事把该模式中所有的数据库对象全部删除 RESTRICT(限制) 如果该模式中定义了下属的数据库对象(如表、视图等),则拒绝该删除语句的执行

【例3.3】删除模式ZHANG,同时该模式中定义的表TABE1也被删除

DROP SCHEMA ZHANG CASCADE 五、修改基本表 ALTER TABLE [ADD[COLUMN] [ 完整性约束 ] ] [ADD ] [DROP [ COLUMN ] [CASCADE| RESTRICT] ] [DROP CONSTRAINT[ RESTRICT | CASCADE ] ] [ALTER COLUMN ]

是要修改的基本表  ADD子句用于增加新列、新的列级完整性约束条件和新的表级完整 性约束条件  DROP COLUMN子句用于删除表中的列  如果指定了CASCADE短语,则自动删除引用了该列的其他对象  如果指定了RESTRICT短语,则如果该列被其他对象引用,关系数据库 管理系统将拒绝删除该列  DROP CONSTRAINT子句用于删除指定的完整性约束条件  ALTER COLUMN子句用于修改原有的列定义,包括修改列名和数据 类型 【例5.1】向Student表增加“入学时间”列,其数据类型为日期型

ALTER TABLE Student ADD S_entrance DATE; //这里可以顺便加个完整性约束

【例5.2】将Student 的年龄的数据类型由字符型(假设原来的数据类型是字符型)改为整数。

ALTER TABLE Student ALTER COLUMN Sage INT;

【例5.3】增加课程名称必须取唯一值得约束条件。

ALTER TABLE Course ADD UNIQUE(Cname) 六、删除基本表

DROP TABLE [RESTRICT| CASCADE] 【例6.1】删除Student表

DROP TABLE Student CASCADE; //级联删除 //表的定义被删除,数据被删除。 //表上建立的索引、视图、触发器也一并被删除 七、索引

一、索引的概念

建立索引的目的:加快查询速度关系数据库管理系统中常见的索引: 顺序文件上的索引B+树索引 (参见爱课程网3.2节动画《B+树的增删改》) //具有动态平衡的优点 ?????????????散列(hash)索引 //HASH索引具有查找速度快的特点位图索引 聚集索引和非聚集索引的区别: https://blog.csdn.net/jiadajing267/article/details/54581262 https://www.cnblogs.com/hyd1213126/p/5828937.html 二、建立索引 语句格式 CREATE [UNIQUE] [CLUSTER] INDEX ON ([][,[] ]…);  :要建索引的基本表的名字  索引:可以建立在该表的一列或多列上,各列名之间用逗号分隔  :指定索引值的排列次序,升序:ASC,降序:DESC。缺省 值:ASC  UNIQUE:此索引的每一个索引值只对应唯一的数据记录  CLUSTER:表示要建立的索引是聚簇索引

【例7.1】为学生-课程数据库中的Student,Course,SC三个表建立索引。Student表按学号升序建唯一索引,Course表按课程号升序建唯一索引,SC表按学号升序和课程号降序建唯一索引:

CREATE UNIQUE INDEX Stusno ON Student(Sno); CREATE UNIQUE INDEX Coucno ON Course(Cno); CREATE UNIQUE INDEX SCno ON SC(Sno ASC , Cno DEC);

三、删除索引

DROP INDEX on ;


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有