mysql 常用命令

1.DDL(data definition language)数据库定义语言:

  定义数据段,数据库、表、列、索引等数据库对象。常用的包括create、drop、update

  创建数据库:

    create database wxy;

  查看有哪些数据库:

    show databases;

      information_schema  存储数据库对象信息,比如用户表、列、权限、字符集、分区信息

      mysql        存储系统用户权限信息

  进入数据库:

    use wxy;

  查看所有表:

    show tables;

  删除数库:

    drop database wxy;

  创建表:

     create table tablename (column_name,column_type,constraints,....);

     create table wxy (name varchar(20),hiredate date);

  查看表结构:

    desc wxy;

    show create table wxy \G;   表信息更全面

  删除表:

    drop table tablename;

  修改表: alter

    修改表字段数据类型:

      alter table tablename modify [column] column_definition [FIRST| AFTER col_name]; 

      alter table wxy modify name varchar(10);

      alter table wxy modify hobby varchar(59) first;  #更改表某字段的位置

    增加表字段:

      alter table tablename add [column] column_definition [FIRST| AFTER col_name]; 

      alter table wxy add age int(3);    #默认将字段加到最后

      alter table wxy add hobby varchar(50) after name;

    删除表字段:

      alter table tablename drop [column] col_name;

      alter table wxy drop column hobby;

    修改字段名:

      alter table tablename change [column] old_col_name column_definition; 

      alter table wxy change name name1 varchar(5);

    更改表名: 

      alter table tablename rename to new_tablename;

      alter table wxy rename to wxy1;

2.DML(data manipulation language)数据操纵语言:

  操作数据库中表记录,常见增删改查

  插入记录:

    insert into tablename (field1,...) values(value1,...),(value2,...);

    注意:

      可以不用指定字段名称,但是values后面的顺序和字段的排列顺序一致。

      含可空字段,非空但是含默认的字段,自增字段,可以不再insert的字段列表里出现

  更新记录:

    uptate tablename set field1=value1,field2=value2,... [where condition]

    多表更新:

       update table1 tb1,table2 tb2 set tb1.column1=values1,tb2.column2=values2 where tb1.column2=tb2.column2;

      根据一个表的字段来动态更新另一个表的字段

  删除记录:

    删除单个表数据:

      delete from tablename where tablename.column=value;

    删除多个表数据:

      delete t1,...,tn from t1,...,tn where condition;

  查询记录:

    基本语法:

      select * from tablename [where condition]  

      *代表所有字段,要么就是明确具体字段

    去重:

      select distinct column from tablename;

    条件查询:where

      比较运算符:

        =、>、>=、<=、!=

      逻辑运算符:

        and、or  #多条件联合查询

    排序和限制:

      排序:

        基本语法:

          selete * from tablename [where condition] order by field1 [desc|asc] ,...,fieldn [desc|asc] 

          desc 降序,asc升序

          可以指定多个字段,如果前边的字段相同,按后边字段排序   

      限制:

        limit offset_start,row_count;

          起始偏移量,记录数量

      聚合:

        基本语法:

          select [field1,...,fieldn] fun_name from tablename [where condition] group by field1,...,fieldn [with rollup] [having condition];

          fun_name:

              聚合函数,常见的有sum(求和),count(*)(记录数),max(最大值),min(最小值)

          group by:

            表示要进行分类聚合的字段

          with rollup:

            对分类聚合后的结果再汇总

          having:

             对分类后的结果再进行条件过滤

    表连接:

      作用:同时显示多个表中的字段

      内连接:选出2张表中相匹配的记录

      外连接:选出其他不匹配的记录

        左连接:

          包含所有左表中的记录甚至是右边表中的没有和它匹配的记录

          select column1,..,columnn from tablename1 left join tablename2 on tablename1.column=tablename2.column;

        右连接:

          包含所有右边表中的记录甚至是左表中没有和它匹配的记录

          select column1,..,columnn from tablename1 right join tablename2 on tablename1.column=tablename2.column;

    子查询:

      子查询的关键字包括:in、not in、=、!=、exists、not exists  

      select  * from tablename1 where column keyword (select column from tablename2);

      注意:

        子查询和表连接可以相互转化,表连接在很多情况用于优化字查询

    记录联合:

      基本语法:

        select * from t1 union|union all select * from t2 ... union|union all select * from tn;

        union 相当于union all 去重 

3.DCL(data Control Language)数据库控制语言:

  控制数据库的访问权限和安全级别,常见grant、revoke

  修改密码:

    mysqladmin -uroot -p password 123456

  创建数据库用户、授权、收回: 

    授权:

      GRANT ALL PRIVILEGES ON *.* TO 'username'@'localhost' IDENTIFIED BY 'password';

    收回:

      REVOKE ALL PRIVILEGES ON *.* FROM 'username'@'localhost';

    创建用户:

      CREATE USER username IDENTIFIED BY 'password';

      DROP USER username@localhost;

    查看用户:

      select * from mysq.user;

    查看授权:

      show grants for username;

    注意:操作完后记得FLUSH PRIVILEGES;刷新权限

    常见权限:

      ALTER: 修改表和索引
      CREATE: 创建数据库和表
      DELETE: 删除表中已有的记录
      DROP: 抛弃(删除)数据库和表
      INDEX: 创建或抛弃索引
      INSERT: 向表中插入新行
      REFERENCE: 未用
      SELECT: 检索表中的记录
      UPDATE: 修改现存表记录
      FILE: 读或写服务器上的文件
      PROCESS: 查看服务器中执行的线程信息或杀死线程
      RELOAD: 重载授权表或清空日志、主机缓存或表缓存
      SHUTDOWN: 关闭服务器
      ALL: 所有权限,ALL PRIVILEGES同义词
      USAGE: 特殊的 "无权限" 权限

4.查看帮助

  ? comtents

posted @ 2018-11-12 14:37  大来  阅读(175)  评论(0编辑  收藏  举报