mysql表结构解析

数据库

创建数据库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` ; #删除表

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值