zoukankan      html  css  js  c++  java
  • mysql命令大全

    用户相关

    创建用户

    # 语法:create  user 用户名@'ip地址(%表示无限制)' indentified  密码
    
    create user  kingfan@'%' identified by '123'
    

    删除用户

    drop user '用户名'@'ip地址';
    

    修改用户

    rename user '用户名'@'ip地址' to '新用户名'@'ip地址'
    

    修改密码:

    set password for '用户名'@'ip地址' =password('密码');
    update mysql.user set password=password('密码')  where user='kingfan';
    

    授权相关

    授权

    # 语法: grant 权限 on 库.表 to 用户名@ip地址;
    
    #给kingfan用户对test库有查看和插入权限
    grant select,insert, on test to kingfan@'%';
    
    
    #所有权限
    grant all privileges on '*' to kingfan@'%';
    
    #刷新权限,使权限修改立马生效
    flush privileges;
    
    # 查看权限
    show grants for '用户'@'ip地址'
    revoke 权限 on 数据库.表 from '用户'@'ip地址'
    

    库相关

    # 创建库:create database 库名  default charset utf8;
    create database db1;
    
    # 查看库: show databases;
    
    # 删除库:
    drop database 库名;
    
    # 进入库:
    use 库名;
    

    表相关

    # 查看表
    show tables;
    
    # 创建表
    create table 表明(字段 数据类型 约束条件) engine=innodb default charset=utf8
    
    # 删除表
    drop table 表名;
    
    # 清空表的数据
    delete from 表名;
    truncate table 表名;    #初始化表的设置,比如自增主键会重新从1开始。效率比delete高
    

    引擎

    innodb
    支持事物,回滚,原子性操作
    
    myisam
    

    约束条件

    # 表里面只能有1个主键和自增列,一般搭配使用
    auto_increment  #自增默认不为空,从1开始
    primary key     #索引唯一标识,唯一且不能为空,加速查找
    not null  #不能为空
    

    数据类型

    # 数字:
    tinyint
    int
    bigint
    smallint
    float
    double
    decimal(底层按字符串存储)
        decimal(10,5) #10是总长,5是小数位数
    
    # 字符串:
    char(num)       #定长,不足则补充至定长    
    vachar(num)     #不定长,节省空间,但是查询速度没char快
    
    ## char和vachar最大字符255
    
    ## text 存较大文本,文章
    
    
    # 时间类型
    time 
    datatime
    year
    timestamp
    
    
    # enum枚举类型(多选1)
    enum(选项1,选项2,选项2)
    
    # set 集合,可多选
    create table t1(
        hobby set(a,b,c,d)
    );
    
    insert into t1 values('a'/'a,b'/'a,b,c')
    

    表操作

    增
    insert into t1 values(id,name)
    
    删:
    delete from t1 where id<6
    
    改
    update t1 set age =18 where id=12;
    
    查
    select * from t1;
    
    # 查看表信息
    show create table 表名
    desc 表名
    

    外键foreinkey

    create table department(
        id int auto_increment primary key,
        title char(12)
    ) engine=innodb default charset=utf8;
    
    
    create table userinfo(  
        uid int auto_increment primary key,
        name varchar(12),
        department_id int,
        constraint fk_userinfo_dep foreign key(department) references department(id)
    ) engine=innodb default charset=utf8 ;
    

    修改自增列的起始(auto_increment)

     alter table 表名 auto_increment=num;
     # 设置的num一定满足比当前表中数据最大的数值大
     
     # 自增步长
     # mysql:基于会话
     # 查看当前会话的步长
    show session variables like 'auto_inc%';
    # 修改步长,重新登陆会重置
    set session auto_increment_increment=2;
     
     
     
     # 全局步长,修改之后重新登录所有用户都变了
     show global variables like 'auto_inc%';
    

    约束条件相关

    唯一索引unique

      create table db1(
      id int primary key auto_increment,
      name char(12),
      phone char(11) unique
      );
    

    联合唯一索引

      create table db1(
      id int primary key auto_increment,
      name varchar(12),
      phone char(11),
      unique uq1 (name,phone)
      )
    

    注意:唯一可以为null,主键是唯一且不为null

    外键的额外使用

    一对一关系
    foreign key和unique联合使用

     # 用户表
     create table userinfo(
     id int primary key auto_increment,
     username varchar(32) not null unique,
     password varchar(32) not null unique,
     );
     
     # 博客表
     create table blog(
     id int primary key auto_increment,
     title varchar(32) not null,
     user int unique not null,
     constraint fk1 foreign key(user) references userinfo(id)
     );
     
    

    多不多实例

    # 用户表
    create table user(
    id int primary key auto_increment,
    name varchar(32)
    );
    
    # 电脑表
    create table computer(
    id primary key auto_increment,
    name varchar(32)
    )
    
    # 用户电脑关系表
    create table user_cpu(
    id primary key auto_increment,
    user int not null,
    cpu int not null,
    constraint fk1 foreign key(user) references user(id),
    constraint fk2 foreign key(cpu) references computer(id),
    unique u1 (user,cpu)
    );
    
    
    # 当多不多关系时需要建立第三张表,建立两个外键关系并且这两个外键联合唯一。
    
    
  • 相关阅读:
    MySQL数据库高可用集群搭建-PXC集群部署
    高性能高并发网站架构,教你搭建Redis5缓存集群
    redis连接错误3种解决方案System Error MISCONF Redis is configured to save RDB snapshots
    进程异常行为-反弹Shell攻击,KILL多个进程
    Laravel中我们登录服务器通过 Tinker 手动创建后台管理用户
    Laravel5.x的php artisan migrate数据库迁移创建操作报错SQLSTATE[42000]解决
    Laravel:php artisan key:generate三种报错解决方案,修改默认PHP版本(宝塔面板)
    大型网站如何防止崩溃,解决高并发带来的问题
    PHP微信公众平台OAuth2.0网页授权,获取用户信息代码类封装demo(二)
    iOS开发 ReactiveCocoa入门教程 第二部分
  • 原文地址:https://www.cnblogs.com/Kingfan1993/p/10307647.html
Copyright © 2011-2022 走看看