找回密码
 立即注册

推荐阅读

  • 便民服务
  • 关注我们
  • 社区新手
/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);


分享至 : QQ空间
收藏

0 个回复

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