创建表
1.基本语法
CREATE TABLE [IF NOT EXISTS] `表名` (
`字段名` 列类型 [属性] [索引] [注释],
`字段名` 列类型 [属性] [索引] [注释],
`字段名` 列类型 [属性] [索引] [注释],
...
...
`字段名` 列类型 [属性] [索引] [注释],
PRIMARY KEY (`id`)
)[表类型][字符集设置][注释]
创建表时只有字段名和列类型是必填的,属性包括是否默认为空,自增什么的都是选填。注释放在最后,除了最后一句都必须加上逗号结尾。
2.示例
创建一个名叫student的表。
表里字段包括学号int,登陆密码,姓名,性别,出生日期,家庭住址,email。
CREATE TABLE IF NOT EXISTS `student` (
`id` INT(4) NOT NULL AUTO_INCREMENT COMMENT '学号', --INT(4)显示长度为4,默认不为空,自增,注释为学号
`name` VARCHAR(30) NOT NULL DEFAULT '匿名' COMMENT '姓名',
`password` VARCHAR(20) NOT NULL DEFAULT '123456' COMMENT '密码',
`sex` VARCHAR(2) NOT NULL DEFAULT '女' COMMENT '性别',
`birthday` DATETIME DEFAULT NULL COMMENT '出生日期',
`address` VARCHAR(100) DEFAULT NULL COMMENT '家庭住址',
`email` VARCHAR(50) DEFAULT NULL COMMENT '邮箱',
PRIMARY KEY (`id`) --最后一句不加逗号
)ENGINE=INNODB DEFAULT CHARSET=utf8 --引擎INNODB,字符集CHARSET=utf8
注意事项:
- 表的名称和字段尽量使用括起来,以免包含关键字。
- auto_increment自增 , NOT NULL不为空,COMMENT注释,字符串使用单引号括起来。
- 所有的语句后面都加逗号,最后一句不用加。
- primary key 设置主键,一般一个表只有一个唯一的主键。
查看表
查看数据库中的表:
show tables;
查看一张表的结构:
desc 表名;
删除表
语法:
DROP TABLE [IF EXISTS] 表名
示例:
DROP TABLE IF EXISTS student;
-- 如果表student存在就删除它
修改和删除数据表字段
1.修改表名:
语法:ALTER TABLE 旧表名 RENAME AS 新表名
--示例将表student的名称改为student1
ALTER TABLE student RENAME AS student1 ;
2.增加表的字段
语法:ALTER TABLE 表名 ADD 字段名 列属性
-- 示例:给student表增加一个age的字段,类型为int,最大显示宽度为10。
ALTER TABLE student ADD age INT(10);
3.修改表的字段
ALTER命令中使用 modify或change子句都能达到修改表字段的目的。
- 字段的重命名
ALTER TABLE 表名 CHANGE 旧字段名 新字段名 类型
-- 示例:将student表中字段age改为新名字age1,并且类型改为int类型。
ALTER TABLE student CHANGE age age1 VARCHAR(10);
- 修改约束
语法:ALTER TABLE 表名 MODIFY 字段名 要修改的类型和约束
-- 示例:将表student中age的类型改为varchar类型,
ALTER TABLE student MODIFY age VARCHAR(10);
上面可以看到change和modify都可以修改列的属性,那么它们有什么不同呢?
答:modify和change都可以修改表的字段,但是change却需要写两次列名,不是很方便。
modify只能修改表的字段类型、change可以在修改字段类型的同时也修改列名。
4.删除表的字段
语法:ALTER TABLE 表名 DROP 要删除的字段名
-- 示例:将student表中字段age删除
ALTER TABLE student DROP age;