1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57
| 1>建表 格式: create table stu( 列1 属性(数据类型、约束、其他属性), 列2 属性, 列3 属性 ) 例子: USE school; CREATE TABLE stu( id INT NOT NULL PRIMARY KEY AUTO_INCREMENT COMMENT '学号', sname VARCHAR(255) NOT NULL COMMENT '姓名', sage TINYINT UNSIGNED NOT NULL DEFAULT 0 COMMENT '年龄', sgender ENUM('m','f','n') NOT NULL DEFAULT 'n' COMMENT '性别' , sfz CHAR(18) NOT NULL UNIQUE COMMENT '身份证', intime TIMESTAMP NOT NULL DEFAULT NOW() COMMENT '入学时间' ) ENGINE=INNODB CHARSET=utf8 COMMENT '学生表'; 建表规范: 1. 表名小写,不能是保留字符 2. 不能是数字开头 3. 注意字符集和存储引擎 4. 表名和业务有关 5. 选择合适的数据类型及长度 6. 每个列都要有注释 7. 每个列设置为非空,无法保证非空,用0来填充 8. PRIMARY KEY:主键约束,表中只能有一个,非空且唯一 9. NOT NULL:非空约束,不允许空值 10.UNIQUE KEY:唯一约束,不允许重复值 11.DEFAULT:一般配合NOT NULL使用 12.UNSIGNED:无符号,一般配合数字列,非负数 13.COMMENT:注释 14.主键列尽量是与业务无关数字列,最好是自增长 15.enum类型不要保存数字,只能是字符串类型 2>删除(生产中禁用命令) drop table t1; 3>修改 1.在stu表中添加qq列 DESC stu; ALTER TABLE stu ADD qq VARCHAR(20) NOT NULL UNIQUE COMMENT 'qq号'; 2.在sname后加微信列 ALTER TABLE stu ADD wechat VARCHAR(64) NOT NULL UNIQUE COMMENT '微信号' AFTER sname ; 3.在id列前加一个新列num ALTER TABLE stu ADD num INT NOT NULL COMMENT '数字' FIRST; DESC stu; 4.把刚才添加的列都删掉(危险) ALTER TABLE stu DROP num; ALTER TABLE stu DROP qq; ALTER TABLE stu DROP wechat; 5.修改sname数据类型的属性 ALTER TABLE stu MODIFY sname VARCHAR(128) NOT NULL ; 6.将sgender 改为 sg 并且数据类型改为 CHAR 类型 ALTER TABLE stu CHANGE sgender sg CHAR(1) NOT NULL DEFAULT 'n' ; DESC stu;
|