老师总结数据库

关系型和非关系型数据库

mysql redis\mongodb

dcl 控制语言 授权 创建用户

ddl create drop alter show

# 数据库操作
    # 创建库 create database 库名
    # 修改库 alter database charset ='utf-8'
    # 使用库 use xxx
    # show databases 查看库
# 表的操作
    # 项目的表结构  ******
    # 存储引擎 : innodb
        # 行级锁 、支持外键、支持事务
        # 修改比较频繁的操作
        # 表与表关联的例子 -- 约束
        # 支持事务: 扩展角度
    # 建表
        # create table 表名(字段名 数据类型(长度) 约束,.....)
    # 数据类型
        # 数字 字符串 时间 枚举和集合
            # int float(m,n) tinyint
            # char varchar
                # char 定长 0-255 存取速度快 但是浪费空间
                # varchar 变长 0-66635 存取速度满 但是节省空间
            # date time datetime
                # '2019-8-7 12:22:22'
                # 20190807122222
            # enum set
                # enum 单选
                # set 多选
                    # insert into 表 values ('alex','抽烟,喝酒')
    # 约束
        # not null 非空
        # unique   唯一
        # default  默认值
        # auto_increment unique是前提,自增(非空)
        # primary key 主键
        # foreign key 外键,要求关联的外表字段必须是unique的 语法!!!!
    # 查看表结构:
        # desc 表名
        # show create table 表名
    # 修改表
        # alter table 表名 rename
        # alter table 表名 add
        # alter table 表名 drop
        # alter table 表名 change
        # alter table 表名 modify
    # 删除表
        # drop table 表名

dml select delete update insert

# select
    # 单表查
        # select distinct from where group by having order by limit
        # 分组聚合 select avg(age) from 表 group by post
        # 聚合函数 : min max avg count sum

        # 项目里的orm改成原生sql
    # 多表查
        # 连表查
            # 内连接 inner join
            # 左外连接 left join
            # 右外连接 right join
        # 子查询
            # 查出来的结构作为两一个sql语句的一部分
# insert into 表名(字段名) values (值)
# update 表名 set 字段名 = 值 where 条件
# delete from 表名 where 条件

数据的增删改查 + 自己的表结构

存储引擎 表操作 库操作 权限操作 约束

索引

# 正确使用索引的条件
    # 建立索引的列的重复度不能太高
    # 条件列不能参与计算
    # 不能使用函数
    # 条件中不能使用范围
    # like '%c'
    # 条件中用or
        # a=0 or b=1 or c=2 or d=4 只要其中一列没有索引就无法命中
    # 最左前缀(a,b,c,d) 只适用于and条件的列,如果出现范围,从出现范围的字段开始就失效,必须带着最左侧的列
        # 只要不带a就无法命中索引
        # a = 1 or b = 2   无法命中索引
        # a = 1 and b>100 a可以命中索引 b,c,d无法命中
        # a>200 无法命中索引  因为联合索引一旦使用范围,从使用范围开始之后的索引都不生效
# 你在你的程序中哪些地方用了索引
    # 主键
    # unique
posted @ 2019-08-28 18:17  learnacode  阅读(117)  评论(0编辑  收藏  举报