数据库的定义,选择和删除:
create database 数据库名;
use 数据库名;
drop database 数据库名;
数据表的定义和删除
create table表名;
drop table 表名;
//创建一个名字为 s 的数据表
create table s
-> (sno char(6) not null unique,
-> sname char(20) unique,
-> sex char(1),
-> age int);
该数据表由学号sno,学生姓名sname,性别sex,年龄age四个属性组成,因为学号是唯一的所以不能为空,并且值唯一,在名字不会重复的情况下,名字的取值为唯一。
数据类型(常用):
- 整形 int
- 浮点型 float double
- 定长字符串 char(n)
- 变长字符串 varchar(n)
- 日期型 date
完整性约束(常用)
- 主码约束 primary key
- 参照完整性约束 foreign key (<属性>) references <表名>(<属性名>)
- 唯一性约束 unquie
- 非空值约束 not null
//查看数据表的数据结构
describe tables 数据表名;
//查看该数据库中的数据表
show tables;
//中止命令
ctrl+c
//为 s 表增加主键约束
alter table s add constraint primary key(sno);
//创建一个学生选课信息sc表
create table sc
-> (sno char(6),
-> cno char(6),
-> grade int);
//添加主键约束(在sc表中学号和课程号一起才能唯一表示一个学生所选课程的信息)
alter table sc add constraint primary key(sno,cno);
//给sc表添加外键约束(fk是给外键起的名字),references参照了某个表的某些属性(参照了s表中的sno这一属性)
alter table sc add constraint fk foreign key(sno) references s(sno);
添加主码的方式
- 创建数据表的时候添加,在列出关系模式的属性时,在属性及其类型后加上保留字primary key
- 创建表的时候,在列出关系模式的所有属性后,再附加一个声明:primary key(<属性>,…)
- alter table 表明 add constraint primary key(<属性>,…)
//在创建s表的时候添加主键约束,在列出关系模式的属性时,在属性及其类型后加上保留字primary key
-> (sno char(6) not null unique primary key,
-> sname char(20) unique,
-> sex char(1),
-> age int);
//或者是在列出关系模式的所有属性后,再附加一个声明
-> (sno char(6) not null unique,
-> sname char(20) unique,
-> sex char(1),
-> age int,
->primary key(sno));
//第三种:上面的alter方法
alter table s add constraint primary key(sno);
添加外键约束的方法
- 创建数据表的时候添加,在列出关系模式的属性时,在属性及其类型后加上保留字foreign key
- 创建表的时候,在列出关系模式的所有属性后,再附加一个声明:primary key(<属性>,…)
- alter table 表明 add constraint primary key(<属性>,…)
//创建表的时候,在属性及其类型后添加
create table sc
-> (sno char(6) references s(sno),
-> cno char(6),
-> grade int);
//创建表的时候,在列出关系模式的所有属性后,再附加一个声明
create table sc
-> (sno char(6),
-> cno char(6),
-> grade int,
-> foreign key(sno) references s(sno));
//以及上面用alter方法添加
删除主键和外键约束
alter table sc drop primary key;
alter table sc drop foreign key fk;
修改基本表
alter table <表名 > [add(增加新列和新的完整性约束条件),drop(删除指定的列或完整性约束条件),alter(用于修改列名和数据类型)];
alter table 表名 add <列名(属性)> <数据类型>[完整性约束] ;
【注】:若一个属性是非空值约束,则该属性不允许删除和修改
修改表中的数据类型
alter table 表名 modify <属性> <要修改成的数据类型>;
【注】:修改原有的列定义有可能会破坏已有数据