MySQL基本操作命令

数据库操作

  • 创建数据库(CREATE DATABASE)
    CREATE {DATABASE | SCHEMA} [IF NOT EXISTS] db_name [ [DEFAULT] CHARACTER SET [=] latin1/utf8/gbk ];
    创建同名的数据库会报错。加上IF NOT EXISTS,不出现错误,而是警告。
  • 查看数据库
    (1)判断是否创建成功。SHOW {DATABASES | SCHEMAS};
    (2)显示数据库创建时指令。SHOW CREATE DATABASE db_name;
  • 修改数据库(ALTER DATABASE)
    ALTER DATABASE db_name [ [DEFAULT] CHARACTER SET [=] latin1/gbk/utf8 ];
  • 删除数据库(DROP DATABASE)
    DROP {DATABASE | SCHEMA} [IF EXISTS] db_name;
    IF EXISTS与IF NOT EXISTS作用类似,已经删除的数据库再删除会报错。加上IF EXISTS,只有警告。

数据表操作

  • 创建数据表(CREATE)
    (1)使用USE打开数据库:USE db_name 显示用户当前打开的数据库:SELECT DATABASE();
    (2)创建。CREATE TABLE [IF NOT EXISTS] table_name (column_name date_type, …);
    column_name:列名称  date_type:数据类型
  • 查看数据表(SELECT)
    SHOW TABLES [FROM db_name] [LIKE ‘pattern’|WHERE expr];
    (1)查看MySQL中所有数据表。
    SHOW TABLES FROM mysql;
    (2)查看数据表结构。
    SHOW COLUMNS FROM tb_name;
    DESC tb_name;
  • 删除数据表(DROP)
    DROP TABLE tb_name;
  • 修改数据表(ALTER)
  1. 增加/删除/修改列
  • 添加单列
    ALTER TABLE tb_name ADD [CLOUMN] col_name column_definiton [ FIRST | AFTER col_name ];
  • 添加多列
    ALTER TABLE tb_name ADD [CLOUMN] (col_name column_definiton,…);
  • 删除列
    ALTER TABLE tb_name DROP [CLOUMN] col_name;
  • 同时删除两列
    ALTER TABLE tb_name DROP [CLOUMN] col_name, DROP [CLOUMN] col_name;
  • 删除的同时添加
    ALTER TABLE tb_name DROP [CLOUMN] col_name, ADD [CLOUMN] col_name column_definiton [ FIRST | AFTER col_name ];
  1. 修改列定义
    ALTER TABLE tb_name MODIFY [COLUMN] col_name column_definition [FIRST | AFTER col_name];
  2. 修改列名称
    ALTER TABLE tb_name CHANGE [COLUMN] old_col_name new_col_name column_definition [FIRST | AFTER col_name];
    可修改列名称也可修改列定义
  3. 数据表更名
    ALTER TABLE tb_name RENAME [TO|AS] new_tb_name;
    RENAME TABLE tb_name TO new_tb_name [,tb_name1 TO new_tb_name1]…;
  4. 添加/删除约束
  • 添加/删除主键约束
    ALTER TABLE tb_name ADD [CONSTRAINT [symbol]] PRIMARY KEY [index_type] (index_col_name,…);
    ALTER TABLE tb_name DROP PRIMARY KEY;
  • 添加/删除唯一约束
    ALTER TABLE tb_name ADD [CONSTRAINT [symbol]] UNIQUE [KEY|INDEX] [index_name] [index_type] (index_col_name,…);
    ALTER TABLE tb_name DROP {INDEX | KEY} index_name;
  • 添加/删除外键约束
    ALTER TABLE tb_name ADD [CONSTRAINT [symbol]] FOREIGN KEY [index_name] (index_col_name,…) REFERENCES_definition;
    ALTER TABLE tb_name DROP FOREIGN KEY fk_symbol;
  • 添加/删除默认约束
    ALTER TABLE tb_name ALTER [COLUMN] col_name {SET DEFAULT literal | DROP DEFAULT};

记录增删改查

  • 插入数据(INSERT)
    INSERT [INTO] tb_name [(col_name,…)] {VALUES|VALUE} ({expr|DEFAULT},…),(…),…;
    省略掉列名称时所有的字段都要赋值。
    对于自动编号字段:既可以写DEFAULT,NULL实现默认值,也可以自己赋值 。
    对于有默认值字段:即可以写DEFAULT,也可以自己赋值。
    对于数字类型字段:即可以写数字,也可以写表达式、函数等等。
    INSERT [INTO] tb_name SET col_name = {expr|DEFAULT},…;
    此方式可以进行子查询(SubQuery)
    INSERT [INTO] tb_name [(col_name,…)] SELECT…;
    此方式可以将查询结果插入到指定数据表

  • 删除数据(DELETE)
    单表删除记录
    DELETE FROM tb_name [WHERE where_condition];
    WHERE:条件表达式,不写则删除所有记录

  • 更新数据(UPDATE)
    单表更新
    UPDATE tb_name SET col_name={ expr | DEFAULT } [ , col_name1={ expr|DEFAULT } ]… [ WHERE where_condition ];
    多表更新
    UPDATE table_references SET col_name1 = {expr1 | DEFAULT} [, col_name2 = { expr2 | DEFAULT }]… [WHERE where_condition]
    WHERE:条件表达式,不写则更新所有记录

  • 查询数据(SELECT)

    SELECT expr [,expr…]
    [ 
      FROM table_references
      [WHERE where_condition]
      [GRUOP BY {col_name | position)}[ASC | DESC],…]
      [HAVING where_condition]
      [ORDER BY {col_name | expr |position} [ASC | DESC],…]
      [LIMIT {[offset,] row_count | row_count OFFSET offset}]
    ];
    

    多个列之间以英文逗号分隔。
    每一个表达式表示想要的一列,必须有至少一个。
    星号(*)表示所有列。tb_name.*可以表示命名表的所有列。
    可使用[AS] alias_name起别名。别名可用于ORDER BY,GROUP BY,HAVING字句。
    WHERE:条件表达式,不写则查询所有记录
    GROUP BY:查询结果分组
    HAVING:分组条件
    ORDER BY:查询结果排序(默认升序)
    LIMIT:限制查询结果数量

你可能感兴趣的:(MySQL基本操作命令)