一、补充命令
#查看数据库的定义
SHOW CREATE DATABASE school;
#查看数据表的定义
SHOW CREATE TABLE student;
#查看表结构
DESC student;
二、SQLYog语句的保存
可以直接用ctrl+s保存到一个地方(文件后缀是.sql),等到下次再使用的时候,可以选择:文件——在同一标签中打开文件导入之前的文件,就可以继续进行编辑。
三、表补充
示例代码:
#创建一个测试表
CREATE TABLE test(test
coll INT(4) NOT NULL
)
3.1数据类型补充
1、可以看到这个数据类型设置的是int类型的,而int类型的数据是有取值范围的,在sqlyog中,当你输入超过其上限的数据的时候,在该表中只能保存int类型的最大数据。但是这种情况是不严谨的,当输入超过上限数据的时候,就不应该存进去。能存进去的原因是:
/*[8:42:45][ 0 ms]*/ SET sql_mode='';`
因为这个设置的不严格,所以将这个重新设置之后,再保存超过其上限的数据之后就会报错。设置代码如下:
#创建一个测试表
CREATE TABLE test(test
coll INT(4) NOT NULL
)
#设置严格检查模式
SET sql_mode='strict_trans_tables';
2、虽然这个表的int设置的长度是4,但是依然可以存进去超过四位数字的数。
3.2属性补充
1、ZEROFILL
示例代码:
#创建一个测试表
CREATE TABLE test(
coll INT(4) ZEROFILL NOT NULL
)
运行结果:
当设置0填充的时候,填入的数据少于4位的时候,会自动填充0到四位。
2、AUTO_INCREMENT设置初始值和步长
示例代码:
#自增列:默认初始值为1, 步长1
#能否改变自增列的初始值?比如从100开始
#只影响当前表
CREATE TABLE tabl(
id INT(4) PRIMARY KEY AUTO_INCREMENT,
`name` VARCHAR(20) NOT NULL
)AUTO_INCREMENT=100;
#能否改变自增列的步长呢?比如设置为5?
#能影响所有设置自增列的表
SET @@auto_increment_increment=5;
注:要改变步长的时候需要上面这一段代码同时执行。同时改变自增列的初始值只影响当前表,但是改变步长影响所有使用自增列的表。
3、这么多类型的属性可以同时写多个吗?
示例代码:
#同一个列可以被多个属性修饰,但是注意属性的顺序
CREATE TABLE tab2(
id INT(4) ZEROFILL NOT NULL
)
是可以写多个属性的,但是要有一定的顺序。比如上面的代码中,如果把ZEROFILL 与NOT NULL 互换位置,则会报错。
可以这样来确认顺序:
鼠标右键点击Tables——创建表——创建一个列,将你想要添加的属性打上勾——预览——软件生成的属性顺序就是正确的顺序
3.3字段注释
可以给字段加注释也可以给表加注释,但是两者不一样。
3.4表类型
示例代码:
CREATE TABLE `student` (
`id` INT(4) NOT NULL AUTO_INCREMENT COMMENT '主键 ,学号',
`pwd` VARCHAR(6) NOT NULL DEFAULT '123456' COMMENT '密码',
`name` VARCHAR(30) NOT NULL DEFAULT 'a' COMMENT '姓名',
`sex` VARCHAR(2) NOT NULL DEFAULT '1',
`birthday` DATETIME DEFAULT NULL,
`address` VARCHAR(100) DEFAULT NULL,
`email` VARCHAR(50) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=INNODB AUTO_INCREMENT=5 DEFAULT CHARSET=latin1
可以看到在表后面有几个属性:引擎ENGINE,自增初始值:AUTO_INCREMENT;默认字符集:DEFAULT CHARSET。
1、引擎
注:适用场合:
适用MyISAM:节约空间及相应速度
InnoDB:安全性、事务处理及多用户操作数据表
查看mysql所支持的引擎类型(表类型)
#查看mysql所支持的引擎类型(表类型)
SHOW ENGINES;
查看默认引擎
#查看默认引擎
SHOW VARIABLES LIKE 'storage_engine';
2、存储位置
3.5表字符集
就是设置字符编码格式,可以设置一个字段的编码,一个表的编码,还可以设置整个数据库的编码。
设置单个字段的编码格式:
CREATE TABLE a(
address CHAR(5) CHARACTER SET gbk
)
设置表的编码格式:
CREATE TABLE a(
address CHAR(5) CHARACTER SET gbk
)DEFAULT CHARSET=latin1
设置库的字符集:
CREATE DATABASE `school` /*!40100 DEFAULT CHARACTER SET latin1 */