关于Mysql整理的需要记忆和熟练掌握的内容
1. /* 查看操作 */ ------------------------------------------------------------------------------------------------------- 1. /* 查看操作 */
SHOW PROCESSLIST -- 显示哪些线程正在运行SHOW VARIABLES -- 查看变量
2. /* 数据库操作 */ ------------------------------------------------------------------------------------------------------ 2. /* 数据库操作 */
-- 查看当前数据库select database();-- 显示当前时间、用户名、数据库版本select now(), user(), version();-- 复制表结构CREATE TABLE 表名 LIKE 要复制的表名-- 复制表结构和数据CREATE TABLE 表名 [AS] SELECT * FROM 要复制的表名
3. /* 字符集编码 */ --------------------------------------------------------------------------------------------------------- 3. /* 字符集编码 */
字符编码-- MySQL、数据库、表、字段均可设置编码-- 数据编码与客户端编码不需一致SHOW VARIABLES LIKE 'character_set_%' -- 查看所有字符集编码项character_set_client 客户端向服务器发送数据时使用的编码character_set_results 服务器端将结果返回给客户端所使用的编码character_set_connection 连接层编码SET 变量名 = 变量值set character_set_client = gbk;set character_set_results = gbk;set character_set_connection = gbk;SET NAMES GBK; -- 相当于完成以上三个设置
4./* 数据类型(列类型) */ ---------------------------------------------------------------------------------------------------4. /* 数据类型(列类型) */
1) 数值类型 int 4字节bigint 8字节int(M) M表示总位数- 默认存在符号位,unsigned 属性修改- 显示宽度,如果某个数不够定义字段时设置的位数,则前面以0补填,zerofill 属性修改例:int(5) 插入一个数'123',补填后为'00123'- 在满足要求的情况下,越小越好。- 1表示bool值真,0表示bool值假。MySQL没有布尔类型,通过整型0和1表示。常用tinyint(1)表示布尔型。2) 字符串类型-- a. char, varchar ----------char 定长字符串,速度快,但浪费空间varchar 变长字符串,速度慢,但节省空间M表示能存储的最大长度,此长度是字符数,非字节数。不同的编码,所占用的空间不同。char,最多255个字符,与编码无关。varchar,最多65535字符,与编码有关。一条有效记录最大不能超过65535个字节。utf8 最大为21844个字符,gbk 最大为32766个字符,latin1 最大为65532个字符varchar 是变长的,需要利用存储空间保存 varchar 的长度,如果数据小于255个字节,则采用一个字节来保存长度,反之需要两个字节来保存。varchar 的最大有效长度由最大行大小和使用的字符集确定。最大有效长度是65532字节,因为在varchar存字符串时,第一个字节是空的,不存在任何数据,然后还需两个字节来存放字符串的长度,所以有效长度是64432-1-2=65532字节。例:若一个表定义为 CREATE TABLE tb(c1 int, c2 char(30), c3 varchar(N)) charset=utf8; 问N的最大值是多少? 答:(65535-1-2-4-30*3)/3
5./* 建表规范 */ ------------------------------------------------------------------------------------------------------------------ 5./* 建表规范 */
-- Normal Format, NF- 每个表保存一个实体信息- 每个具有一个ID字段作为主键- ID主键 + 原子表-- 1NF, 第一范式字段不能再分,就满足第一范式。-- 2NF, 第二范式满足第一范式的前提下,不能出现部分依赖。消除符合主键就可以避免部分依赖。增加单列关键字。-- 3NF, 第三范式满足第二范式的前提下,不能出现传递依赖。某个字段依赖于主键,而有其他字段依赖于该字段。这就是传递依赖。将一个实体信息的数据放在一个表内实现。
新闻热点
疑难解答