找回密码
 立即注册

推荐阅读

  • 便民服务
  • 关注我们
  • 社区新手
【用户权限】
use mysql; ==》存放数据库的用户
select host,user,password from user; ==》查看user表中有哪些用户
localhost和127.0.0.1 表示是本地用户==可以通过centos跟xshell对数据库进行操作的用户
% 代表的是具有远程访问权限的用户==》可以通过数据库客户端工具进行连接操作

1.往user表中新增一个dcs11的用户
insert into user(host,user,password)values("localhost","dcs11",password('123456'));
2.查看是否有权限
show grants for "dcs11"@"localhost";
3.刷新加载权限
flush privileges;
4.再次查看权限
show grants for "dcs11"@"localhost";
5.赋权
grant select,update on *.* to "dcs11"@"localhost"identified by '123456';
*.* 表示所有数据库里面的表数据
6.刷新权限
flush privileges;
7.再次查看权限
show grants for "dcs11"@"localhost";
8.移除所有权限
revoke all  on *.* from "dcs11"@"localhost";

新建远程用户并赋有所有权限
grant all privileges on *.* to "dcs11"@"%" identified by '123456';

删除本地用户dcs11
delete from user where user="dcs11" and host="localhost";

【备份】
create table test1 like test; ==》创建test1表,表结构跟test表一致
insert into test1 select * from test; ==》往test1里面插入test表中所有数据
insert into test2(name,class)select name,class from test;
注意:
1.插入的表必须存在;2.插入的表是新表,没有数据;

备份库--(linux界面操作)
mysqldump -uroot -p123456 dcs11>/dcs11/dcs11.sql
把dcs11这个库备份放到dcs11目录下的dcs11.sql文件中
mysql -uroot -p123456 dcs11_bak< /dcs11/dcs11.sql
把dcs11目录下的dcs11.sql文件还原到dcs11_bak这个库中
注意:dcs11_bak要先存在

连接不上:
1.用户是否有远程访问权限
进行赋权:grant all privileges on *.* to "root"@"%" identified by '123456';
2.关闭防火墙(linux界面操作 )
service iptables stop
3.检查mysql服务是否开启
service mysqld start

navicat的使用
ctrl+q 新建一个窗口
ctrl+w关闭一个窗口
单行注释:用#号 被注释的sql语句不会被执行
多行注释:/*注释内容*/

两个表当中字段的值相同时则可以进行拼接;
1.普通连接(取aa,cc两表交集部分)
select * from aa,cc where aa.id=cc.s_id;

2.内连接
select * from aa INNER JOIN cc on aa.id=cc.s_id;

3.左连接(左边表中数据全部显示,右边表符合条件的显示,
不符合条件的则填充null,以左表为基准)
select * from aa LEFT JOIN cc on aa.id=cc.s_id;

4.右连接(右边表中数据全部显示,左表符合条件的显示,
不符合条件的则填充null,以右表为基准)
select * from aa RIGHT JOIN cc on aa.id=cc.s_id;
5.硬连接--追加(2个表的字段数量必须相同)

求张三的成绩
1.基本连接
select aa.name,cc.score from aa,cc where aa.id=cc.s_id and aa.name="zhangsan";

2.临时表
select t.name,t.score from(select * from aa,cc where aa.id=cc.s_id) as t WHERE t.name="zhangsan";
3.嵌套方法"=" (=和in的区别,=只能是一个值,in后面可以是多个值)
select id from aa where name="zhangsan";--先求出学号
select score from cc where cc.s_id=(select id from aa where name="zhangsan");

嵌套方法"in"
select score from cc where cc.s_id in(select id from aa where name="zhangsan");


求谁没参加考试?
第一种方法左连接
select aa.name from aa LEFT JOIN cc on aa.id=cc.s_id where score is null;

第二种方法右连接
select name from cc RIGHT JOIN aa on aa.id=cc.s_id where score is null;

第三种方法基本连接+嵌套
select id from aa,cc where aa.id=cc.s_id; ==》先求出已参加考试学号
SELECT name from aa where aa.id not in(select id from aa,cc where aa.id=cc.s_id);

第四种嵌套
SELECT name from aa where aa.id not in(select s_id from cc);


【处理mysql数据库中文乱码的问题】
1. vim /etc/my.cnf ===>编辑数据库的配置文件
2.加入这个character_set_server=utf8
3.重启数据库service mysqld restart
4.在navicat--编辑数据选项种 把属性修改为utf-8编码格式


分享至 : QQ空间
收藏

0 个回复

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