查看编码
查看当前数据库支持的编码有哪些命令
show character set;
查看当前mysql环境的编码
show variables like ‘char%';
修改编码
命令修改:
set 编码名字=编码值
查看数据库支持的存储引擎
show engines
sql包含的内容
SQL语言划分四大模块语言:
1、DDL【DATA Definition Language】:数据定义语言
作用:用来操作用户 数据库 表,试图的数据库结构
create【创建】 drop【删除】 alter【修改】
2、DML【Dtae Manipilation language】:数据库操作语言
作用:主要用户处理数据库表中的数据
insert 【插入】 delete【删除】 update【修改】select【查询】
注意:select 单独分类一类 DQL【Date Query Languages】
3、DCL【Date Control Languages】:数据控制语言
作用:控制数据使用范围,用户权限管理
grant【赋予】 revoke【收回】
4、TCL【Transacton Control Languages】:事务控制语言
作用:控制操作过程事务【失误】
commit【提交】 rollback【回滚】 savepoint【保持点】
操作数据之存储引擎
主要数据库的发动机,用户数据库与文件之间转化
因为数据库操作数据形式不同,所以与数据库定义多个存储引擎
常用:innoDB, MyisaM Memory
存储引擎之--innoDB
8.0默认存储引擎为innoDB
8.0之前默认是MyisM
优势:
提供了完整的事务处理,有很好的容灾能力
提供了外键支持---多表关联查询
提供自增操作 auto_increment
支持并发操作
缺点:
读写数据慢,占用空间大
MyISaM
80.之前默认存储引擎
优点:
将数据表拆分为三块:表结构,数据,索引
存储数据速度快,占用空间小
缺点:
不支持事务处理,不支持并发操作
Memory
内存存储处理数据----磁盘上也会有一个临时文件
优点:
速度快,方便
缺点:
数据生命周期短依赖内存
什么是数据库
管理数据的最小单元 每一个数据库对应一个应用【常规应用】
查看当前使用的数据库
select database()
命名规范(参照Java标识符)
表名:
tab_实际意义名字或者 _实际意义名字
实际意义的名字:
见其名字,知道表中存储的信息的意义,不建议使用拼音
字段的命名:
表名缩写_有意义字段名
缩写:
一般是取表有意义的名字首字母,如果首字母相同取俩位,以此类推
所有的名称小写
数据类型
整数类型
tinvint (len) 占1个字节
smallint (len) 占2个字节
int 或者integer(len) 占4个字节 一般常用
bigint (len) 占8个字节
备注:以上类型范围是动态的,可以限制
小数类型
浮点数
float (m,d) 4个字节
double (m,d) 8个字节
常见小数,没有给定(m,d),默认值,跟Java一样默认长度和小数位数
定点小数
decimal (m,d)
有点类似于Java中bigdecimal,数据库中实际以字符串的方式存储数据
备注:(m,d)中m表示数据总位置,d表示保留的小数位数
相同
都是来定义小数,decimal与double类似
超出小数范围的数据存入,自动四舍五入
不同
浮点型,数据类型,精度比较容易受影响
定点类型不容易受影响,涉及精度要求很高的---选择定点decimal类型
一般推荐使用double或者decimal
字符串
char (n) 0-255个字符 固定长度
varchar(n) 0-65535个字符 可变长度字符串
text 0-65535个字符 可变长度文本
tinytext 0-255个字符 可变长度文本
longtext
备注
固定长度和可变长度
固定长度是,定义长度是多少,开辟的空间就是多少
可变长度,存储的值的长度是多少,开辟的空间就是多少
字符串和文本
文本比字符串更加丰富
字符串---存储的时候。定义的长度是多少。做多只能存储多少个字符
文本----不需要指定长度
一般推荐使用
字符串:varchar
文本:text
时间日期的存储
date yyyy-MM-dd 推荐使用
time hh:mm;ss 推荐
datetime yyyy-MM-dd hh:mm;ss
timestamp yyyy-MM-dd hh:mm;ss.毫秒 推荐
year yyyy或者yy
字节数据的存储
blob 0-65535字节
longblob 2^32-1
枚举类型
enum(元素1,元素2,元素3)
显示当前地段存在的数据,不写,默认是第一个值
set(元素1,元素2)
json数据
5.7版本以后,支持存储json字符串数据