zoukankan      html  css  js  c++  java
  • 07数据库复习01

    1.数据库的概念

    http://www.maiziedu.com/wiki/mysql/code/

    2.Mysql5.6新特性

    3.mysql存储引擎

    4.修改表结构 

    -- 创建数据库
    CREATE DATABASE IF NOT EXISTS maizi DEFAULT CHARACTER SET 'UTF8';
    
    USE maizi;
    
    CREATE TABLE user10(
        uid INT  KEY AUTO_INCREMENT,
        uname VARCHAR(20),
        salary FLOAT(6,2) DEFAULT 1000 
    );
    
    DROP TABLE user10;
    -- 重命名
    ALTER TABLE user10 RENAME user11;
    
    -- 添加字段
    ALTER TABLE user11 ADD age INT;
    ALTER TABLE user11 ADD sex VARCHAR(5) AFTER salary;
    
    -- 一次添加多个字段
    ALTER TABLE user11
    ADD test1 VARCHAR(5),
    ADD test2 FLOAT(6,2),
    ADD test3 INT;
    
    -- 删除字段
    
    ALTER TABLE user11 DROP test1;
    
    ALTER TABLE user11 
    DROP sex,
    DROP age;

    -- 修改字段类型
    DESC user11;
    
    ALTER TABLE user11 MODIFY uname VARCHAR(10) NOT NULL;
    
    ALTER TABLE user11 MODIFY test2 VARCHAR(10) NOT NULL FIRST;
    
    -- 修改字段名称
    ALTER TABLE user11 CHANGE test2 test1 VARCHAR(10);

    DESC user11;
    -- 删除默认字段
    ALTER TABLE user11 ALTER salary DROP DEFAULT;
    
    -- 添加默认字段
    ALTER TABLE user11 ALTER uname SET DEFAULT 'hh';

    DESC user11;
    -- 添加主键
    ALTER TABLE user11 ADD PRIMARY KEY(uid);
    -- 删除主键
    ALTER TABLE user11 DROP PRIMARY KEY;
    
    CREATE TABLE user10(
        uid INT  KEY AUTO_INCREMENT,
        uname VARCHAR(20),
        salary FLOAT(6,2) DEFAULT 1000 
    );
    DESC user10;
    -- 删除主键
    ALTER TABLE user10 DROP PRIMARY KEY; -- 因为含有自增长,所以不能直接删除
    -- 去除自增长
    ALTER TABLE user10 MODIFY uid INT UNSIGNED;
    -- 删除主键
    ALTER TABLE user10 DROP PRIMARY KEY;

    DESC user10;
    -- 添加唯一约束
    ALTER TABLE user10 ADD UNIQUE(uname);
    -- 删除唯一约束
    ALTER TABLE user10 DROP KEY uname;

    5.查询操作

     

     

     

    -- 分组查询
    -- 按用户所属省份分组
    SELECT * FROM cms_user GROUP BY proId; -- 只会显示表中第一数据

    -- 向表中添加性别字段
    ALTER TABLE cms_user ADD sex ENUM('','','未知');
    
    UPDATE cms_user SET sex='' WHERE id IN(1,3,5,7,9);
    
    UPDATE cms_user SET sex='' WHERE id IN(2,4,6,8,10);

    -- 按照性别分组
    SELECT * FROM cms_user GROUP BY sex;

    -- 按照多个字段分组
    SELECT * FROM cms_user GROUP BY sex,proId;

    -- 查询编号大于5的用户,按照sex分组
    SELECT * FROM cms_user WHERE id >= 5 GROUP BY sex;

    -- 查询所有id,sex,用户名详情 按照性别分组
    SELECT id,sex, GROUP_CONCAT(username) FROM cms_user  GROUP BY sex;

    -- 查询proid 姓名详情,性别详情 按照proid分组
    SELECT proId,GROUP_CONCAT(username),GROUP_CONCAT(sex) FROM cms_user GROUP BY proId;

    ALTER TABLE cms_user ADD age INT;
    
    UPDATE cms_user SET age = 11 WHERE id = 1;
    
    UPDATE cms_user SET age = 12 WHERE id = 2;
    UPDATE cms_user SET age = 14 WHERE id = 3;
    UPDATE cms_user SET age = 11 WHERE id = 4;
    UPDATE cms_user SET age = 34 WHERE id = 5;
    UPDATE cms_user SET age = 32 WHERE id = 6;
    UPDATE cms_user SET age = 15 WHERE id = 7;
    UPDATE cms_user SET age = 17 WHERE id = 8;
    UPDATE cms_user SET age = 19 WHERE id = 9;
    UPDATE cms_user SET age = 20 WHERE id = 10;

    -- 查询id,sex,username详情,组中总人数 按照sex分组
    SELECT id,sex,GROUP_CONCAT(username) AS users,COUNT(*) FROM cms_user GROUP BY sex;

    -- 统计表中所有的记录
    SELECT COUNT(*) FROM cms_user;

    -- count字段不统计null值
    SELECT COUNT(age) FROM cms_user;

    -- 查询id,sex,username详情,组中总人数,组中最大年龄,组中最小年龄,组中平均年龄,组中年龄和,按照性别分组
    SELECT id,sex,GROUP_CONCAT(username),
    COUNT(*) AS totalUsers,
    MAX(age) AS max_age,
    MIN(age) AS min_age,
    AVG(age) AS avg_age,
    SUM(age) AS sum_age 
    FROM cms_user GROUP BY sex ;

    -- 查询id,sex,username详情,组中总人数,组中最大年龄,组中最小年龄,组中平均年龄,组中年龄和,按照性别分组
    SELECT id,sex,GROUP_CONCAT(username),
    COUNT(*) AS totalUsers,
    MAX(age) AS max_age,
    MIN(age) AS min_age,
    AVG(age) AS avg_age,
    SUM(age) AS sum_age 
    FROM cms_user GROUP BY sex WITH ROLLUP; -- with rollup 统计记录总和

    -- 查询性别sex,用户名详情,组中总人数,最大年龄,年龄总和 依据性别分组
    SELECT sex,GROUP_CONCAT(username) AS users,
    COUNT(*) AS totalUsers,
    MAX(age) AS max_age,
    SUM(age) AS sum_age
    FROM cms_user GROUP BY sex;
    
    -- 对于上述的查询结果进行二次筛选,组中人数大于2的。
    SELECT sex,GROUP_CONCAT(username) AS users,
    COUNT(*) AS totalUsers,
    MAX(age) AS max_age,
    SUM(age) AS sum_age
    FROM cms_user GROUP BY sex 
    HAVING totalUsers > 2;

    -- 对于上述的查询结果进行二次筛选,组中人数大于2的并且最大年龄大于33的。
    SELECT sex,GROUP_CONCAT(username) AS users,
    COUNT(*) AS totalUsers,
    MAX(age) AS max_age,
    SUM(age) AS sum_age
    FROM cms_user GROUP BY sex 
    HAVING totalUsers > 2 AND max_age > 33;

    -- 按照id降序排列查询数据desc,默认为asc
    SELECT * FROM cms_user ORDER BY id DESC;

    SELECT id,age,sex,GROUP_CONCAT(username),
    COUNT(*) AS totalUsers,
    MAX(age) AS max_age
    FROM cms_user
    WHERE id >= 2
    GROUP BY sex
    HAVING totalUsers>=2
    ORDER BY age DESC,id ASC;

    -- 实现随机记录
    SELECT * FROM cms_user ORDER BY RAND();

    -- 查询表中前3条记录
    SELECT * FROM cms_user LIMIT 3;

    -- 查询表中后5条记录
    SELECT * FROM cms_user ORDER BY id DESC LIMIT 5;

    -- 带偏移量的显示条数
    SELECT * FROM cms_user LIMIT 1,3; -- 前面一个数字是偏移量,后面一个是每页显示的条数

  • 相关阅读:
    tensorflow2.0——简单的三种图像增强方式(翻转,光照,对比度)
    tensorflow2.0——卷积初始化
    tensorflow2.0——实现先卷积后LSTM的网络
    tensorflow2.0——compile-fit实现多输入复合模型
    CMDB-客户端
    saltstack部署
    CMDB实现的四种方式
    理解python中的元类
    RESTful 架构
    Vuex笔记/axios笔记
  • 原文地址:https://www.cnblogs.com/xinmomoyan/p/11415276.html
Copyright © 2011-2022 走看看