第零章(2020.03.06)模式 表 索引

SQL语句是解释执行的,不是编译执行的

1.创建数据库

create database student

2.使用数据库(use)

use student

3.删除数据库(drop)

drop database student

4.在数据库中创建模式/架构

create schema s_t

5.删除模式

drop schema s_t
创建基本表

1.创建student表

create table student
(
	sno char(9) primary key,--先写变量名后写数据类型;primary key 规定了谁是主码。也可单独写 primary key(sno)
	sname char(10) not null,
	ssex char(2),
	ssage int,--整型固定四个字节
	sdept varchar(10)--最后一行不能有逗号
);

2.创建course表

create table course
(
	cno char(4) primary key,
	cname char(10) unique,--表示唯一,在这列上不允许有重复
	cpno char(4),
	ccredit smallint,
	foreign key (cpno) references course(cno)
);

3.创建sc表

create table sc
(
	sno char(9),--因为student表中的sno是9
	cno char(4),
	grade smallint,
	primary key (sno,cno),--两个都是主码,所以不能在单个后面直接加primary key
	foreign key (sno) references student(sno),
	foreign key (cno) references course(cno),
);

4.删除基本表

drop table student /*被sc引用,不能删除*/
drop table course  /*被sc引用,不能删除*/
drop table sc      /*可以删,没有被任何表引用*/

5.修改基本表

  • a.增加一列类型是datetime的s_entrance(入学时间)
alter table student
add s_entrance datetime  /*增加的时候不需要column*/
  • b.删除列s_entrance
alter table student
drop column s_entrance
  • c.将列grade的数据类型改成int
alter table sc
alter column grade int /*修改的时候需要column*/

6.添加唯一性约束

alter table student
add unique(sname)

7.为cname添加非空约束

alter table course 
alter column cname char(20) not null  /*已经有了唯一性约束,所以这行语句不成功*/

8.创建索引

create unique index stusno on student (sno asc) /*如果不写的话,默认是升序(asc)*/
create unique index scno on sc(sno asc,cno desc)/*学号升序,课程号降序(做次要关键字)*/
create index scgrade on sc (grade desc) /*创建普通索引*/
create clustered index scgradel on sc (grade asc)

9.删除索引

drop index sc.scno
drop index sc.scgrade

10.删除聚集索引

--drop index sc.[PK__sc__905C05331BDEA880]
/*这个索引是和约束联系在一起的,要想删除,必须先删除约束 右键——设计——cno右键——索引/键——删除——存盘*/

--create clustered index scsno on sc(sno asc)
--drop index sc.scsno
发布了34 篇原创文章 · 获赞 5 · 访问量 685

猜你喜欢

转载自blog.csdn.net/u013140841/article/details/105460734