Mysql常用命令

作者: liuuuuuu | 来源:发表于2018-02-26 18:00 被阅读10416次

    基础操作

    查看 mysql 安装路径: select @@basedir as basePath from dual
    
    mysql命令中退出mysql: exit
    
    cmd清屏: cls
    
    mysql 28000错误: cmd输入services.msc,打开服务管理界面,将mysql关闭一次重启即可解决。
    
    查看数据库: show databases;
    
    打开数据库: use 需要打开的数据库名称;
    

    创建数据库

    一般创建:  create database 数据库名称;
    
    不存在并新建: create database if not exists 数据库名称;
    

    删除数据库

    一般删除: drop database 数据库名称;
    
    存在并删除: drop database if exists 数据库名称;
    

    创建表

    create table 表格名称;
    

    删除表

    drop table 表格名称;
    

    插入数据

    插入一条: insert into 表格名称(字段,字段) values(内容,内容);
    
    插入多条: insert into 表格名称(字段,字段) values(内容,内容),(内容,内容);
    

    查询数据及函数处理

    按照要求查询: select 字段名 from 表名 where 要求;
    
    给查询字段指定别名: select 字段名 as 别名 from 表名 where 要求;
    
    查询整张表格: select * from 表名;
    
    升序降序查询: select * from 表名 order by 排序字段 asc(desc);
    
    模糊查询: select * from 表名 where 查询字段 like "%xx%";
    
    按照条件查询整条信息: select * from 表名 where 条件
    
    正则表达式查询数据: select * from 表名 where 字段 regexp '^[查询条件]'
    
    字符串形式查询数据: select concat(字段,'=>',字段) from 表名;
    
    按照范围查询数据: select * from user where id in(范围数值,范围数值,范围数值);
    
    format函数查询: select format(字段,保留小数点后几位数) from 表名; //解释:按照指定位数四舍五入处理数据,并且输出的是字符串类型数据。
    
    abs函数[绝对值]:select abs(字段) from 表名;
    
    mod函数[余数]: select mod(字段,被除数) from 表名;
    
    ceil和floor函数[小数向上或向下取整]: select ceil(字段) from 表名;
    
    rand函数[随机数]: select 字段 * rand() from 表名 where 条件;
    
    round函数[四舍五入]: select round(字段,保留小数点后几位数位数) from 表名;
    
    truncate函数[不管四舍五入,直接截取位数]: select truncate(字段,3) from 表名;
    
    sign函数[正数返回1,负数-1,0就是0]: select sign(*) from 表名;
    
    pow[幂运算]: select pow(2,3);
    
    查询name开头是a-c的数据: select * from user where name regexp '^[a-c]'
    
    指定以 demigod => 88 这种形式展示结果: select concat(name,"=>",score) from user;
    
    查询id=2,3,4的数据: select * from user where id in(2,3,4);//查询条件可以是字符串
    
    成绩保留小数点后3位展示: select format(成绩,3) from user;
    
    绝对值展示: select abs(指数) from user;
    
    余数展示: select mod(9,2) from user; //结果: 1
    
    向下或向下取整: select (floor)ceil(2.3) from user; //结果: (2)3;
    
    查询字段乘以一个随机数: select score * rand() from user where id = 1;
    
    四舍五入1.23456: select round(1.23456,3) from user; //结果: 1.235
    
    1.23456截取小数点后3位: select truncate(1.23456,3) from user; //结果: 1.234
    
    判断数字正负数类型 : select sign(1.212),sign(0),sign(-12) from user; //结果1,0,-1;
    
    幂运算2的3次方: select pow(2,3); //结果 8
    

    修改数据

    update 表名 set 修改部分 where 要求;
    

    增加字段

    alter table 表名 add 字段名 字段要求;
    

    删除字段

    alter table 表名 drop 字段名;
    

    复制表格

    部分复制[所有内容]: create table 新建的表名 select 字段,字段 from 需要被复制的表名;
    
    整表复制[所有内容]: create table 新建的表名 select * from 需要被复制的表名;
    
    只复制表结构:create table 新建的表名 like 需要被复制的表名;
    

    查看表结构

    describe[简写desc] 表名;
    

    重命名表格

    rename table 旧表名 to 新表名;
    
    alter table 旧表名 rename 新表名;
    

    删除表格数据

    delete from 表名 where 条件;
    

    两个表外键关联

    A表:
    create table A(
        id int primary key auto_increment,
        name varchar(8) not null,
        password varchar(8) not null
    )
    B表:[关联A表的id]
    create table B(
        id int primary key auto_increment,
        name varchar(8) not null,
        f_id int,
        foreign key(f_id) references A(id);
    )
    查询方法1:
        select * from user,friend where A.id = friend.f_id;
        等同于 select * from A join B on A.id = B.f_id;
        查询结果两张整表拼接在一起。
    查询方法2:
        左键关联查询:[A表数据多于B表,结果为展示整张A表,B表没有的全部显示null]
        select * from A left join B on A.id = B.f_id;
        右键关联查询:[A表数据多于B表,结果为展示整张B表,展示所有B表数据]
        select * from A right join B on A.id = B.f_id;
    

    根据类型求和

    表格:
        id    type    name    age
        1    a    张三    18
        2    b    李四    19
        3    b    王五    20
        4    c    赵六    19
        5    a    谭七    22
        6    c    钱九    23
        7    a    孙十    18
        8    d    李零    23
    
        计算每种类型的年龄总和: select type,sum(age) from 表名 group by type;
    
    结果: 
        type    age
        a    58
        b    39
        c    42
        d    23
    
        拓展:查询出来对sum排序
    
    升序: select type,sum(age) from massage GROUP BY type order by sum(age) asc;
    
    降序: select type,sum(age) from massage GROUP BY type order by sum(age) desc;
    

    数据库内查询某个字段

    select * from information_schema.columns where column_name= '字段名';
    

    说明

    原创作品,禁止转载和伪原创,违者必究!

    相关文章

      网友评论

        本文标题:Mysql常用命令

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