美文网首页
MySQL基础命令(cmd)

MySQL基础命令(cmd)

作者: Mon7ey | 来源:发表于2017-12-01 17:22 被阅读57次

    数据库管理

    • 查询所有数据库

        show databases;
      
    • 创建数据库

        create database dbName  // 指定默认字符集创建数据库
        default character set utf8;    // 设置默认字符集
      
    • 查看数据库默认字符集

        show create database dbName;
      
    • 删除数据库

        drop database dbName;
      
    • 修改数据库

        alter database dbName default character set gbk;
      
    • 进入数据库

        use dbName;
      

    表管理

    • 查看所有表

        show tables;
      
    • 创建表

        create table tableName(
        sid int,
        sname varchar(20),
        sage int,
        );
      
    • 查看表结构

        desc dbName;
      
    • 删除表

        drop table dbName;
      

    修改表

    • 添加字段

        alter table tableName add column colName varchar(2);
        // 添加多个字段
        alter table tableName add colName1 type , add colName2 type;
      
    • 删除字段

        alter table tableName drop column colName ;
      
    • 修改字段类型

        alter table tableName modify column colName varchar(100);
      
    • 修改字段名称

        alter table tableName change column oldColName newColName varchar(2);
      
    • 修改表名称

        alter table oldTableName rename to newTableName; 
      

    数据管理

    增删改
    • 增加数据

        // 括号内的值必须依次按顺序插入所有字段
        insert into tableName values(1,'张三','男',20);   // 插入全部字段
      
        // 插入部分字段
        insert into tableName(id,name) values(2,'李四');
      
    • 修改数据

        // 修改表中字段的所有值
        update tableName set colName = 'value';
      
        // 按照条件修改字段值
        update tableName set colName = 'value' where id = 1;
      
    • 删除数据

    1. delete 删除语句

        // 可以带条件删除
       // 只能删除表的数据,不能删除表的约束
       // 删除的数据可以回滚(回滚)
       delete from tableName;   
      
    2. truncate 删除语句

       // 不可带条件删除 
       // 既可以删除表的数据,也可以删除表的约束
       // 不可回滚
       truncate table tableName;    
      

    查询数据

    数据:


    测试数据库.png

    1. 查询所有列

        // * : 正则表达式,表示所有列
        // tableName : 表示表名
        select * from tableName;
    

    2. 查询指定列

        // colName : 代表要查询的列名,列名之间用逗号分隔
        select colName1,colName2 from tableName;
        // 可以为要查询的列指定"别名". 表的别名不能用字符串
        // 注意 : 在多表查询时会经常用到表的别名
        select colName1 as '别名',colName as '别名' from tableName as s;
    

    3. 查询时添加常量列

        // 在列名后直接添加常量列,这一列的值相同,也可为常量列设置"别名"
        select colName1,colName2,'常量列内容' as '别名'(可用字符串) from tableName;
    
    常量列.png

    4. 查询时和并列

        // 合并列 : 只能合并数值类型的字段
        select colName1,colName2,(colName3 + colName4) as '别名' from tableName;
    
        // 例句
        SELECT id,NAME,(chinese + english + math + jsp + servlet) AS '总成绩' FROM student;
    
    元数据.png 和并列后数据.png

    5. 查询时去除重复记录

        // distinct : 明显的 ; 独特的 ; 有区别的;
        select distinct colName from tableName;    // 语法1
        select distinct(colName) from tableName;    // 语法2
    

    6. 条件查询

    6.1条件查询 : 关键词是 "where"
        select * from tableName where colName = xxx;
    
    6.2 逻辑条件 : "and(与)" , "or(或)"
        // 查询ID为2,或姓名为"绫波丽"的学生
        select * from student where id = 2 or name = '绫波丽';
    
    6.3 比较条件 : ">" , "<" , ">=" , "<=" , "=(等于)" , "<>(不等于)" , "between and"
        // 查询servlet成绩大于70的学生的成绩和姓名
        select name, servlet from student where servlet > 70;
    
        // 查询jsp的成绩大于等于75,且小于等于90分的学生
        select * from tableName where colName >= 75 and jsp <= 90;  // 语法1
        // between and 等价于 >= 且 <= (包前,包后)
        select * from tableName where colName between 75 and 90;    // 语法2
    
    6.4 判空条件 : "null" , "空字符串"
    判断空字符串.png
        判断 null : is null / is not null , null表示没有值
        判断空字符串 : ==' '  /  <>' ' , 空字符串是有值的,但值为' '
    
        // 需求 : 查询性别为空的学生(包括 NULL 和 空字符串)
        select * from student where gender = '' or gender is null;
        // 查询有地址的学生
        select * from student where gender is not null and gender <> '';
    
    6.5 模糊条件 : "like"
        // 模糊查询中可以使用替换标记代替任意字符
        // % : 表示任意数量个字符
        // _ : 表示一个任意字符
        ------------------------------------------------------------
        // 需求 : 查询姓 "李" 的学生
        select * from student where name like '李%';
    
        // 需求 : 查询姓"李",且名字只有2个字的学生 
        select * from student where name like '李_';
    

    7. 聚合查询

    使用"聚合函数"进行数据查询的方式就叫做"聚合查询"
    常用的聚合函数: sum() , avg() , max() , min() , count()

    需求 : 查询学生的servlet的总成绩.

        // sum() : 求和函数
        select sum(servlet) as 'servlet的总成绩' from student;
    

    需求 :查询学生jsp的平均分

        // avg() : 求平均值
        select avg(jsp) as 'jsp的平均分' from student
    

    需求 : 查询jsp的最高分和最低分

        // max() : 求最大值
        select max(jsp) as '最高分' from student;
        // min() : 求最小值
        select min(jsp) as '最低分' from student;
    

    需求 :统计有多少学生

        // count() : 求数据量
        select count(*) as '数据量' from student;
    

    8. 分页查询

    limit关键字 : limit 起始行,查询行数
    起始行 : 从0行开始

        // 需求 :** 查询第1,2条记录
        select * from student limit 0 ,2;
    

    9. 查询后排序

    关键字 : order by
    语法 : order by colName asc / desc
    不写排序规则默认是asc(正序)

    asc : 正序、顺序

    • 数值 : 递增 ;
    • 字母 : 字母自然顺序(a-z)

    desc : 倒序 、反序

    • 数值 : 递减

    • 字母 : 字母自然反序(z-a)

        // 需求 : 按id顺序排序
        select * from student order by id asc;
      
        // 需求,按servlet正序, 按jsp倒序 
        select * from student order by servlet asc, jsp desc;
      

    10. 分组查询

    关键字 : group by

        // 需求 : 查询男女各多少人
        select gender,count(* / id) from student group by gender;
    

    11. 分组查询后筛选

    分组查询后,在"group by"关键字后不能使用"where"关键字进行筛选,需要使用"having"关键字.group by 之前可以用where进行筛选

        // 筛选总人数大于3的的性别
        select gender, count(*) from student group by gender having count(*) > 3;
    

    相关文章

      网友评论

          本文标题:MySQL基础命令(cmd)

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