Mysql数据库

2019-05-29 23:00:30阅读 75评论 0

1.常用数据类型

1)数值类型

INT(size)

-2147483648 到 2147483647 常规。0 到 4294967295 无符号*。在括号中规定最大位数

FLOAT(size,d)

带有浮动小数点的小数字。在括号中规定最大位数。在 d 参数中规定小数点右侧的最大位数

2)文本类型

CHAR(size)

保存固定长度的字符串(可包含字母、数字以及特殊字符)。在括号中指定字符串的长度。最多 255 个字符

VARCHAR(size)

保存可变长度的字符串(可包含字母、数字以及特殊字符)。在括号中指定字符串的最大长度。最多 255 个字符

TINYTEXT

存放最大长度为 255 个字符的字符串

TEXT

存放最大长度为 65,535 个字符的字符串

MEDIUMTEXT

存放最大长度为 16,777,215 个字符的字符串

LONGTEXT

存放最大长度为 4,294,967,295 个字符的字符串

3)时间类型

DATE()

日期。格式:YYYY-MM-DD

DATETIME()

日期和时间的组合。格式:YYYY-MM-DD HH:MM:SS

2.基本操作

1)增

INSERT INTO table_name (列1, 列2,…) VALUES (值1, 值2,….)

2)删

DELETE FROM 表名称 WHERE 列名称 = 值

3)改

UPDATE 表名称 SET 列名称 = 新值 WHERE 列名称 = 某值

4)查

SELECT 列名称 FROM 表名称

(1)限制条件:WHERE 列 运算符 值

(2)排序:ORDER BY 列名 DESC/ASC

(3)分组:GROUP BY 列名,一般与avg(),sum(),count()合用

(4)模糊查询:SELECT * FROM 表 WHERE 列 LIKE 'N%',通配符有%(替代一个或多个字符)、_(仅替代一个字符)

(5) where和having的区别

a.执行时机不同,where是判断数据从磁盘读入内存的时候,having是判断分组统计之前

b.having子句中可以使用字段别名,而where不能使用

c.having能够使用统计函数,但是where不能使用

having通常和group_by合用,未同group_by合用时,与where无区别

3.事务操作

特点:原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)、持久性(Duration)

流程:开启事务->操作->提交

mysql> start transaction;  
Query OK, 0 rows affected (0.00 sec)  
mysql> insert into user (id,username,password) values(2,'sylvester','ebd99026d2fadc70cb7d2973a44df920');  
Query OK, 1 row affected (0.00 sec)  
mysql> commit;  
Query OK, 0 rows affected (0.01 sec)

在事务操作过程中,可对每一步状态进行保存(savepoint s1……),并可以回退到保存的任意状态(rollback)

4.索引

为了加快查询速度,将查询量高的一列数据放在一个二叉树中(Btree或B+tree)中,这个操作叫新建索引

缺点:

1)占用空间增大

2)数据更新性能损失

5.其他

1)重复数据

查询某一列数据,包含很多重复值,可用 SELECT DISTINCT 列名称 FROM 表名称 去重

2)防sql注入

在查询、更新数据时,黑客可将sql语句写到数据中,mysql识别后导致异常。使用MVC框架,可以自动过滤。

还没有评论,来说两句吧