MySQLStudy08

MySQL基础学习

1、去重学习
mysql> select distinct id,t_name from tt;

2、满足条件放入数据集中(where关键字)
主要是比较运算符进行比较 => < >等等

3、逻辑运算符 与或非
and or not
mysql> select * from tt where id>3 and t_name=’wangyekun’;
mysql> select * from tt where id=4 or isDelete=0;

4、模糊查询
like % _
mysql> select * from tt where t_name like ‘wang%’;
mysql> select * from tt where t_name like ‘wang_’;

5、范围查找
in(不连续范围里)–>优先级一直–>就近原则
mysql> select * from tt where id in(1,25);
between…and(连续范围里)
mysql> select * from tt where id between 1 and 25;

6、空判断
“”和null一样
mysql> select * from tt where t_name is not null;

7、运算符出现时最好使用()进行区分优先级
8、聚合函数(只能得到聚合后的结果–>常用函数)
mysql> select count(*) from tt where isDelete=1;
mysql> select sum(id) from tt;
mysql> select max(id) from tt where isDelete=0;
mysql> select min(id) from tt where isDelete=0;
mysql> select avg(id) from tt where isDelete=0;

9、分组
mysql> select max(id) as max_id from tt group by isDelete=0;
mysql> select max(id) as max_id from tt group by isDelete=0 having max_id ;
where和having区别:对应的结果集不一样,where是原始数据、having是分组之后的数据

10、排序
升序
mysql> select * from tt where isDelete=1 and t_name=’wangyepeng’ order by id desc;
降序
默认为降序

11、分页
mysql> select * from tt limit 2,2;

12、建立约束
外键的级联操作
restrict(限制默认值)
cascade(级联操作)
set null
not notion

13、连接查询
多个列名在多张表之间就需要连接查询,得有关系
种类:左右连接和内连接(结果集不一样)
内连接:符合全部条件的才能出现,匹配的结果才能匹配上
左连接:以左表数据为准
右连接:以右表数据为准

14、数据表之间的关系
E-R图可以相对应

15、视图学习
用途:对复杂的查询进行封装
mysql> create view v_tt as (select * from tt);

16、事务学习
ACID原子性、一致性、隔离性、持久性(转账那件小事)
使用情况:update、delete、insert
操作:begin/rollback/commit
mysql> begin;
Query OK, 0 rows affected (0.00 sec)
mysql> update tt set t_name=’wangyekun’ where id =10;
mysql> rollback;
mysql> commit;

16、索引
找书籍,查字典(根据某个规则)
主键/唯一索引/
选择数据类型:数据小、不要null
索引使用条件:
启动监测:mysql> set profiling=1;
查看查询时间:mysql> show profiles;
创建索引:mysql> create index idx_name on tt(t_name(10));

总结:带着问题去学习SQL,并且好好努力。

------------------------------------本文结束感谢您的阅读--------------------------------
wangyekun wechat
扫一扫关注一波
坚持原创,您的支持将鼓励我继续创作!