Mysql数据库
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框架,可以自动过滤。
还没有评论,来说两句吧
