标签:date col 字符 清空 用户权限 登陆 表名 esc 级联
增加库 create database db1 create database db1 charset="gbk 查看库 show databases 查看所有库 show create database db1 查看具体库 改 alter database db1 charset="utf8" 改库的属性 删除 drop database db1
进入库名 use db1 select databases() 创建表 create table t1(name char(20),age int(10)); 查看表 show tables show create table t1; desc(ribe) t2 : 查看表结构 删除 drop table t1 修改 alter table t2 modify name char(20) 修改字段名 alter table t2 rename t1 修改表明 ALTER TABLE 表名 CHANGE 旧字段名 新字段名 新数据类型; alter table t1 change name user char(16) 修改字段属性
增加 insert into t1 (usr, age) values ("aa",18 ),("bb",8); 查 select * from t1 改 update t1 set age=28 where usr="aa" 删除 delete from t1 where age>8
拷贝表 create table t1 like t2; 拷贝空表 create table t1 select * from t2; (结构+数据) 连同表记录一起拷贝过来,不复制表约束 truncate tt; 清空表,自增字段重置 alter table t1 engine=innodb charset=gbk; 修改表的引擎,字符编码集
修改字段信息 alter table 表名 modify 字段名 类型[(宽度) 约束]; 修改字段信息 alter table 表名 modify 字段名 类型[(宽度) 非键约束] first; 移动字段到最前面 alter table 表名 modify 字段名 类型[(宽度) 非键约束] after 指定字段前; 移动到字段到指定字段后面 修改字段名及信息 alter table 表名 change 旧字段名 新字段名 类型[(宽度) 约束条件] 末尾添加 alter table 表名 add 字段名 类型[(宽度) 约束], ..., add 字段名 类型[(宽度) 约束]; alter table t1 add name char(5), add sex enum(‘male‘,‘femail‘,‘other‘) 首行添加 alter table 表名 add 字段名 类型[(宽度) 约束] first; 指定字段的后面添加 alter table 表名 add 字段名 类型[(宽度) 约束] after 旧字段名; 删除字段名 alter table 表名 drop 字段名;
特殊表:(mysql.user)
查看当前登陆用户 select user(); 重要字段: Host | User | Password select Host,User,Password from user; 新建用户 create user 用户名@主机名 identified by ‘密码‘ 设置用户权限 grant create on db1.* to zero@localhost with grand option 给用创建表的权限 设置权限是如果没有当前用户,会自动创建用户 (重点) grant all on db1.* to owen@localhost identified by ‘owen‘; # (创建用户)设置权限 撤销权限 revoke 权限名 on 数据库名.表名 from 用户名@主机名; revoke delete on db1.* from owen@localhost; 修改密码 set password for 用户名@主机名 = password(‘新密码‘); set password for owen@localhost = password(‘123‘); 删除用户 drop user 用户名@主机名;
多对一 (关键字设置在多的那一方)
建表规则:
先建立主表,再建立从表,在从表中设置主表的唯一字段(通常为主键)作为外键
建表语法
建主表:
create table 主表( id int primary key auto_increment, ... );
create table dep( id int primary key auto_increment, name varchar(16), work varchar(16) );
建从表 create table 从表( id int primary key auto_increment, ... 主表_id int, # 只是在从表中起了一个名字, 该名字和主表主键对应,所有起了个见名知义的名字 foreign key(主表_id) references 主表(唯一字段名id) on update cascade on delete cascade );
create table emp( id int primary key auto_increment, name varchar(16), salary float, dep_id int, foreign key(dep_id) references dep(id) 外键设置在多的那一方 on update cascade # 设置级联 on delete cascade );
建表规则:
新建第三张表,通过两个外键形成多对多关系
建表语法:
create table 表1( id int primary key auto_increment, ... ); create table book( id int primary key auto_increment, name varchar(16), price int ); create table 表2( id int primary key auto_increment, ... ); create table author( id int primary key auto_increment, name varchar(16) );
建第三张表建立关系
create table 关系表( id int primary key auto_increment, 表1_id int, 表2_id int, foreign key(表1_id) references 表1(id) on update cascade on delete cascade, foreign key(表2_id) references 表2(id) on update cascade on delete cascade ); create table book_author( id int primary key auto_increment, book_id int, author_id int, foreign key(book_id) references book(id) 第三张表与第一张表建立关系 on update cascade on delete cascade, foreign key(author_id) references author(id) 第三张表与第一张表建立关系
on update cascade
on delete cascade );
建表规则:
未存放外键的表被依赖,称之为左表;存放外键的表示依赖表,称之为右表;先操作左边再操作右表
建表语法:
create table 左表( id int primary key auto_increment, ... ); create table husband( id int primary key auto_increment, name varchar(16) ); create table 右表( id int primary key auto_increment, ... 左表_id int unique, # 一对一的外键需要唯一性 foreign key(左表_id) references 左表(id) on update cascade on delete cascade ); create table wife( id int primary key auto_increment, name varchar(16), husband_id int unique, # 一对一的外键需要唯一性 foreign key(husband_id) references husband(id) on update cascade on delete cascade );
库增删该查,表增删该查,记录增删该查,mysql用户管理,表与表关系(多对多,多对一,一对一)
标签:date col 字符 清空 用户权限 登陆 表名 esc 级联
原文地址:https://www.cnblogs.com/liu--huan/p/10301280.html