MySQL创建表

本示例为:学生student、课程course、选课表sc

在sql语句中注意“约束的概念":
1.实体完整性约束(主键--唯一且非空) primary key()
    违约处理:No action(拒绝执行)
 
2.参照完整性约束(外键约束)foregin key() references tableName(filedName) [on delete|update casecade | no action]
  违约处理:级联更新或拒绝执行
 
3.用户自定义完整性约束(not null,unique,check短语)
      违约处理:拒绝执行

一、创建学生表student:

mysql> create table student (
    -> sno varchar(9) primary key,
    -> sname varchar(20) unique,
    -> sex varchar(2),
    -> sage varchar(2));
Query OK, 0 rows affected (0.03 sec)

sno varchar(9) primary key/*列级完整性约束条件sno是主码*/

二、创建课程表course:

mysql> create table course
    -> (cno varchar(4) primary key,
    -> cname varchar(40),
    -> cpno varchar(4),
    -> foreign key (cpno) references course(cno));
Query OK, 0 rows affected (0.01 sec)

 -> foreign key (cpno) references course(cno));/*表级完整性约束,cpno(先修课)是外码,被参照表示course,被参照列是cno*/


三、创建学生选课表sc:

mysql> create table sc(
    -> sno varchar(9),
    -> cno varchar(4),
    -> grade int,
    -> primary key (sno,cno),
    -> foreign key(sno) references student(sno),
    -> foreign key(cno) references course(cno)
    -> );
Query OK, 0 rows affected (0.01 sec)

四:修改表语法:

alter table <表名>

[add <新列名>  <数据类型>  [完整性约束]]

[drop <完整性约束>]

[alter column <列名> <数据类型>]

1.增加课程名必须唯一的约束条件:

mysql> alter table course add unique(cname);
Query OK, 0 rows affected (0.10 sec)
Records: 0  Duplicates: 0  Warnings: 0
2.向student表中增加“入学时间”列,其数据类型为date

mysql> alter table course add unique(cname);
Query OK, 0 rows affected (0.10 sec)
Records: 0  Duplicates: 0  Warnings: 0

3.添加外键约束:

mysql> alter table sc add foreign key(cno) references course(cno);
Query OK, 0 rows affected (0.09 sec)
Records: 0  Duplicates: 0  Warnings: 0


posted @ 2014-04-09 22:31  xiaofly_love  阅读(1568)  评论(0)    收藏  举报