找回密码
 立即注册

推荐阅读

  • 便民服务
  • 关注我们
  • 社区新手
备份表,
create table test like user 创建一个test表 表结构跟user一样
insert into test select * from user 往test表插入 user表中所有的数据
insert into test2(id,name,class) select id,name,class from user
往test2表里插入user表中的 id name class字段对应的数据。
注意,你要插入的这张表要存在。插入的表是新表,没有数据

备份库
mysqldump -uroot -p dcs18>/dcs18/dcs18.sql
把dcs18这个库备份放到dcs18目录的dcs18.sql文件
mysql -uroot -p dcs18_bak</dcs18/dcs18.sql
把dcs18目录下的dcs18.sql文件还原到dcs18_bak这个数据库中
注意(dc18_bak要先存在,不然会找不到对应的库)

用户权限
use mysql;进入数据库
select host ,user,password from user; 查询有哪些用户
locslhost 和 127.0.0.1表示本地用户 ,可以通过centos 和xshell对数据库进行操作的用户
%代表是具有远程访问权限的用户 ,可以通过数据库客户端工具进行连接操作

1.往user表新增一个dcs18用户
insert into user (host ,user)values('localhost','dcs18');
2.show grants for 'dcs18@localhost'; 查看是否有权限
报如下错没有权限
ERROR 1141 (42000): There is no such grant defined for user 'dcs18@localhost' on host '%'
3.flush privileges;加载权限
4.grant select,update on *.* to 'dcs18'@'localhost' ;表示所有数据库里面的表的数据
5.show grants for 'dcs18'@'localhost';再次查看权限,具有查询,更新的权限;
6.revoke all on *.* from'dcs18'@'localhost';移除本地用户dcs18的所有权限

新建一个远程用户并赋予所有权限
grant all privileges on *.* to 'dsc18'@'%' ;


delete from user where user='dcs18' and host='localhost';
update user set password=password(‘123456’)where user =‘root’;修改root·的所有密码

连接不上;
1.用户是否具有远程访问权限;
2.关闭防火墙;
service iptables stop;
3.检查mysql服务是否启动
service mysqld start

ctrl+q新建一个窗口
ctrl+w关闭一个窗口
#单行注释
/* */多行注释


两个表中字段的值相同时则可以进行拼接
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张表的字段数量必须相同)
select *from aa union select*from bb;

求zhangsan的成绩
1.临时表
SELECT t.score FROM(SELECT*FROM aa,cc WHERE aa.id=cc.s_id) AS t where NAME='zhangsan';
2.基本连接
SELECT cc.score FROM aa,cc WHERE aa.id=cc.s_id and aa='zhangsan';
3.嵌套方式(=和in的区别,=只能是一个值,in后面可以是多个值)
SELECT id from aa where name ='zhangsan';先求出学号
select  score from cc where s_id =(SELECT id from aa where name ='zhangsan');
嵌套‘in’
select score from cc where 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 cc.score is null;
右连接
SELECT aa .name  from cc right JOIN cc on aa.id=cc.s_id where cc.score is null ;
基本连接+嵌套
select *from aa where aa.id not in(select *from aa,cc where aa .id =cc.s_ id );
嵌套
select  *from aa where id not in(select s_id  from cc );

分享至 : QQ空间
收藏

0 个回复

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