数据库高级特性
数据库在加载数据时要制定默认字符集(utf8)
字符集
character set: eg:ascii码
show character set; 显示所有字符集,表里有默认的校验
show collation like ‘Xutf8%’; 每个国家语言转化为utf8
variables
1、character_set_system=utf8 指定表名啊,这些数据库的东西
2、character_set_server
默认字符集:拉丁
全局参数,create database 创建数据库的时候,数据库的字符集就是这个,写在文件中(mysql特性,每个数据库适用于不同的字符集 )
3、character_set_database creat table时默认字符集(创建表时可以每一列字符集都不同,like大小写敏感、唯一、对应关系)
4、character_set_connection
数据库收到语句,需要解码
5、character_set_results(后台)
得到结果集,用什么解码
生成字符集的结果集和终端保持一致
6、character_set_client
sql从离开你客户端时到发给服务器端时的编码方式,服务器接受之后用什么解码,涉及到character_set_connection
最好是全部保持一致
Set names utf8; 会把最后3条一起改变
字符串的编码:
Select _utf8 x’字符集’ 查看乱码变成中文是什么
Stored program
存储过程(stored procedure)
函数(function)
触发器(trigger)
Before/afer
Insert/update/delete
5.7版本之后可以用多条
事件调度器(event)
Show create
视图
Create view v as select xxxx
Algotithm=merge/template/undefined
Merge情况下会把原始数据和更改后放在一起比较
With check option
建立视图,如果条件是》10,你插入一个小于10 的数,会报错(不要用)
View vs. temporary table
Grant for rows and column
你只想让他看几列或几条数据,只给这部分数据的权限
全文索引
Like只能做单词匹配
Partion分区
Range/list/columns/hash/key
用的最多key
有主键,至少包含主键
5.6报错数据结构不对