chap02 数据类型与操作数据表

2018-10-08  本文已影响0人  月涩风潇

1. 内容回顾

数据类型:数据类型是指列存储过程参数,表达式和局部变量的数据特征,它决定了数据的存储格式,代表了不同的信息类型。

2. MySQL数据类型之整型

数据类型 存储范围
TINYINT 有符号值: -128到127(-2^7~2^7-1)
无符号值:0到255(0到2^8-1)
SMALLINT 有符号值: -32768到32767 (-2^{15}~2^{15}-1)
无符号值:0到65535(0到2^{16}-1)
MEDIUMINT 有符号值: -8388608到8388607(-2^{23}2^{23}-1)
无符号值:0到16777215(0到2^{24}-1)
INT 有符号值:-2147483648到2147483647(-2^{31}2^{31}-1)
有符号值:0到4294967295(0到2^{32}-1)
BIGINT 有符号值:-9223372036854775808到9223372036854775807(-2^{63}-12^{63})
无符号值:0到184467440773709551615(0到2^{64}-1)

3. MySQL数据类型之浮点型

数据类型 存储范围
FLOAT[(M, D)] -3.402823466E+38到-1.175494351E-38、0和1.175494351E-38到3.402823466E+38。M是数字总位数,D是小数点后面的位数。如果M和D被省略,根据硬件允许的限制来保存值。单精度浮点数精确到大约7位小数位。
DOUBLE[(M, D)] -1.7976931348623157E+308到-2.2250738585072014E-308、0和2.2250738585072014E-308到1.7976931348623157E+308

4. MySQL数据类型之日期时间型

列类型 存储需求
YEAR 1
TIME 3
DATE 3
DATATIME 8
DATASTAMP 4

5. MySQL数据类型之字符型

列类型 存储要求
CHAR M个字节,0<=M<=255
VARCHAR(M) L+1个字节,其中L<=M且0<=M<=65535
TINYTEXT L+1个字节,其中L<2^8
TEXT L+2个字节,其中L<2^{16}
MEDIUMTEXT L+3个字节,其中L<2^{24}
LONGTEXT L+4个字节,其中L<2^{32}
ENUM('value1', 'value2'...) 1或2个字节,取决于枚举值的个数(最多65535个值)
SET('value1', 'value2'...) 1,2,3,4或者8个字节,取决于set成员的数目(最多64个成员)

6. MySQL创建数据表

数据表(或称表)是数据库最重要的组成部分之一,是其他对象的基础。

USE + 数据库名称 打开数据库(必须是已经存在的数据库)

行 ->记录 ; 列 ->字段

创建测试数据库

SELECT DATABASE();显示当前所在的数据库

切换数据库

在test数据库中创建数据表

创建数据表
CREATE TABLE [ IF NOT EXISTS ] tb_name ( column_name, data_type, ...)
列名称,数据类型

创建数据表

7. MySQL查看数据表

SHOW TABLES
查看数据表列表 SHOW TABLES [ FROM db_name ] [ like ' pattern ' | WHERE expr ]
不仅可以查看当前数据库下的数据表,还可以直接查看其他数据库的数据表列表

EX: SHOW TABLES FROM mysql

查看mysql数据库中的数据表

查询过程中当前数据库不会改变,仍然为test

验证

8. MySQL查看数据表结构

SHOW COLUMNS
查看数据表结构
SHOW COLUMNS FROM tb_name;

查看数据表的数据成员

9. MySQL记录的插入与查找

INSERT 插入记录
INSERT [ INFO ] tb1_name [(col_name,...)] VALUES (val,...)
也就是插入表的名字,参数名,以及对应的值

Ex: INSERT tb1 VALUES ('Tom', 25, 7863.25) OK
INSERT tb1 VALUES ('Tom', 25) ERROR (缺少一个参数)

验证插入

也可以只为某些字段赋值,则未赋值的字段为NULL
INSERT tb1 (username salary) VALUES ('John', 4500.69)

验证插入

SELECT
记录查找
SELECT expr,... FROM tb1_name

SELECT * FROM tb1;
*为字段的过滤

显示当前表的内容

10. MySQL的空值与非空

增加与创建数据库时将字段设计的更加完善

image.png 创建的表的列的情况

插入元素
INSERT tb2 VALUES ('Tom', NULL)
SELECT * FROM tb2

插入并验证NULL

尝试使username字段为空

报错

11. MySQL的自动编号

不能存在重复的时候较有用
AUTO_INCREMENT属性

  1. 自动编号,且必须与主键组合使用
  2. 默认情况下,起始值为1,每次的增量为1.
    字段需要为数值型,即为整型或浮点型。
    浮点型的小数部分为0。
image.png

12. MySQL初涉主键约束

AUTO_INCREMENT字段必须定义为主键,与 PRIMARY KEY一起使用
主键不一定与AUTO_INCREMENT一起使用

image.png image.png 插入元素以及展示

可以显然看出id字段自动赋值且自增

如果只有主键,无AUTO_INCREMENT字段


只有主键

主键允许赋值,但是不能赋两个相同的值。


image.png

13. MySQL初涉唯一约束

主键,一张数据表只能有一个。
UNIQUE KEY --一张数据表中可以存在多个,但是此字段的值不能重复。

image.png image.png 再次执行时会报错,不满足唯一约束

14. MySQL初涉默认约束

DEFAULT

值插入username sex字段默认为3

15. 总结

上一篇 下一篇

猜你喜欢

热点阅读