首页 > 技术文章 > MySQL

ldragon2000 2020-12-07 10:04 原文

MySQL

基本操作

数据库

  1. 新增数据库

    create database db_name [options];
    
    • options:
      • charset 字符集
      • collate 字符集
  2. 删除数据库

    drop database db_name;
    
  3. 修改数据库

    1. 修改库名

    2. 修改库选项

      • 字符集 charset

        alter db_name charset utf8;
        
      • 校对集 collate

        alter db_name collate 校对集;
        
  4. 显示/查看数据库

    show databases;
    show create database db_name;
    

数据表

  1. 新增

    creata table [db_name].tb_name(
    字段1 选项,
    字段2 选项
    )[options][具体引擎];
    
    
    create table tb_name like db_naem.tb_name;
    
    • 选项包括charset collate
    • 引擎
      • InnoDB(默认)
      • MyISAM:不支持外键和事务
  2. 删除

    drop table tb_name;
    
  3. 修改

    1. 改名

      rename table tb_n1 to tb_n2;
      
    2. 修改表选项

      alter table tb_name [options];
      
  4. 显示/查看

    show tables;
    show tables like '%like';   # %匹配任意字符;_匹配单个字符
    show create table tb_name;
    # 一下三种方式效果相同
    desc tb_name;
    describe tb_name;
    show cloumn from tb_name;
    

字段field

  1. 新增字段

    alter table tb_name add [cloumn] col_name type [attribute][localition];
    
    • 位置:first;after col_name;
  2. 删除字段

    alter table tb_name drop col_name;
    
  3. 修改字段

    # 字段名
    alter table tb_name change col_n1 col_n2 type [attirbuite][options];
    # 字段属性
    alter table tb_name modify col_name type [attirbuite][options];
    
  4. 查看字段

    desc tb_name;
    describe tb_name;
    show columns from tb_name;
    

数据操作

  1. 新增数据

    insert into 表名 values(字段列表对应的所有值);
    insert into 表名(字段列表) values(字段列表对应的值)
    # 批量新增数据
    insert into 表名(字段列表) value (值列表1), ...
    
  2. 查看数据

    select */field_name from tb_name where 条件;
    
  3. 更新数据

    update 表名 set 字段=新值,字段=新值 where 条件;
    
  4. 删除数据

    delete from tb_name where 条件;
    

基本选项

字符集

常见字符集

字符集 存储空间 描述
ASCII 1字节 美国信息交换标准代码
Iatin1 1字节 拉丁文字符集,向下兼容ASCII
GB2312 2字节 一种国标规范
GBK 2字节 汉字内码扩展规范
Unicode 使用统一的规范来解决传统的局限
utf8 1-6字节 目前通用编码规则

查看支持的字符集

show charset;

更改客户端字符集

set names 字符集;  # 批量修改

修改字符集变量

set character_set_client=gbk;   # 保证客户端正常存入数据
set character_set_results=gbk;   # 保证数据正常被客户看到
set character_set_connection=gbk; # 连接使用的字符集保证内部数据操作
set names 字符集;  # 批量修改

校对集

校对集:进行数据比较时对应的规则

  • 依赖于字符集
  • 校对的三种方式
    • 大小写不敏感
    • 大小写敏感
    • 二进制比较
  • 进行数据比较的时候触发

字段类型

image-20201030163559409

字段属性

属性 关键字 描述
空属性 Not Null 默认允许空
默认值属性 default 值
主键 primary key() 唯一,不为空,复合主键
自动增长 auto_increment
唯一键 unique key() 允许数据位null,复合
字段描述 comment '描述'
无符号 unsigned 无符号
外键 foreign key 指向外部表主建的字段

推荐阅读