找回密码
 立即注册

推荐阅读

  • 便民服务
  • 关注我们
  • 社区新手
1、查询1832班的成绩信息
select chinese,english,math  from grade where class=1832;
2,查询1833班,语文成绩大于80小于90的成绩信息
select chinese,english,math from grade where class=1833 and chinese>80 and chinese<90;
3,查询学生表中5到10行的数据
select * from grade limit 4,6;
4,显示1832班英语成绩为98,数学成绩为77的姓名与学号,
select sid,name from grade where class=1832 and english=98 and math=77;
5,查询出1832班成绩并且按语文成绩排序(降序)
select chinese,english,math from grade where class=1832 order by chinese desc;
6,查询1833班与1832班,语文成绩与数学成绩都小于80的姓名。
select name from grade where class in(1833,1832) and (chinese<80 and math<80);
select name from grade where (class=1832 or class=1833)and chinese<80 and math <80;
7,查询出没有参加语文考试的学生姓名和班级名称。
select name,class from  grade where chinese is null;
8,求出班上语文成绩不及格的学生姓名
select name from grade where chinese<60 or chinses is null;
9,求出每个班的数学平均成绩
select class,avg(math) from grade group by class;
10、求出每个班级语文成绩总分 --涉及到每个的时候都需要分组
select class,sum(chinese) from grade group by class;
11、将语文成绩不及格的学生成绩改为60分
update grade set chinese=60 where chinese<60 or chinese is null;
12、三科分数都大于70分的人名和年纪
select name,age from grade where chinese>70 and english>70 and math>70;
13、求出英语分数高于70且其它任何一科目大于60分的人和班级
select name,class from grade where english>70 and(chinese>60 or math>60);
14、统计每个班的人数
select class,count(*) from grade group by class;
15、求每个班数学成绩大于80的人数
select class,count(*) from grade where math >80 group by class;
16、求出每个班英语成绩最高的那个人的姓名和班级名称 --每个班英语成
select class,name from grade where (class,english)in(select class,max(english) from grade group by class);




【用户权限】
1).    use mysql; ==》存放数据库的用户
2).     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 "root"@"localhost";

3.刷新加载权限
flush privileges;

4.再次查看权限
show grants for "root"@"localhost";

5.赋权
grant select,update on *.* to "root"@"localhost"identified by '123456';
*.* 表示所有数据库里面的表数据

6.刷新权限
flush privileges;

7.再次查看权限
show grants for "root"@"localhost";

8.移除所有权限
revoke all  on *.* from "root"@"localhost";

9.新建远程用户并赋有所有权限
grant all privileges on *.* to "root"@"%" 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  数据库>/目录/文件名.sql
数据库 这个库备份放到目录下的  文件名.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  cc on aa.id=cc.s_id;
5.硬连接--追加(2个表的字段数量必须相同)


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

分享至 : QQ空间
收藏

0 个回复

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