Mysql

记录了MySQL常用命令,以便不时之需。

常用命令及设置

1
2
3
4
5
6
7
//  ~/.zshrc
#mysql ================================
alias mysql='/usr/local/mysql/bin/mysql'
alias mysqladmin='/usr/local/mysql/bin/mysqladmin'
alias start='sudo /usr/local/mysql/support-files/mysql.server start'
alias stop='sudo /usr/local/mysql/support-files/mysql.server stop'
alias restart='sudo /usr/local/mysql/support-files/mysql.server restart'
  • show databases; 显示所有数据库
  • create dbname 创建数据库
  • use <数据库名> 打开某数据库
  • create tbname(column_name data_type,...) 创建数据表
  • show create tbname; 查看创建的数据表输入的命令
  • select database() 选择数据表
  • show tables 显示数据表
  • show columns from tbname 显示数据表结构
  • insert tbname(...) values(...) 插入数据
  • select ... from tbname 显示数据表中的所有记录
  • show indexes from tbname\G 显示数据表中的索引(树状显示)
  • delete from tbname where... 删除记录

修改数据表

  • alter table tbname add (column_name data_type) after/before (column_name) 添加单列数据
  • alter table tbname drop column_name1 , drop column_name2… 删除表中列
  • alter table tb_name modify ...first/before 修改列定义(数据类型及位置)

特殊字符及各项约束

  • signed / unsigned 有无符号 (+ /-)

  • null / not null 空 / 非空

  • auto_increment 唯一自增,必须与主键配合使用

  • primary key 主键约束,一张数据表只能存在一个主键,保证记录唯一性,会自动创建索引

  • unique key唯一约束,一张数据表可以存在多个

  • default 默认值设定,插入数据如果为空,则默认设定默认值

  • foreign key 外键约束,字表设置外键时,外键列与父表参照列数据属性需要一致,存储引擎只能为InnoDB,外键列和参照列必须创建索引,外键的pid对应着父表的参照列中的id

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    // 父表 id 参照列
    create table provinces(
    id samllint unsigned primary key auto_increment,
    pname varchar(20) not null
    );
    //字表 pid 外键列
    create table users(
    id samllint unsigned primary key auto_increment,
    username varchar(20) not null,
    // 保证数据类型与参照列一致
    pid smallint unsigned,
    //
    foreign key (pid) references provinces (id) on delete cascade
    )
    • cascade 从父表中删除或更新且自动删除或更新子表外键中对应的行
    • set null 从父表中删除或更新且自动设置子表外键为null
    • restrict 拒绝对父表的更新或删除操作
    • not action 与restrict相同

记录操作

  1. 插入记录
    • insert into tb_name
坚持原创技术分享,您的支持将鼓励我继续创作!