MySQL语句-表操作汇总

表操作
  • 查看创建表语法

    help create table;
    
  • 显示库中所有的表
    格式:

     SHOW [FULL] TABLES [{FROM | IN} 表名]  [LIKE 'pattern' | WHERE expr]
    

    示例:

    显示所有有表:
      show tables;
    显示表名包含user名称所有表:
      show tables like '%user%';
    
  • 查看建表语句
    格式:

    SHOW CREATE TABLE 表名
    

    示例:

    SHOW CREATE TABLE t_user; 
    

    在这里插入图片描述

  • 查看表结构
    格式:

    DESC 表名 等同于:SHOW COLUMNS FROM 表名
    

    示例:

    desc t_user;
    

    在这里插入图片描述

  • 创建表基本格式
    格式:

    CREATE TABLE [IF NOT EXISTS] <表名>(
      <列名> <数据类型> [约束条件]  [COMMENT字段的注释],
      ...
      <列名> <数据类型> [约束条件]  [COMMENT字段的注释]
    )[COMMENT=表的注释];
    

    示例:

    create table t_user(
      id int,
      user_name varchar(32) 
    );  
    
    
  • 创建和存在的表一样结果的表
    格式:

    CREATE TABLE [IF NOT EXISTS]  表名  { LIKE old_tbl_name | (LIKE old_tbl_name) }
    

    示例:

    create table t_user_temp like t_user;
    

    在这里插入图片描述

  • 修改表注解

    ALTER TABLE 表名 COMMENT'表注释';
    
  • 修改表名
    格式:

    ALTER TABLE 旧表名 RENAME 新表名;
    

    实例:

    alter table t_user rename t_user_temp;
    
  • 删除表
    格式:

    DROP  TABLE [IF EXISTS] 表名;
    

    示例:

    drop table t_user_temp;
    
  • 更改表存储引擎
    格式:

    ALTER TABLE 表名 ENGINE = 存储引擎名;
    

    查看数据库支持的存储引擎:

    SHOW ENGINES;
    
列操作
  • 新增列
    格式:

    ALTER TABLE 表名 ADD 列名 数据类型 [完整性约束条件] [FIRST | AFTER 属性名2];
    

    示例:

    alter table t_user add password varchar(32);
    
  • 修改列
    格式:

    ALTER TABLE 表名 MODIFY 列名 数据类型 [COMMENT '修改的字段注释'];
    

    示例:

     alter table t_user modify password varchar(16);   
    
  • 修改列名
    格式:

    ALTER TABLE 表名 CHANGE 旧列名 新列名 新数据类型;
    

    示例:

    alter table t_user change password pass_word varchar(32);
    
  • 删除列
    格式:

    ALTER TABLE 表名 DROP 列名;
    
字段约束条件
  • 所有约束

    约束条件说明
    PRIMARY KEY主键约束
    FOREIGN KEY外键约束
    NOT NULL约束不能为空
    UNIQUE约束值唯一
    AUTO_INCREMENT标识该属性的值是自动增加
    DEFAULT为该属性设置默认值
  • PRIMARY KEY
    建表格式:

    单字段主键格式:列名 数据类型 PRIMARY KEY
    多字段主键格式:PRIMARY KEY(列名1,列2...)
    

    SQL格式:

    ALTER TABLE 表名 ADD PRIMARY KEY(列名1,列名2...);
    

    删除格式:

     ALTER TABLE 表名 DROP PRIMARY KEY;
    
  • FOREIGN KEY
    建表格式:

    CONSTRAINT 外键名 FOREIGN KEY(外键列名1,外键列名2...) REFERENCES 外键表名(列名1,列名2...)
    

    SQL格式:

     ALTER TABLE 表名 ADD CONSTRAINT 外键名 FOREIGN KEY(外键列名1,外键列名2...) REFERENCES 外键表名(列名1,列名2...);
    

    删除格式:

    ALTER TABLE 表名 DROP FOREIGN KEY 外键别名;
    
  • NOT NULL
    建表格式:

    列名 数据类型 NOT NULL
    

    SQL格式:

    ALTER TABLE 表名 MODIFY 列名 数据类型 NOT NULL;
    

    删除格式:

    ALTER TABLE 表名 MODIFY 列名 数据类型 NULL;
    
  • UNIQUE
    建表格式:

    列名 数据类型 UNIQUE
    

    SQL格式:

    ALTER TABLE 表名 ADD UNIQUE INDEX 名称(列名1,列名2...);
    

    删除格式:

    DROP INDEX 名称 ON 表名;
    ALTER TABLE 表名 DROP INDEX 名称;
    
  • AUTO_INCREMENT
    建表格式:

    列名 数据类型 AUTO_INCREMENT
    

    SQL格式:

    ALTER TABLE 表名 MODIFY 列名 数据类型  AUTO_INCREMENT PRIMARY KEY;
    

    删除格式:

    ALTER TABLE 表名 MODIFY 列名 数据类型  PRIMARY KEY;
    
  • DEFAULT

    列名 数据类型 DEFAULT 默认值
    
索引
  • 创建主键索引(只能一个)
    见上-PRIMARY KEY

  • 创建普通索引
    方法1:建表时,增加建立索引语句

     create table t_user(
      id int(16) not null AUTO_INCREMENT,  
       user_name varchar(32) not null,
      primary key(id),
      KEY index_name(user_name)    <====user_name普通索引,索引名称:index_name
    );
    

    方法2:建表后,alter命令增加普通索引
    alter table 表名 add index 索引名(列);

    alter table t_user add index index_name(user_name);
    
  • 对字段的前n个字符创建普通索引
    create index 索引名称 on 表名(列(n));

    create index index_name on t_user(user_name(8));
    
  • 多个字段创建联合索引
    create index 索引名称 on 表名(列1,列2…)

    create index index_name on t_user(user_name,password)
    
  • 多个字段前n个字符创建联合索引
    create index 索引名称 on 表名(列1(n),列2(n)…)

  • 删除普通索引
    alter table 表名 drop index 索引名;
    drop index 索引名称 on 表名;

  • 联合索引生效特性
    索引:index(列1,列2,列3)
    查询条件:列1、列1列2、列1列2列3 三个条件都会走索引

  • 查看索引
    SHOW INDEX FROM 表名

    show index from t_user\G
    
  • 创建唯一索引(非主键)
    减少-UNIQUE

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值