Mysql必知必会

1.了解SQL
数据库 :保存有组织的数据的容器(文件柜)
表 :某种特定类型数据的结构化清单(文件)
列 :表中的一个字段
数据类型:所容许的数据的类型
行 :表中的一个记录
主键 :一列(或一组列),其值能够唯一区分表中的每个行
SQL :结构化查询语言

2.MySQL简介
DBMS 开源,执行很快,可信赖,简单

3.使用MySQL
USE 数据库名;
SHOW DATABASES;SHOW TABLES;SHOW STATUS;
SHOW CREATE ...;

4.检索数据
检索单个列:SELECT 列 FROM 表;
检索多个列:SELECT 列1,列2 FROM 表;
检索不同行:SELECT DISTINCT 列 FROM 表;
限制结果 :SELECT 列 FROM 表 LIMIT 5,5;

5.排序检索数据
按单列排序:SELECT 列 FROM 表 ORDER BY 列;
按多列排序:SELECT 列1,列2 FROM 表 ORDER BY 列1,列2;
按排序方向:DESC降序 ASC升序(默认)
ORDER BY 后面 LIMIT

6.过滤数据
SELECT 列 FROM 表 WHERE 列条件;
WHERE 后面 ORDER BY;
范围值检查:WHERE 列 BETWEEN 5 AND 10;
空值检查:IS NULL

7.数据过滤
组合WHERE子句 AND OR(优先处理AND)
IN操作符 与OR相同功能

8.用通配符进行过滤
LIKE操作符
% 任何字符任意次数
_ 匹配单个字符
不要过度使用通配符

9.用正则表达式进行搜索
REGEXP关键字
. 匹配任意一个字符
| 进行OR匹配

10.创建计算字段
拼接字段 Concat()函数
算术计算

11.使用数据处理函数

12.汇总数据
聚集函数 AVG COUNT行数 SUM列和

13.分组数据
数据分组 GROUP BY(不能使用别名)
WHERE GROUP BY ORDER BY
过滤分组 HAVING

14.使用子查询
子查询进行过滤 得到数据
子查询作为字段

15.联结表

select vend_name,prod_name,prod_price from vendors,products where vendors.vend_id = products.vend_id order by vend_name,prod_name;

在没有where字句的情况下,默认为笛卡儿积。

select vend_name,prod_name,prod_price from vendors inner join products on vendors.vend_id = products.vend_id;内部联结

联结影响性能,联结越多表,性能降低的越厉害。

16.创建高级联结

select p1.prod_id,p1.prod_name from products as p1,products as p2 where p1.vend_id = p2.vend_id and p2.prod_id = 'dtntr';自联结

select c.*,.......;自然联结,不存在重复的列

select customers.cust_id,orders.order_num from customers left outer join orders on customers.cust_id=orders.cust_id;左外部联结,左边所有的行

17.组合查询

union组合查询的结果,union all

18.全文本搜索

fullext实行全文搜索

19.插入数据

insert与select一起用,插入取出来的数据

20.更新和删除数据

update 表 set .....;

delete from 表 where.....;

21.创建和操纵表

alter table 表.....;修改表结构

22.使用视图

视图,不需要了解表的结构,虚拟表,数据他人已经select获取好。

重用sql语句;简化复杂sql,不必知道细节;给予用户部分数据而不是全部(权限);

create view 视图 as 查询语句;

23.使用存储过程

简单,安全,高性能;联想到封装好的函数

24.使用游标

25.使用触发器
事件发生时自动执行(DELETE INSERT UPDATE)

26.管理事务处理
一种机制,SET TRANSACTION;

27.全球化和本地化
SHOW CHARACTER SET;SHOW COLLATION;

28.安全管理
权限的合理分配
SHOW GRANT FOR 用户;REVOKE
GRANT 权限 ON 数据库.表 TO 用户;

29.数据库维护
备份数据 mysqldump mysqlhotcopy...
进行数据库维护 ANALYZE TABLE 表;OPTIMISE TABLE;
诊断启动问题 手动启动服务器
查看日志文件
错误日志【hostname.err】
查询日志【hostname.log】
二进制日志【hostname.bin】
慢查询日志【slow.log】
FLUSH LOGS刷新日志

30.改善性能
专用服务器 SHOW VARIABLES;SHOW STATUS;
多用户多进程 SHOW PROCESSLIST;KILL命令
试验联结,并,子查询,找出最佳的方法
EXPLAIN语句
存储过程比一条一条快
正确的数据类型
按需取数据(SELECT *)LIKE很慢,使用FULLTEXT
时间在变化,优化也在变
索引 检索性能+ 插入,删除,更新性能—
复杂的条件,考虑使用UNION语句




原文地址:https://www.cnblogs.com/netRob/p/5118338.html