MySQL总结

一、数据查询

        1、基本查询语句

        select c.name, c.pass_word as pw from cc_user c
        注意点:别名可以用as 也可以直接空格

       2、 查询去重

        select distinct c.name, c.pass_word as pw from cc_user c

        注意点:name 和 pass_word 全部相同时才会去重,若只有 name 相同,pass_word 不相同则认为是不重复的。

        3、加号

        SELECT '123'+10  ; 输出 133 , '123' 会转换位数字

        SELECT 'a'+10 ; 输出 10, 'a' 转会不成数字,会当作 0

        SELECT null+10 ; 只要有 null ,输出结果则为null

二、过滤条件及排序

        1、where

        SELECT * from cc_user u where u.name = 'test'

        2、运算符

        简单条件运算符:> < = != <> >= <=

        3、逻辑表达式

        && 和 and:两个条件都为 true,结果为 true,反之为 false

        || 或 or: 只要有一个条件为 true,结果为 true,反之为 false

        ! 或 not: 如果连接的条件本身为 false,结果为 true,反之为 false

        4、like

        SELECT * from cc_user u where u.name LIKE '%e_t'

        注意:通常与通配符一起使用,% :通配任意长度字符串。_ :通配单一任意字符

        5、between and

                SELECT * from cc_user u where u.id between 2 and 3

        特点:简洁、包含临界值、前后临界值不能更换

        6、in

        SELECT * from cc_user u where u.id in (2,3)

        7、is null 及 is not null

        SELECT * from cc_user u where u.money is null

        SELECT * from cc_user u where u.money is not null

        8、安全等于 <=>

        SELECT * from cc_user u where u.money <=> null

        IS NULL:仅仅可以判断NULL值,可读性较高,建议使用

        <=> :既可以判断NULL值,又可以判断普通的数值,可读性较低

        9、order by 排序子句

        SELECT * from cc_user u where u.money is not null ORDER BY u.id DESC

        SELECT * from cc_user u where u.money is not null ORDER BY u.id ASC

        DESC : 降序 ;ASE :升序

三、分组查询

        1、分组函数

        功能:用作统计使用,又称为聚合函数或统计函数或组函数

        效率:MYISAM 存储引擎下 ,COUNT() 的效率高; INNODB 存储引擎下,COUNT() 和COUNT(1) 的效率差不多,比 COUNT (字段)要高一些。

        常用函数:

        求和:sum() 

        求平均值:avg()

        求最大值:max()

        求最小值:min()

        计算个数:count()

        特点:

        sum、avg一般用于处理数值型 max、min、count可以处理任何类型

        以上分组函数都忽略null值

        可以和distinct搭配实现去重的运算

        count函数的单独介绍一般使用count(*)用作统计行数

        和分组函数一同查询的字段要求是group by后的字段

        示例:

        select sum(id) from cc_user;
        select avg(id) from cc_user;
        select max(id) from cc_user;
        select min(id) from cc_user;
        select count(id) from cc_user;

        2、分组查询

        语法:

        select 查询列表 from 表 【where 筛选条件】 group by 分组的字段 【order by 排序的字段】;

        group by 与 having 使用:

        select sum(id) from cc_user u GROUP BY u.name HAVING sum(id) > 3

四、多表查询

        连接查询分类:

        内连接: 等值连接 非等值连接 自连接

        外连接: 左外连接 右外连接 全外连接

        交叉连接

        区别:

        内连接:指连接结果仅包含符合连接条件的行,参与连接的两个表都应该符合连接条件。

        外连接:连接结果不仅包含符合连接条件的行同时也包含自身不符合条件的行。包括左外连接、右外连接和全外连接。

        示例:

        内连接 :SELECT * FROM TESTA,TESTBWHERE TESTA.A=TESTB.A

        结果:

        

        外连接:SELECT *FROM TESTA LEFT OUTER JOIN TESTB ON TESTA.A=TESTB.A

        结果: 

        

五、常见函数

        1.字符函数

        

        2、数字函数

         

        3、日期函数

         

         

六:流程控制 CASE 表达式

        示例:

select u.id id,
case u.id 
when 1 then 'A'
when 2 then 'B'
else 'C'
end '标注'
from cc_user u 

 七:分页:

    语法 select 查询列表
    from 表
    【join type join 表2
    on 连接条件
    where 筛选条件
    group by 分组字段
    having 分组后的筛选
    order by 排序的字段】
    limit 【offset,】size;
    
    offset要显示条目的起始索引(起始索引从0开始)
    size 要显示的条目个数

八、DML(增删改)

        插入数据:insert into cc_user(name, pass_word) VALUES('cc', 123456)

        删除数据:delete from cc_user where id = 4

        修改数据:update cc_user u set u.money = 100000 where u.id = 1

 九、视图

        1、创建视图

        create view v1 as select * from cc_user u where u.name = 'cc';

        2、查询

        select * from v1 where id = 1;

        3、修改

        create or replace view v1 as select * from cc_user u where u.name = 'test';

        alter view v1 as select * from cc_user u where u.name = 'cc';

        4、查看视图

        desc v1

        show create view v1

        5、删除视图

        drop view v2

        6、修改数据

        注意:增删改会直接作用于原边。

        //插入:insert into v1(name) values ('c2')

        //修改:update v1 set name = 'c3' where id =3

        //删除:delete from v1 where id = 5

          7、具备一下特点的视图不允许更新

        ①包含以下关键字的sql语句:分组函数、distinct、group by、having、union或者union all

        ②常量视图

        ③Select中包含子查询

        ④join

        ⑤from一个不能更新的视图

        ⑥where子句的子查询引用了from子句中的表

十、存储过程

        1、变量

        【1】系统变量

//查看所有全局变量
SHOW GLOBAL VARIABLES;
//查看满足条件的部分系统变量
SHOW GLOBAL VARIABLES LIKE '%char%';
//查看指定的系统变量的值
SELECT @@global.autocommit;
//为某个系统变量赋值
SET @@global.autocommit=0;
SET GLOBAL autocommit=1;

        【2】会话变量

//查看所有会话变量
SHOW SESSION VARIABLES;
//查看满足条件的部分会话变量
SHOW SESSION VARIABLES LIKE '%char%';
//查看指定的会话变量的值
SELECT @@autocommit;
SELECT @@session.tx_isolation;
//为某个会话变量赋值
SET @@session.tx_isolation='read-uncommitted';
SET SESSION tx_isolation='read-committed';

        

        

        

          

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

cc_南柯一梦

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值