美文网首页Mysql
Mysql 1.数据库进阶

Mysql 1.数据库进阶

作者: 第二套广播体操 | 来源:发表于2019-03-22 17:06 被阅读0次

    1.DQL:
    查询语句
    排序查询
    聚合函数
    分组查询
    分页查询
    2.约束
    3.多表之间的联系
    4.范式
    5.数据库的备份与还原


    排序查询
    ORDER BY 子句
    ORDER BY 排序字段1 顺序1,排序字段2 顺序2
    默认为升序

    SELECT*
    FROM student3
    ORDER BY math DESC,english DESC;  -- 第一条件相同时 会按照第二条件排序
    

    聚合函数
    进行列的纵向计算
    1 count 计算个数
    2 max 计算最大值
    3 min 计算最小值
    4 sum 计算和
    5 arg 平均值

    聚合函数会自动排除非空

    SELECT COUNT(IFNULL(english,0))  -- 聚合函数非空  或者选择非空的进行计算 主键
    FROM student3;
    

    分组查询
    GROUP BY 字段 聚合函数

    SELECT sex,AVG(math),COUNT(id)
    FROM student3
    WHERE math>70 -- 条件
    GROUP BY sex;
    

    WHERE 和HAVING 条件语句的区别
    WHERE 是在未分组前进行筛选的 如果不满足 则不会分组
    HAVING 分组之后产生效果 如果不满足 不会被查询
    WHERE 不可以用聚合函数
    HAVING 可以

    分页查询

    1 语句 LIMIT 开始的索引 每页查询的条数

    SELECT *
    FROM student3
    LIMIT 0,3;
    

    公式:开始的索引=(当前页码-1)*每页显示的条数


    约束

    主键约束 PRIMARY KEY
    非空约束 NOT NULL
    唯一约束 UNIQUE
    外键约束 FOREIGN KEY


    非空约束 NOT NULL

    1. 创建时添加非空
    CREATE TABLE stu(
            id   INT UNIQUE,     -- 唯一约束 
            NAME VARCHAR(20) NOT NULL  -- 非空约束
            ); 
    

    2.删除非空约束
    ALTER TABLE 表名 MODIFY 列名 数据类型;
    ALTER TABLE stu MODIFY NAME VARCHAR(20);
    3.创建后修改数据为非空
    ALTER TABLE 表名 MODIFY 列名 数据类型 NOT NULL
    ALTER TABLE stu MODIFY NAME VARCHAR(20) NOT NULL;


    唯一约束 UNIQUE 列中不可重复

    mysql中唯一约束可以存有多个null

    1.创建时添加唯一约束

    CREATE TABLE stu(
            id   INT UNIQUE,     -- 唯一约束 
            NAME VARCHAR(20) NOT NULL  -- 非空约束
            ); 
    

    2.删除唯一约束
    ALTER TABLE 表名 DROP INDEX 列名;
    ALTER TABLE stu DROP INDEX id;
    3.创建后添加唯一约束
    ALTER TABLE 表名 MODIFY 列名 数据类型 UNIQUE;
    ALTER TABLE stu MODIFY id INT UNIQUE;


    主键约束 PRIMARY KEY 非空且唯一

    一张表只能有一个主键
    表中的唯一标识

    创建时添加主键

    CREATE TABLE stu1(
            id   INT PRIMARY KEY,      
            NAME VARCHAR(20)  
            ); 
    

    删除主键 因为表中就一个主键 所以不用声明主键位置 如果有自增 删除时要取消自增
    ALTER TABLE 表名 DROP PRIMARY KEY;
    ALTER TABLE stu1 DROP PRIMARY KEY;

    在创建后添加主键
    ALTER TABLE 表名 MOTIFY 列名 类型 PRIMARY KEY
    ALTER TABLE stu1 MODIFY id INT PRIMARY KEY;

    主键自增 如果填入主键为null 则会对照上一行的值 进行自增
    AUTO_INCREMENT

    创建表时添加

    create table stu1(
            id   int PRIMARY KEY auto_increment,      
            name varchar(20)  
            ); 
    

    删除主键自增
    ALTER TABLE 表名 MODIFY 列名 数据类型
    创建后添加
    ALTER TABLE 表名 MODIFY 列名 数据类型 AUTO_INCREMENT


    外键 让表与表产生关系

    1. CONSTRAINT 外键名称FOREIGN KEY 外键列名 REFERENCES 主表名称 ( 主表列名称)

    相关文章

      网友评论

        本文标题:Mysql 1.数据库进阶

        本文链接:https://www.haomeiwen.com/subject/yvqrvqtx.html