二、数据库基础知识(补)

一、补充命令

#查看数据库的定义
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
)

运行结果:

image.png

当设置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字段注释

可以给字段加注释也可以给表加注释,但是两者不一样。


二、数据库基础知识(补)_第1张图片
image.png

3.4表类型

二、数据库基础知识(补)_第2张图片
image.png

示例代码:

    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、引擎

二、数据库基础知识(补)_第3张图片
image.png

二、数据库基础知识(补)_第4张图片
image.png

注:适用场合:
适用MyISAM:节约空间及相应速度
InnoDB:安全性、事务处理及多用户操作数据表

查看mysql所支持的引擎类型(表类型)

#查看mysql所支持的引擎类型(表类型)
SHOW ENGINES;

查看默认引擎

#查看默认引擎
SHOW VARIABLES LIKE 'storage_engine';

2、存储位置

二、数据库基础知识(补)_第5张图片
image.png

3.5表字符集

就是设置字符编码格式,可以设置一个字段的编码,一个表的编码,还可以设置整个数据库的编码。


二、数据库基础知识(补)_第6张图片
image.png

设置单个字段的编码格式:

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 */

你可能感兴趣的:(二、数据库基础知识(补))