数据库概论sql---数据定义

数据定义

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

一个关系数据库管理系统的实例中可以建立多个数据库,一个数据库中可以建立多个模式,一个模式下通常包括多个表、视图和索引等数据库对象

1.模式的定义与删除

1.定义

 create schema <模式名> authorization <用户名>

没有指定模式名,模式名隐含为用户名

2.删除

 drop schema <模式名> <cascade|restrict>

cascade、restrict两者必选其一。选择cascade,表示删除模式的同时把该模式中所有的数据库对象都删除了;

选择restrict,表示如果该模式已经定义了下属的数据库对象,则拒绝删除语句的执行。只有无下属才执行。

2.基本表的定义和删除

1.定义基本表

直接看例子吧!

【例3.7】建立学生选课表SC

 create table SC
    (sno char(9),
    cno char(4),
    grade smallint,
     primary key (sno,cno),          /*主键有两个属性构成,必须作为表级完整性进行定义*/
     foreign key(sno) references student(sno),
     /*表级完整性约束条件,sno是外键,student是被参照表*/
     foreign key(cno) references course(cno),
      /*表级完整性约束条件,cno是外键,course是被参照表*/
    );
 

一个表只有一个主键,但是它可以有多个属性构成

主码约束primary key
唯一性约束 unique
非空值约束 not null
参照完整性约束 foreign key
检查约束 check
默认值 default

 

2.数据类型

自行查书P83

3.修改基本表

ALTER TABLE <表名> [ADD [COLUMN] <新列名><数据类型>[完整性约束]] [DROP [COLUMN] <列名> [CASCADE|RESTRICT] ] [DROP CONSTRAINT <完整性约束名>] [ALTER COLUMN <列名> <数据类型>] [CHANGE <旧列名> <新列名> <列类型>] [MODIFY<列名> <数据类型>]; 其中[]为可选项 ,<>为必填项。

1.修改表名:

基本格式: RENAME TABLE [原表名称] TO `[新表名称]; 或者 ALTER TABLE [原表名称] RENAME TO [新表名称];

2.修改列名:

基本格式:ALTER TABLE 表名 CHANGE [旧列名] [新列名] [列类型]。 示例:

 ALTER TABLE  `t_flightinfo` CHANGE `t_plane_num` `aino` VARCHAR(20) DEFAULT NULL;
3.删除表中的列:

基本格式:ALTER TABLE 表名 DROP [COLUMN] <列名> [CASCADE|RESTRICT] ; 示例:

 ALTER TABLE  `t_flightinfo` DROP COLUMN t_aflight_num;
4.增加新列、新的列级完整性约束条件、和新的表级完整性约束条件:

基本格式:ALTER TABLE 表名 ADD [COLUMN] <新列名><数据类型>[完整性约束]; 示例:

 ALTER TABLE  `t_flightinfo` ADD COLUMN `t_fldt` VARCHAR(50) DEFAULT NULL;
5.修改列数据类型:

基本格式:ALTER TABLE 表名 ALTER COLUMN <列名> <数据类型>; ALTER TABLE 表名 CHANGE <旧列名> <新列名> <列类型>; ALTER TABLE 表名 MODIFY<列名> <数据类型> 注:change和modify在MySQL中可以修改表数据类型,alter column不行,仍给出以前学《数据库系统概论》时用Oracle测试执行的alter column的例子 ALTER TABLE student ALTER COLUMN sage INT; MySQL示例:

 ALTER TABLE  `t_flightinfo` MODIFY `t_load` VARCHAR(20);
 ALTER TABLE  `t_flightinfo` CHANGE `t_loadt_load` VARCHAR(20);

 

3.索引的建立和删除

建立索引是加快查询速度的有效手段

1.建立索引

SQL CREATE INDEX 语法

在表上创建一个简单的索引。允许使用重复的值:

 CREATE INDEX index_name
 ON table_name (column_name)

2.修改索引

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

 

3.删除索引

 DROP INDEX <索引名>;

 

posted @ 2022-03-20 11:46  keeprunning一辉  阅读(219)  评论(0)    收藏  举报