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)
    );
    
    
    # 当多不多关系时需要建立第三张表,建立两个外键关系并且这两个外键联合唯一。
    
    
  • 相关阅读:
    jQuery 基本选择器
    JavaScriptif while for switch流程控制 JS函数 内置对象
    JavaScrip基本语法
    数据库 存储引擎 表的操作 数值类型 时间类型 字符串类型 枚举集合 约束
    数据库基础知识 管理员 用户登录授权的操作
    粘包的产生原理 以及如何解决粘包问题
    socket TCP DPT 网络编程
    2018年年终总结
    Android技术分享
    No accelerator found
  • 原文地址:https://www.cnblogs.com/Kingfan1993/p/10307647.html
Copyright © 2011-2022 走看看