一 表的操作
-
查看当前库下所有的表
show tables
-
查看当前所在的库
select database()
-
库与库直接切换使用 use
use 库名
-
查看当前创建表的语句
show create table 表名 \G
-
创建表
create table if not exists 表名(字段名 字段类型 约束条件,字段名 字段类型 约束条件);
-
删除表
drop table 表名
drop table if exists 表名
-
查看别结构
desc 表名
二 表的字段类型
(1) 数值类型
类型 | 大小 | 范围(有符号) | 范围(无符号) | 用途 |
---|---|---|---|---|
tinyint | 1字节 | -128-127 | 0,255 | 最小整数值 |
int | 4字节 | -2147483648,2147483647 | 0,4294967295 | 大整数值 |
float | 4字节 | 单精度浮点值 | ||
double | 8字节 | 双精度浮点值 | ||
decimal | 取决于你当前存储的值 | 小数值(更加精确) |
注意:
int(4) tinyint(2) 的时候 不能够真正的去限制我存储数据的长度 只会影响显示
只有当int(4) 配合zerofill的时候 才有意义
在存储数值要求准确性高的时候 建议使用decimal
(2) 日期和时间(了解)
类型 | 大小 | 范围 | 格式 | 用途 |
---|---|---|---|---|
date | 3 | 1000-01-01/9999-12-31 | YYYY-MM-DD | 存储日期值 |
time | 3 | -838:59:59-838:59:59 | HH:MM:SS | 时间值 |
year | 1 | 1901-2155 | YYYY | 年 |
datetime | 8 | 1000-01-01 00:00:00/9999-12-31 23:59:59 | YYYY-MM-DD HH:MM:SS | 年月日时分秒 |
注意:
在存储日期时 我们可以使用int来存储时间戳 这样方便我们对日期的计算
(3) 字符串
类型 | 大小 | 用途 |
---|---|---|
char(0,255) | 0-255字节 | 定长字符串 |
varchar(0,255) | 0-65535字节 | 可变长度 |
text | 0-65535字节 | 长文本数据 |
enum('w','m') | 65535个成员 | 枚举:可以赋予某个枚举成员 |
set('w','m') | 64个成员 | 集合:可赋予多个集合成员,多个值之间用逗号来隔开 |
char和varchar的区别:
-
char的执行效率高于varchar varchar相对char节省存储空间
-
char和varchar存储的最大值的范围都为255
-
char在插入数据的长度小于指定的长度的时候 会使用空格补位到指定的长度
-
当存储数据的长度超出了我所指定的长度 超出的会截取(开启了不严谨报错)
开启不严谨报错
默认mysql的报错模式为严谨报错 只要数据出现了问题 就会报错
开启不严谨报错 当数据超出范围以后 自动截取为最大值
将原来的sql-mode 注释掉 -->重启mysql的服务->重新打开终端->不严谨报错生效
sql-mode="NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"