自关联
当where语句里需要一张表与他自己的其他字段相关联时,就需要使用自关联
select node_name from tree ,tree as nt where node_name ="jx" and tree.id=nt.node_id;
查询服务器jx的下一级节点名,只用了一张表,但是实现了查询,自己与自己关联即为自关联
索引
在建表的时候就创建索引
create table t1(
id int not null auto_increment primary key,
name varchar(32),
email varchar(64),
extra text,
index ix_name(name) 索引在创建之前就要先创建要建索引的字段,这与外键的创建相同
)
create index index_name on student(name); 单独创建索引给学生表的name字段
show index from student\G 查看学生表的索引
当然主键也会被列出来
drop index index_name on student; 删除student表的index_name 索引
唯一索引
create unique index ix_name (name) on test(name)
删除唯一索引
alter table test drop ix_name
组合索引
create index idx_name_age on students(name,age);
Ps:组合索引查询时,最左边必须是定义索引时写的第一个字段,当然搜索时也可以只写一个条件
建立索引的作用
索引相当于是目录,当查询的信息量过大时,会出现等待时间过长的问题,因此,建立索引已达到加快查询的目的。
权限
grant select on *.* to rourou@'192.168.1.2' identified by 'QFedu123!'
创建用户rourou,并赋予来源为192.168.1.2的ip的用户登录rourou用户密码为QFedu123!,rourou用户对所有库和表都有查询权限。
当然,在创建赋予权限,如本身没有该用户,就会先创建用户。
revoke create on *.* from rourou@'192.168.1.2 取消rourou用户的创建表的权限
drop user rourou@'192.168.1.2' ; 删除rourou用户。
rename user rourou@'192.168.1.2' to shark@'192.168.1.3' 将rourou用户和来源修改为shark用户
select * from mysql.user where user='rourou'\G 当查询范围为*.*时,使用该命令查询
select * from mysql.db where user='rourou'\G 当查询范围为servers.*时,使用该命令查询
select * from mysql.tables_priv where user='rourou'\G 当查询范围为servers.test时,使用该命令查询
/*将数据读取到内存中,从而立即生效。*/
flush privileges
网友评论