mysql会话命令_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)

);

# 当多不多关系时需要建立第三张表,建立两个外键关系并且这两个外键联合唯一。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值