找回密码
 立即注册

推荐阅读

  • 便民服务
  • 关注我们
  • 社区新手

flush privileges; 刷新

create table +表1 like +表2 备份表,创建某个相同的表

%:代表当前用户具备远程访问权限

localhost:本地权限

use MySQL:查看用户信息

grant all privileges on *.* to 'root'@'%'identified by'123456'; 给root用户赋予百分号远程访问

create table grade1 like grade;备份表结构,吧grade表备份一份名臣叫grade1 ,只能备份表的结构不能备份表的数据

insert into grade1 select * from grade;两个表结构是一样的,此命令把grade的所有数据备份到grade1中,

insert into grade1(name,age) select name,age from grade;把grade表中的某几个字段备份到grade1中;

mysqldump -uroot -p dcs63>dcs63.sql; 把dcs63这个数据库备份一份,取名称为dcs63.sql 名称可自定义取

MySQL -uroot -p dcs<dcs63.sql 把dca63数据库表还原到dcs数据库中

insert into user(host,user,password)values('localhost','wang',password('123456'));新创建一个用户

grant create,select,update,delete,drop on *.* to 'wang'@'localhost' identified by'123456'; 给wang这个用户赋予相关的表结构和数据的操作权限

revoke all on*.* from 'wang'@'localhost';取消wang这个用户的所有操作权限

show grants for 'wang'@ localhost';查询当前wang这个用户,得到结果是此用户没有任何操作权限

delete from user where user='wang' and host='localhost';删除'wang'的这个用户

如果连接:Navicat 出现无法连接的情况解决办法

1、service mysqld restart 数据库重启

2、service iptables stop 防火墙关闭一下

3、检查一个你当前的用户有没有%(远程访问的权限)

如果没有就去添加%权限


连接工具需要的信息:1、IP或者域名

2、端口MYSQL 3306 -3309

3、账号

4、密码(如果此账号没有密码,则不需要输入)


1、use mysql 进入到Mysql数据库中

2、可以给user用户表增加用户

此命令意思是:新增加一个用户名称是wang,只具备本地访问权限

localhost,且密码默认是123456

insert into user (host,user,password)values('localhost','wang',password('123456'));

新创建的用户是没有对数据库操作的权限,如果要进入此用户

mysql -uwang -p 回车(没有设置密码就不需要输入密码)

3、创建用户后需要刷新下:flush privileges;

4、grant create,insert,select,update,delete,drop on *.* to 'wang'@'localhost' identified by '123456'

此命令的意思是:当前wang这个用户可以拥有对表数据的增删改查,结构的创建和删除


上班工作后:如果用数据库且你不是骨干,你的领导可能只会给到你

一个唯一的权限那么就是:select * from


5、grant all privileges on *.* to 'dcs'@'%' identified by '123456';

此命令的意思:如果你要链接其它工具,且需要远程访问权限的时候

当前命令就可以使用。

创建一个用户且此用户是拥有远程访问的权限

6、show grants for 'wang'@'localhost';

查看一下当前姓wang的用户拥有的权限 :GRANT SELECT, UPDATE, DELETE, CREATE, DROP ON *.* TO

查询出来后表示wang这个用户拥有这么多操作权限


7、revoke all on *.* from 'wang'@'localhost';//取消所有权限

8、delete from user where user='wang' and host='localhost';

把姓wang的这个用户进行删除掉,删除后此用户不存在

9、update user set password=password('123456') where user='root';

把user表中的root用户的密码,改为123456


1.多表 (重点,有哪些连接方法(面试中:多表查询))

2.主键,外键等约束

3.视图,索引

4.存储过程

sql==测试;select from (一个表查询,二个表查询,三个表查询,,,)

多表连接的要素一定要满足一个要求就是:两张表中必须要有相同的字段属性

1、内连接 inner join on

select * from aa inner join cc on aa.id=cc.s_id;

1001,张三 1002,李四 =aa表

1001,90 =cc表

select * from cc inner join aa on aa.id=cc.s_id;

把aa表和cc表进行关联,两表中id是相同,所以允许连接

注意:内连接连接后显示的规则是:

两两为真,显示真 1001,张三 ,1001,90 (1002不显示)

一真一假,不显示 都不显示

一假一真,不显示

两两为假,不显示


2、左连接left join on

select * from aa left join cc on aa.id=cc.s_id;

select * from cc left join aa on aa.id=cc.s_id;

左连接就是以左表为主表(from 后面是左, join后面是右)

注意:如果主表数据多于右表,那么左表显示正常所有,右表少的值自动补齐Null

如果主表数据小于右表,那么只显示相同的值,右边不相同的值不显示


3、右链接right join on

select * from aa right join cc on aa.id=cc.s_id;

select * from cc right join aa on aa.id=cc.s_id;

右链接就是以右表为主表 (from 后面是左, join后面是右)

注意:如果右表主表的数据是多于子表左表,那么显示的结果是以

右表有准右表全部显示,左表少的值自动补Null

如果右表主表的数据是小于子表左表,那么显示的结果是以

右表和左表相同的字段,不相同的字段不显示


4、基本连接(使用的比较多)

select * from aa,cc where aa.id=cc.s_id;

select * from cc,aa where aa.id=cc.s_id;

from后面是主表,逗号后面是子表

基本链接方法:只显示相同字段,非相同字段不显示(可以参考内连接)


5、union连接

select * from aa union select * from cc;

把两个表进行竖向显示连接起来,两个表必须要有相同的字段数量


求出张三的 成绩

select * from aa; #姓名表

select * from cc; #成绩表

#常规写法

#左连接,右连接一样

select * from aa left join cc on aa.id=cc.s_id where name='zhangsan';

select score from aa left join cc on aa.id=cc.s_id where name='zhangsan';

#基本连接

select * from aa,cc where aa.id=cc.s_id;

select * from aa,cc where aa.id=cc.s_id and name='zhangsan';

select score from aa,cc where aa.id=cc.s_id and name='zhangsan';

分享至 : QQ空间
收藏

0 个回复

您需要登录后才可以回帖 登录 | 立即注册