文档详情

第二章MYSQL数据库和表创建.ppt

发布:2020-02-21约8.24千字共63页下载文档
文本预览下载声明
学生表Student CREATE TABLE Student ( Sno CHAR(10) PRIMARY KEY, Sname VARCHAR(10) UNIQUE, Ssex CHAR(2) NOT NULL check( Ssex IN (‘男’,‘女’) ), Sage SMALLINT default 20, Sdept CHAR(20) CONSTRAINT Sage limit check(Sage between 16 and 40) ) ENGINE=MyISAM DEFAULT CHARSET=utf-8; 注意,虽然上面SQL语句定义了CHECK子句,并且通过MYSQL正确执行了,但时间上CHECK子句在MYSQL中是不支持的。思考,如何实现用户自定义约束? 课程表Course CREATE TABLE Course ( Cno CHAR(4) , Cname VARCHAR(40), Ccredit SMALLINT, PRIMARY KEY(Cno) )ENGINE=MyISAM DEFAULT CHARSET=utf-8; CREATE TABLE Course ( Cid INTEGER UNSIGNED NOT NULL AUTO_INCREMENT, Cno CHAR(4) , Cname VARCHAR(40), Ccredit SMALLINT, PRIMARY KEY (Cid) )ENGINE=MyISAM DEFAULT CHARSET=utf-8; MYSQL中一个表只能定义个自动增长字段,并且必须是主键。 选课成绩表SC CREATE TABLE SC ( Sno CHAR(10), Cno CHAR(4), Grade SMALLINT, PRIMARY KEY (Sno,Cno), FOREIGN KEY (Sno) REFERENCES Student(Sno) ON Delete Cascade On Update Cascade, FOREIGN KEY (Cno) REFERENCES Course(Cno) ON Delete Cascade On Update Cascade )ENGINE=InnoDB DEFAULT CHARSET=utf-8; 1、创建参照完整性要求主、外键的字段数据类型、字符集必须一致。 2、创建主、外键的数据表,都要将其存储引擎设置为 InnoDB。 注意 外键约束说明 外键约束有四种形式: RESTRICT:在子表有相关记录时,父表不允许更新或删除。 CASCADE:父表在更新或删除时,同时更新或删除子表中对应的记录 SET NULL:父表在更新或删除时,子表中对应记录的对应字段设置为NULL NOT ACTION:与RESTRICT相同 2.3.2.9 查看表的结构 查看表的结构有三种MYSQL指令 Desc tablename; Describe tablename; Show create table tablename; 2.4 表结构的修改 2.4.1 修改表名、字段名 2.4.2 修改字段数据类型 2.4.3 修改字段排列位置 2.4.4 增加字段、删除字段 2.4.5 更改表的存储引擎 2.4.6 删除表的外键约束 修改表名、字段名 修改表名 ALTER TABLE qq RENAME qq_t; 修改字段名 ALTER TABLE qq_t CHANGE qq qqno varchar(15); 2.4.2 修改字段数据类型 ALTER TABLE qq_t MODIFY qqno varchar(20); 2.4.3 修改字段排列位置
显示全部
相似文档