对mysql数据库的授权和使用AND案例
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了对mysql数据库的授权和使用AND案例,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含4690字,纯文字阅读大概需要7分钟。
内容图文
![对mysql数据库的授权和使用AND案例](/upload/InfoBanner/zyjiaocheng/870/b5e64c4acaac4c3b877869aaa0ed4737.jpg)
对mysql数据库的授权和使用
权限:
create user 'guest'@'ip地址' identified by '123' //ipconfig
授权:
grant 权限的具体使用 on.to 用户名@ip地址 identified by ''密码''
grant select,insert on . to guest@ip地址identified by '123'
例子:
CREATE USER 'whw'@'172.20.38.18' IDENTIFIED BY '147258';
GRANT SELECT,INSERT ON . TO whw@172.20.38.18;
撤销权限:revoke all on . from 'whw'@'172.20.38.18;
子查询
为了给主查询(外部查询)提供数据而首先执行的查询(内部查询)被叫做子查询。
某些情况下,当进行一个查询时,需要的条件或数据要用另外一个 select 语句的结果
1 where 型子查询
where型子查询即把内层sql语句查询的结果作为外层sql查询的条件.
-
子查询要包含在括号内。
-
建议将子查询放在比较条件的右侧。
-
单行操作符对应单行子查询,多行操作符对应多行子查询。
-
单行操作符 右边子查询必须返回的是单个值,单行比较运算符(=,>,>=,<,<=,<>)
-
多行操作符 右边子查询可以返回多行,但必须是单列,ALL, ANY,IN 其中,ALL和ANY运算符必须与单行比较运算符(=,>,>=,<,<=,<>)结合使用
IN:等于任何一个
ALL:和子查询返回的所有值比较。例如:sal>ALL(1,2,3)等价于sal>1 && sal>2 && sal>3,即大于所有。
ANY:和子查询返回的任意一个值比较。例如:sal>ANY(1,2,3)等价于sal>1 or sal>2 or sal>3,即大于任意一个就可以。
EXISTS:判断子查询是否有返回结果(不关心具体行数和内容),如果返回则为TRUE,否则为FALSE。
2 from型子查询
from型子查询即把内层sql语句查询的结果作为临时表供外层sql语句再次查询
3 exists型子查询:
表中需要的数据是否存在或有历史记录
4 复制表子查询(了解)
(1)复制表
(1)拷贝表结构
CREATE TABLE newadmin LIKE admin;
(2)拷贝表结构和数据(但约束与索引除外)
CREATE TABLE newadmin AS ( SELECT * FROM admin ) ;
(3)拷贝表结构+数据
CREATE TABLE newadmin LIKE admin; INSERT INTO newadmin SELECT * FROM admin;
(4)跨数据库拷贝表
CREATE TABLE newadmin LIKE shop.admin; CREATE TABLE newshop.newadmin LIKE shop.admin;
(5)拷贝一个表中其中的一些字段(指定新名),其中一些数据
CREATE TABLE newadmin AS ( SELECT id, username AS uname, password AS pass FROM admin WHERE id<10 ) ;
(6)在创建表的同时定义表中的字段信息。
create table tt ( eid int primary key auto_increment ) as ( select employee_id as eid,first_name,last_name,email from employees );
(2)复制数据
在 INSERT 语句中加入子查询。 不必书写 VALUES 子句。 子查询中的值列表应与 INSERT 子句中的列名对应。 INSERT INTO emp2 SELECT * FROM employees WHERE department_id = 90; 或 INSERT INTO sales_reps(id, name, salary, commission_pct) SELECT employee_id, last_name, salary, commission_pct FROM employees WHERE job_id LIKE '%REP%';
案例
老师表
课程表
学生表
成绩表
-- 1、查询“c001”课程比“c002”课程成绩高的所有学生的学号; SELECT * FROM(SELECT sid,score FROM sc WHERE cid=001) AS a1, (SELECT sid,score FROM sc WHERE cid=002) AS a2 WHERE a1.sid=a2.sid AND a1.score>a2.score;
-- 2、查询平均成绩大于60 分的同学的学号和平均成绩 select sid,avg(score) FROM sc GROUP BY sid HAVING AVG(score)>60
-- 3、查询所有同学的学号、姓名、选课数、总成绩; SELECT student.sid,sname,COUNT(sc.cid),SUM(score) FROM student INNER JOIN sc WHERE student.sid=sc.sid GROUP BY sid;
-- 4、查询姓“刘”的老师的个数; SELECT COUNT(teacher.tName) FROM teacher WHERE tName LIKE "刘%";
--5、查询没学过“李老师”课的同学的学号、姓名; SELECT student.sid,student.sname FROM student WHERE student.sid NOT IN (SELECT dis student.sid FROM teacher,course,sc,student WHERE teacher.tid=course.tid AND course.cid=sc.cid AND sc.sid=student.sid AND teacher.tName="李老师" GROUP BY student.sid);
-- 6、查询学过“c001”并且也学过编号“c002”课程的同学的学号、姓名; SELECT t1.sid,t1.sname FROM ( SELECT student.sid,student.sname FROM student,sc WHERE student.sid=sc.sid AND sc.cid="001") AS t1, (SELECT student.sid,student.sname FROM student,sc WHERE student.sid=sc.sid AND sc.cid="002") AS t2 WHERE t1.sid=t2.sid; -- 7、查询学过“李老师”所教的所有课的同学的学号、姓名; SELECT student.sid,student.sname FROM teacher,course,sc,student WHERE teacher.tid=course.tid AND course.cid=sc.cid AND sc.sid=student.sid AND teacher.tName="李老师" GROUP BY sc.sid;
-- 8、查询课程编号“c002”的成绩比课程编号“c001”课程成绩低的所有同学的学号、姓名; SELECT a1.sid,a1.sname FROM (SELECT student.sid,student.sname,sc.score FROM course,sc,student WHERE course.cid=sc.cid AND sc.sid=student.sid AND course.cid=002) AS a1, (SELECT student.sid,student.sname,sc.score FROM course,sc,student WHERE course.cid=sc.cid AND sc.sid=student.sid AND course.cid=001) AS a2 WHERE a1.score<a2.score GROUP BY a1.sid;
-- 9、查询所有课程成绩小于60 分的同学的学号、姓名; SELECT student.sid,student.sname,sc.cid,sc.score FROM sc,student WHERE sc.sid=student.sid AND sc.score<60;
-- 10、查询没有学全所有课的同学的学号、姓名; SELECT student.sid,student.sname FROM student INNER JOIN sc ON student.sid=sc.sid GROUP BY student.sid HAVING COUNT(cid)<(SELECT COUNT(cid) FROM course);
内容总结
以上是互联网集市为您收集整理的对mysql数据库的授权和使用AND案例全部内容,希望文章能够帮你解决对mysql数据库的授权和使用AND案例所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。