/dcs18/dcs18.sql 把dcs18这个库备份放到dcs18目录的dcs18.aql文件中","marks":[]}]}],"state":{}},{"type":"block","id":"keMk-1659836478222","name":"paragraph","data":{},"nodes":[{"type":"text","id":"shOQ-1659836478220","leaves":[{"text":"mysql -uroot -p123456 dcs18_bak备份表
create table test like kuan; 创建一个和kuan 一样结构的表
insert into test select * from kuan; 往test 填入kuan 表格里相同数据
insert into test2 (id,name,class) select id,name,class from kuan; 往test2表里面插入kuan 表中的id,name,class字段相对应数据
注意:插入的表必须存在,是新表,没有数据
备份库
mysqldump -uroot -p123456 dcs18>/dcs18/dcs18.sql 把dcs18这个库备份放到dcs18目录的dcs18.aql文件中
mysql -uroot -p123456 dcs18_bak注意:dcs18_bak要先存在
用户权限
use mysql; 进入数据库
select host ,user,password from user;查询有哪些用户
localhost和127.0.0.1表示本地用户 可以通过centos 和xshell 对数据库进行操作
% 代表的是具有远方访问权限的用户 可以通过数据库客户端工具连接操作
1.往user表新增一个dcs18的用户
insert into user(host,user,password)values('localhost','dcs18',password('123456'));
2.show grants for 'dcs18'@'localhost';; 查看是否有权限
3.flush privileges; 加载权限
4. grant select,update on *.* to 'dcs18'@'localhost' identified by '123456'; 开始赋权
*.* 表示所有数据库里面的表的表数据
5.show grants for 'dcs18'@'localhost'; 再次查看权限,具有查询、更新的权限
6.revoke all on *.* from 'dcs18'@'localhost'; 移除本地用户dcs18的所有权限
新建远程用户并赋予所有权限
grant all privileges on *.* to 'dcs18'@'%' identified by '123456';
下载Navicat(老师发在群里的安装包)
进入界面输入注意:
名字自己起,主机填服务器ip地址,下一个是3306,下一个填自己建的那个远程用户名,填密码,再点连接、确定
连接不上的解决办法:
1.确认是否有远程用户
2.在Linux界面停止防火墙,命令: service iptables stop
3.确认启动mysql服务
ctil+q 新建一个窗口
ctrl +w 关闭一个窗口
单行注释: 前面+# 则命令不执行
多行注释:/*内容*/则命令不执行
两个表中字段中的值相同则可以进行链接
1.基本连接取(aa,cc)表交集部分
select * from aa,cc where aa.id=cc.s_id;
2. 内连接:select * from aa inner jion cc on aa.id=cc.s_id;
3.左连接(左边表中数据全部显示,右边表符合条件的显示,不符合条件的则以null 填充,以左边为基准)
4.右连接(右表中的数据全部显示,左表表符合条件显示,不符合条件的则填充null,以右边为基准)
select *from aa RIGHT JOIN cc on aa.id=cc.s_id;
5.硬连接--追加(2张表的字段数量必须相同)
select * from aa
UNION
select * from cc;
求张三成绩
1.临时表
select * from aa,cc where aa.id=cc.s_id;
select t.score from(select * from aa,cc where aa.id=cc.s_id)as t where t.name='zhangsan';
2.基本连接
select cc.score from aa,cc where aa.id=cc.s_id and aa.name='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 aa on aa.id=cc.s_id where cc.score is null;
基本连接+嵌套
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 id not in(select s_id from cc);
|
|