zoukankan      html  css  js  c++  java
  • mysql数据库基本操作命令行

    创建数据库:

    creat database choose;
    

    查询数据库

    show databases;
    

    显示当前数据库中的所有表的信息

    show tables; 

    显示指定数据库中的所有表信息

    mysql> show tables from db3;

    查看指定数据库的相关信息

    show create database choose;
    

    选择一个数据库

    use choose;
    

    查看当前数据库

    select database();
    

    删除数据库

    drop database choose;
    

    删除表

    mysql> drop table A;
    

      

    设置数据库使用的字符集

    set names utf8;
    

    查看表的详细设计信息

    describe stu2;
    

    查看表的内容(name和tel都是表中的属性)

    select name,tel from stu2;
    

     这里如果出现了:

    Empty set (0.00 sec)

     说明查询的表中的该属性是空的,还没有插入数据

    向表中插入内容(name和tel是表中的属性,dong和456是插入的属性值)

    mysql> insert into stu2(name,tel)
        -> values ('dong',456);
    

    在已有的表中添加列

    mysql> ALTER TABLE one
        -> add tall int;
    

    删除表中的列

    mysql> alter table A
        -> drop taa;
    

      

    在表中添加枚举(enum只支持整数,我一开始定义的是男、女两个中文,踩了好大一个坑,后来发现定义整数是可以的)

     create table six(
        -> name varchar(5),
        -> sex enum('1','2')
        -> );
    

     修改表中列的数据类型

    alter table test1
        -> modify column name varchar(20);

    修改表的名字

    mysql> alter table stu rename to stu_new;
    

      

    将表转移到其他数据库中

    mysql> alter table stu2 rename to db3.stu2;

    表记录的修改

    update test1
        -> set name='qq' where(name='j');

    表记录的删除

    DELETE FROM test1
        -> WHERE (name='liu');

    设置主键的两种方式

    法一:

    mysql> create table C(
        -> id int primary key,
        -> name varchar(10));
    

    法二:

    mysql> create table D(
        ->  id int,
        ->  num int,
        -> name varchar(10),
        -> primary key(id,num));
    

      

    取出表中列的重复结果

    法一:

    mysql> select distinct department from student_info;

     法二:

    mysql> select department from student_info
        -> group by(department);
    

      

    查看mysql编码格式

    show variables like 'character%';
    

    设置编码格式

    set character_set_client=utf8; // 设置客户端的编码为utf8
    
     
    
    set character_set_connection=utf8; // 
    
     
    
    set character_set_database=utf8; //
    
     
    
    set character_set_results=utf8; //
    
     
    
    set character_set_server=utf8; //
    
     
    
    set character_set_system=utf8; //
    

    修改表的编码格式

    alter table animal charset=utf8;
    

    删除表中记录

    truncate table one;
    

    取出表中的年份(属性bir1必须是data类型的才能取出来)

    select year(bir1) from rq;
    

    使用枚举enum设置类型

    create table my(
        -> sex enum('男','女')charset utf8);
    

    使用like运算符与通配符实现模糊查询(匹配a开头的属性)

    mysql> select * from stu
        -> where name like 'a%';
    

      

     使用limit限制记录数:例如查询从0开始的10条记录.该命令在分页功能中很有用

    select * from table limit 0,10;
    

      

    按照单个列的值进行排序:order by 列名 asc(升序)|desc(降序)

    mysql> select number from student_info
        -> order by number desc;
    

    通配符%和_的使用:%表示匹配任意一个字符串,_表示匹配一个字符

    刘%:匹配姓刘的名字

    刘_:匹配姓刘,且长度为2的名字


      

    常用聚合函数:

    sum() 累加求和

    avg() 请均值

    count(*) 统计记录的行数

    count(列名)统计指定列的行数

    max() 最大值

    min() 最小值

    求表中某列的平均值

    select avg(grade) from stu;
    

      

    连续使用聚合函数

    mysql> select sum(grade),max(grade),min(grade),avg(grade) from stu;
    

      

    使用聚合函数时给属性列设置别名

    select sum(grade) as '中文' from stu;
    

      

    通过group by 字句对记录分组

    select avg(grade) from stu
        -> group by sex;
    

      

    通过group by 字句根据记录属性分组

    select sex,count(num) from stu group by sex;
    

      

    having子从句的使用

    mysql> select num,avg(grade) from stu_score
        -> group by num
        -> having avg(grade)<60;
    

      

    使用order by 对字句进行排序

    升序

     select * from stu_score
        -> order by(grade);
    

    降序

     select * from stu_score 
        -> order by(grade) desc;
    

      

    使用limit查询指定记录

     select num,name from stu
        -> order by(grade) desc
        -> limit 1;
    

      

    基于派生表的查询from型子查询,注意点:派生表一定要指定一个别名,否则会报错

     select * from (select name from stu where grade>60) as s1;
    

      

    广义笛卡尔积

    select * from stu,score;
    

    去除笛卡尔积中无效的选项后的结果

    select * from stu,score where stu.num=score.num;
    

      

    等值连接

     select stu.* from stu,score where c_id=1 and stu.num=score.num;
    

      

    左连接语法格式

    select stu.num,name,course,stu_score.grade from stu left join stu_score on stu.num=stu_score.num;
    

      

    获得系统的当前时间

    mysql> select now();
    

      

    获得系统的当前年份

    mysql> select year(now());
    

      

    不相关子查询

    SELECT number, name, id_number, major FROM student_info WHERE EXISTS (SELECT * FROM student_score WHERE student_score.number = student_info.number);
    

      

    使用自连接简化子查询的方式

    select * from student_info as s1,student_info as s2
        -> where s1.major=s2.major and s1.name='史珍香';
    

      

  • 相关阅读:
    C# 线程之间切换
    工厂方法(创建型)
    单例模式(创建型)
    HTTP请求超时
    命令模式
    Asp.Net Core EF Migrations(二)
    Asp.Net Core EF Migrations
    Vue父子组件之间的通讯(学习笔记)
    数组的方法(笔记)
    Vue-router入门
  • 原文地址:https://www.cnblogs.com/lyd447113735/p/11585554.html
Copyright © 2011-2022 走看看