MySQL数据库入门到精通(基础篇)

1.sql语句分类:
    DDL        数据库定义语言,用来定义数据库对象(数据库,表,字段)
    DML        数据库操作语言,用来对数据库表中的数据进行增删改
    DQL        数据库查询语言,用来查询数据库中表的记录
    DCL        数据库控制语言,用来创建数据库用户,控制数据库的访问权限
2.mysql执行顺序:
select  
    字段列表                    ④
from 
    表名列表                    ①
where 
    条件列表                    ②
group by 
    分组字段列表             ③
having 
    分组后条件列表  
order by
     排序字段列表            ⑤
limit 
    分页参数                    ⑥
2.1 where 和 having 区别
    执行时机不同:where是分组之前进行过滤,不满足where条件,不参与分组;
                而having是分组之后对结果进行过滤
    判断条件不同:where不能对聚合函数进行判断,而having可以

3.mysql的函数
                    字符串函数:

                                   concat(拼接),  lower(小写), upper(大写),lpad(左填充),rpad(右填充)
                                   trim(去除字符串头部和尾部的空格),substring (截取字符串中的子串) 
                     数值函数:

                                 ceil      向上取整,floor 向下取整,mod  返回x/y的模 
                                 rand    返回0~1内的随机数
                                 round  求参数x的四舍五入的值,保留y位小数
                    日期函数:     

                               curdate()   返回当前日期,    curtime() 返回当前时间
                               now()返回当前日期和时间,  year(date) 获取指定date的年份
                               month(date) 获取指定date的月份, day(date) 获取指定date的日期
                               date_add(date,iterval expr type) 返回一个日期/时间值加上一个时间间隔expr                              后的时间值
                              datediff(date1,date2) 返回起始时间date1和结束时间date2之间的天数
                   流程函数:

                              if(value,t,f)  如果value为true,则返回t,否则返回f;
                              ifnull(value1,value2) 如果value1不为空,返回value1,否则返回vaule2;
                                 case when [val1] then [res1] ...else[default] end
                            如果val1为true,返回res1,...否则返回default的默认值
                                case[expr] when [val1] then [res1] ...else[default] end
                            如果expr的值等于val1,返回res1,...否则返回default的默认值

4.约束

               约束:是作用于表中字段上的规则,用于限制存储在表中的数据
               目的:保证数据库中数据的正确,有效性和完整性
               分类:非空约束  限制该字段的数据不能为null   not null
                          唯一约束  保证该字段的所有数据都是唯一,不重复的   unique
                          主键约束  主键是一行数据的唯一标识,要求非空且唯一  primary key
                          默认约束  保存数据时,如果未指定该字段的值,则采用默认值  default
                         检查约束  保证字段值满足某一个条件   check
                         外键约束  用来让两张表的数据之间建立连接,保证数据的一致性和完整性   foreign key
             注意:约束是作用于表中字段上的,可以在创建表/修改表的时候添加约束

                

 5.表关系

        

5.1  一对多(多对一)

         

5.2  多对多

         

5.3  一对一

         

 6.多表查询

        6.1 笛卡尔积查询

        

        6.2连接查询 

                

        6.2.1 内连接 

        

         6.2.2外连接

        

        6.2.3自连接 

        

        6.2.4联合查询 

        

 

6.3子查询

        

       1.  标量子查询
              子查询返回的结果是单个值(数字,字符串,日期等),最简单的形式。这种
            子查询成为标量子查询
               常用的操作符:= <> >= < <=
        2.  列子查询
              子查询返回的结果是一列(可以是多行),这种子查询称为列子查询
                常用的操作符:IN , NOT IN , ANY,SOME,ALL,
        3.  行子查询
              子查询返回的结果是一行(可以是多列),这种子查询称为行子查询
            常用的操作符:=,<>,IN,NOT,IN
        4.  表子查询
              子查询返回的结果是多行多列这种子查询为表子查询
            常用的操作符:IN

        6.4 总结

        
7.事务的隔离级别
    读未提交    会出现脏读,不可重复读,幻读
    读已提交    解决了脏读问题,出现了不可重复读,幻读问题
    可重复读(mysql默认隔离级别)    解决了脏读,不可重复读问题,但是出现了幻读问题
    串行化     解决了脏读,不可重复读,幻读问题
  注意:事务隔离级别越高,数据约安全,但是性能越低

 

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值