一个用户若想新建一个表,一般先新建一个模式(schema),让表作用在模式之内,新建模式的写法为:
create schema <模式名>,例如要新建一个名为 s_sc_c 的模式那么我们写 create schema s_sc_c;
我们再次输入 show databases;可以看到 database里多了一个 我们新建的模式
我们可以在新建一个模式用来删除 输入 create schema textdrop;
如果我们要删除textdrop的话 可以使用语句 drop schema textdrop;
需要注意的是,drop对应了两种删除
1、cascade(级联方式),则当删除数据库模式时,该数据库模式连同其下属的基本表、试图、索引等全部都删除
2、restrict(约束方式),则当删除数据库模式时,只有该数据库模式下属的模式对象:基本表,试图,索引等都被删除
eg:drop schema textdrop cascade;(不写方式时,默认为cascade)
我们现在删除textdrop,输入:drop schema textdrop ;再输入 show databases;
可以看到 textdrop 不见了
现在在s_sc_c模式上 新建几个基本表;
新建基本表的方法为 :
create table <模式名>.<表名>(<列名1> <数据类型> [列完整性约束],<列名2> <数据类型> [列完整性约束],...,<表完整性约束>);
下面新建几个基本表
create table s_sc_c.student (snumber char(10),sname char(20) not null,sex char(8),age int,dept char(20),primary key (snumber));
其中 not null 规定了sname不允许为空值,primary key 定义了表的主键为 snumber ,这里primary key可以在属性的后面写,作为列级完整性约束,也可以在属性之后写,作为表级完整性约束。
create table s_sc_c.course(cnumber char(5) primary key,cname char(20) not null,teacher char(20));
create table s_sc_c.sc (snumber char(10),cnumber char(5),grade int,primary key (snumber,cnumber),foreign key (snumber) references student(snumber),foreign key (cnumber) references course(cnumber));
foreign key (snumber) references student(snumber),表示snumber是外键,这个外键来自student表里的主键snumber。
create table s_sc_c.text(name char(10),address char(20));
这时输入 show tables 查看 s_sc_c里的基本表时,看到四个表
将text 表删除,输入 drop table text;然后再次查看基本表: