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
             注意:约束是作用于表中字段上的,可以在创建表/修改表的时候添加约束

                MySQL数据库入门到精通(基础篇)_第1张图片

 5.表关系

        MySQL数据库入门到精通(基础篇)_第2张图片

5.1  一对多(多对一)

        MySQL数据库入门到精通(基础篇)_第3张图片 

5.2  多对多

        MySQL数据库入门到精通(基础篇)_第4张图片 

5.3  一对一

        MySQL数据库入门到精通(基础篇)_第5张图片 

 6.多表查询

        6.1 笛卡尔积查询

        MySQL数据库入门到精通(基础篇)_第6张图片

        6.2连接查询 

                MySQL数据库入门到精通(基础篇)_第7张图片

        6.2.1 内连接 

        MySQL数据库入门到精通(基础篇)_第8张图片

         6.2.2外连接

        MySQL数据库入门到精通(基础篇)_第9张图片

        6.2.3自连接 

        MySQL数据库入门到精通(基础篇)_第10张图片

        6.2.4联合查询 

        MySQL数据库入门到精通(基础篇)_第11张图片

 

6.3子查询

        MySQL数据库入门到精通(基础篇)_第12张图片

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

        6.4 总结

        MySQL数据库入门到精通(基础篇)_第13张图片
7.事务的隔离级别
    读未提交    会出现脏读,不可重复读,幻读
    读已提交    解决了脏读问题,出现了不可重复读,幻读问题
    可重复读(mysql默认隔离级别)    解决了脏读,不可重复读问题,但是出现了幻读问题
    串行化     解决了脏读,不可重复读,幻读问题
  注意:事务隔离级别越高,数据约安全,但是性能越低

 

你可能感兴趣的:(数据库,mysql,sql)