数据库
创建数据库CREATE DATABASE `数据库名` DEFAULT CHARSET = utf8;
查看所有数据库SHOW DATABASES
查看所有表SHOW TABLES
删除数据库DROP DATABASE `数据库名` ;
创建表
CREATE TABLE `student` (
`id` int(11) unsigned NOT NULL AUTO_INCREMENT COMMENT 'ID' ,
`name` varchar(100) DEFAULT NULL COMMENT '姓名' ,
`age` int(11) DEFAULT NULL COMMENT '年龄' ,
`create_time` datetime NOT NULL COMMENT '创建时间' ,
`update_time` datetime NOT NULL ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间' ,
PRIMARY KEY (`id`) ,
KEY `idx_name` (`name`) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=8 DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC COMMENT '学生表' ;
1.表名或列名使用符号`,键盘数字1左边的按键,与符号~在同一个按键上,英文格式
2.表结构需放置在符号()内,英文格式
3.int(11),整型,长度11
4.unsigned,无符号数据,在以上SQL语句中,定义id为大于0的整数
5.NOT NULL 不能为空,DEFAULT NULL默认为空
6.AUTO_INCREMENT自增
7.COMMENT注释,注释内容用符号'',英文格式的单引号
8.每列需用用逗号隔开,英文逗号
9.varchar(100),可以存储的最大字符串长度为100个字符
10.PRIMARY KEY (`id`) USING BTREE,主键为id(能唯一地标识表中的每一行),BTREE为索引,提高查询表的效率(索引是一种单独的、物理的对数据库表中一列或多列的值进行排序的一种存储结构)
11.表结构外为表信息,ENGINE为存储引擎,InnoDB是现在比较流行的,支持功能比较多,支持事、组重等,AUTO_INCREMENT=8表示表ID从8开始(换句话说表第一条数据的id为8)如果删除AUTO_INCREMENT=8则表示表id从1开始(表第一条数据的id为1),DEFAULT CHARSET=utf8默认编码utf8,ROW_FORMAT=DYNAMIC表示表为动态表(REDUNDANT,静态),存在varchar、text 以及其变形、blob 以及其变形的字段
修改表
1.添加一列remark(最大字符串长度为100,默认为空),命令为 ALTER TABLE yonghubiao ADD COLUMN `remark` varchar(100) DEFAULT NULL COMMENT '备注';
2.修改列名、列类型等,命令为ALTER TABLE yonghubiao CHANGE COLUMN `remark` `remark1` varchar(11) DEFAULT NULL COMMENT '备注1',remark1为新列名,后面为新类型
3.修改列的类型ALTER TABLE yonghubiao MODIFY COLUMN `age` int(11),有种情况,这列类型创建时未定义不能为空,现在表中有数据,且这列数据值为空,现修改这列类型应为不能为空时,会出现错误,如下图
是因为表中已有数据,如下图
这时应将该条数据的tel列输入值或者删除该条数据,再执行以上截图中的命令,即可成功
4.删除一列ALTER TABLE yonghubiao DROP COLUMN `remark`;
5.修改表名ALTER TABLE yonghubiao RENAME TO `newbiao`;
删除表
DROP TABLE `newbiao`;
/* 创建表 */
CREATE TABLE `student` (
`id` int(11) unsigned NOT NULL AUTO_INCREMENT COMMENT 'ID' ,
`name` varchar(100) DEFAULT NULL COMMENT '姓名' ,
`age` int(11) DEFAULT NULL COMMENT '年龄' ,
`create_time` datetime NOT NULL COMMENT '创建时间' ,
`update_time` datetime NOT NULL ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间' ,
PRIMARY KEY (`id`) ,
KEY `idx_name` (`name`) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=8 DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC COMMENT '学生表' ;
/* 添加一列 */
ALTER TABLE student
ADD COLUMN `remark` varchar(100) DEFAULT NULL COMMENT '备注' ;
/* 修改列名和列类型 */
ALTER TABLE student
CHANGE COLUMN `remark` `newremark` int(11) NOT NULL COMMENT '新备注' ;
/* 修改列类型 */
ALTER TABLE student
MODIFY COLUMN `newremark` varchar(100) ;
/* 删除列 */
ALTER TABLE student
DROP COLUMN `newremark` ;
/* 修改表名 */
ALTER TABLE student1
RENAME TO `student2` ;
DROP TABLE `student2` ; #删除表