目录

主键与外键命令

索引相关命令

用户授权相关命令

相关的命令行命令

在MySQL 里执行系统命令 前加system 指令

导入数据

导出数据


主键与外键命令

//创建主键

语法格式1

create table 库.表(

表头名 数据类型 primary key ,

表头名 数据类型 ,

..... );

语法格式2

create table 库.表(

表头名 数据类型 ,

primary key(字段名)

);

//删除主键命令

alter table 库.表 drop primary key ;

//添加主键命令

alter table 库.表 add primary key(表头名);

//创建复合主键

create table 库.表(

表头名1 数据类型 ,

表头名2 数据类型 ,

primary key(表头名1,表头名2)

..... );

主键与auto_increment连用——

表头设置了auto_increment属性后,

插入记录时,如果不给表头赋值表头通过自加1的计算结果赋值

要想让表头有自增长 表头必须有主键设置才可以

查看表结构时 在 Extra (额外设置) 位置显示

create table 库.表(

表头名1 int  primary key  auto_increment,

表头名2 数据类型

..... );

//创建外键

create table 库.表(

字段列表 ,

foreign key(表头名)

peferences 库名.表名(字段名)  #指定外键

on update cascade  #同步更新

on delete cascade  #同步删除

)engine=innodb;   #指定存储引擎

注意: 被外键关联的表不能被删除

//查看外键 \G 垂直显示

show create table  库名.表名 \G;

或

shelect * from information_schema.table_constraints where table_name='表名';

//删除外键

alter table 库.表 drop foreign key 外键名;

//添加外键

alter table 库.表 add foreign key(字段名)

references 库.表(字段名)

on update cascade  #同步更新

on delete cascade;  #同步删除

//清空数据,也清空自增长

truncate 库.表

示例:

create table db1.t31(

    -> name char(10) not null ,

    -> class char(7) default "nsd",

    -> likes set("money","game","film","music") not null  default "film,music" );

create  table  db1.t43 (姓名  char(10)  ,  护照   char(18)  unique);

索引相关命令

//在已有表中创建索引

create index 索引名 on 库.表(字段名);

//创建普通索引

create table 库.表(

字段列表,

index(表头名),

index(表头名)

);

//删除索引

DROP INDEX 索引名 ON 库.表;

//查看索引详细信息

show Index from 库.表 \G;

//验证查询是否使用索引

explain select 查询语句;

用户授权相关命令

//创建用户

create user 用户名@"客户端地址" identified  by "密码";

//授予权限

grant 权限列表 on 库名 to 用户名@"客户端地址";

//主要权限列表:

select insert  update  dealet create drop alter

//存储用户权限信息的库mysql 表如下:

user  保存已有的授权用户及用户对所有库的权限

db    保存已有授权用户对某一个库的访问权限

tables_priv  记录已有授权用户对某一张表的访问权限

columns_priv  记录已有授权用户对某一个表头的访问权限

//刷新权限

flush privileges;

权限表示方式:

ALL  所有权限

USAGE 无权限

select,update ...  个别权限

select,update(字段1,字段N) 指定字段权限

客户端地址:

%                所有主机

192.168.88.%      网段内的所有主机

192.168.88.1      固定1台主机

localhost          数据库服务器本机

//备份数据权限

grant select,enent,show databases,lock tables,super,replication client

on *.* to 用户名@"客户端地址" identified  by "密码";

//恢复数据权限

grant insert,update,deletc,create,drop,index,alter,create view,show view,create routine,alter routine,event,trigger on *.* to 用户名@"客户端地址" identified  by "密码";

//撤销权限

revoke 权限列表 on 库名 to 用户名@"客户端地址";

//显示自身访问权限

show grants;

//管理员查看已有授权用户权限

show grants for 用户名@"客户端地址";

//管理员重置授权用户连接密码

set password for 用户名@"客户端地址";

//删除授权用户(必须有管理员权限)

drop user 用户名@"客户端地址";

相关的命令行命令

在MySQL 里执行系统命令 前加system 指令

system 命令

示例:system cp /etc/passwd  /myload/;

导入数据

步骤:

建表->拷贝文件到检索目录->导入数据

load data  infile "/目录名/文件名" into table 库名.表名fields terminated by "分隔符" Lines terminated by "\n";

示例:

system cp /etc/passwd  /myload/;

load data  infile "/myload/passwd" into table db1.user3 fields terminated by ":" lines terminated by "\n" ;

导出数据

select命令 into outfile "/目录名/文件名";

或

select命令 into outfile "/目录名/文件名" fields terminated by ":" lines terminated by "\n" ;

约束

是一种限制,设置在表头上,用来控制表头的赋值

not null 非空 注意:null  Null ""都不同

default  默认值

unique  唯一索引  用于保证该字段的值具有唯一性,可以为空

PRIMARY KEY  主键  用于保证该字段的值具有唯一性并且非空

FOREIGN KEY  外键  用于限制两个表的关系,用于保证该字段的值必须来自于主表的关联列的值,在从表添加外键约束,用于引用主表中的值

Logo

码道开发者社区,聚焦华为云码道 CodeArts 代码智能体,沉淀 Agent、Skill、鸿蒙开发实战内容,供开发者查阅资料、交流技术、分享工程实践

更多推荐