对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_pctFROM employeesWHERE 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 a2WHERE a1.sid=a2.sid AND a1.score>a2.score;

-- 2、查询平均成绩大于60 分的同学的学号和平均成绩select sid,avg(score)FROM sc GROUP BY sidHAVING AVG(score)>60

-- 3、查询所有同学的学号、姓名、选课数、总成绩;SELECT student.sid,sname,COUNT(sc.cid),SUM(score)FROM student INNER JOIN scWHERE student.sid=sc.sidGROUP BY sid;

-- 4、查询姓“刘”的老师的个数;SELECT COUNT(teacher.tName)FROM teacherWHERE tName LIKE "刘%";

--5、查询没学过“李老师”课的同学的学号、姓名;

SELECT student.sid,student.sname

FROM student

WHERE student.sid NOT IN (SELECT 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 sc.sid);

-- 6、查询学过“c001”并且也学过编号“c002”课程的同学的学号、姓名;SELECT t1.sid,t1.snameFROM (SELECT student.sid,student.snameFROM student,scWHERE student.sid=sc.sid AND sc.cid="001") AS t1,(SELECT student.sid,student.snameFROM student,scWHERE student.sid=sc.sid AND sc.cid="002") AS t2WHERE t1.sid=t2.sid;-- 7、查询学过“李老师”所教的所有课的同学的学号、姓名;SELECT student.sid,student.snameFROM teacher,course,sc,studentWHEREteacher.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.snameFROM(SELECT student.sid,student.sname,sc.scoreFROM course,sc,studentWHERE course.cid=sc.cid AND sc.sid=student.sid AND course.cid=002) AS a1,(SELECT student.sid,student.sname,sc.scoreFROM course,sc,studentWHERE course.cid=sc.cid AND sc.sid=student.sid AND course.cid=001) AS a2WHERE a1.score

-- 9、查询所有课程成绩小于60 分的同学的学号、姓名;SELECT student.sid,student.sname,sc.cid,sc.scoreFROM sc,studentWHERE sc.sid=student.sid AND sc.score<60;

-- 10、查询没有学全所有课的同学的学号、姓名;SELECT student.sid,student.snameFROM student INNER JOIN scON student.sid=sc.sidGROUP BY student.sidHAVING COUNT(cid)

mysql 对库中表授权_对mysql数据库的授权和使用AND案例相关推荐

  1. mysql 全库 备份 恢复_从MySQL全库备份中恢复某个库和某张表

    在Mysqldump官方工具中,如何只恢复某个库呢? 全库备份 [root@HE1 ~]# mysqldump -uroot -p --single-transaction -A --master-d ...

  2. 在mysql查询库和表_查询mysql 库和表占的大小

    use information_schema; select concat(round(sum(data_length/1024/1024),2),'MB') as data from tables; ...

  3. mysql新建库和用户linux_Linux环境 Mysql新建用户和数据库并授权

    Linux环境 Mysql新建用户和数据库并授权 发布时间:2020-04-28 21:03:50 来源:51CTO 阅读:1878 作者:dnuser #mysql -u root -p 2.新增用 ...

  4. mysql到mysqli转变表_利用mysql和mysqli取得mysql的所有数据库和库中的所有表

    /*** mysqli  op mysql demo*//***公用函数*//***功能:列出一个数据库的所有表*@param$dbname*@param$con*/functionlist_tabl ...

  5. mysql修改user表密码_修改MySQL数据库中表的用户名和密码

    原有网站账号密码忘记了,用第一种方法解决的,感觉直观快速安全. 方法一 使用phpmyadmin,这是最简单的了,修改mysql库的user表, 不过别忘了使用PASSWORD函数. 方法二 使用my ...

  6. MySQL 一个库中表数量是否有限制?

    在网上找了一下,有说几乎没有限制的,也有说表多了肯定会影响性能的,综合起来应该讲: 1)一个库中表数是有限制的, 按照 UNSIGNED 类型,最多42亿多一点,正常应用根本达不到. 2)文件系统对同 ...

  7. mysql是如何管理数据_【MySQL】如何管理数据库

    MySQL作为一款数据库管理系统(DataBase Management System,DBMS)软件,可以管理多个数据库.本文,主要讲述如何对一个数据库进行一系列的"增.删.改.查&quo ...

  8. mysql 自动化运维工具_部署MySQL自动化运维工具inception+archer

    *************************************************************************** 部署MySQL自动化运维工具inception+ ...

  9. linux备份mysql需要暂停服务吗_【MySQL运维】线上MySQL数据库停服迁移流程

    一.数据备份与恢复阶段,选在凌晨1点进行操作,暂停服务进行备份(允许停服2个小时) 1.首先停止Nginx服务,并且修改数据库用户密码,防止还有新的连接进来 2.杀掉某个用户所有进程 for i in ...

最新文章

  1. oracle ssh测试不通过,ssh 连接不上 oracle linux 7.2
  2. pyqt5-两个窗口之间相互显示隐藏
  3. crm创建启用停用用户
  4. 微信小程序实现商品数量加减案例
  5. debian9 linux的版本,Debian 9.4 发布,小版本更新
  6. 帮你整理了1000套实习报告模板,快快收藏
  7. 计算机二级题百度云,题库吧百度_计算机二级 office 题库 百度云 谢谢_淘题吧
  8. 玩转流量,天下无锅——IT运维人员的九阳神功(上)| 技术分享
  9. Mac安装双系统的那些坑
  10. Android你不知道的svc命令----解析adb shell svc源码
  11. redis 错误 Error reply to PING from master: '-DENIED Redis is running in protected mode because prote
  12. HTML模拟电池页面,Html 电池图标
  13. 《地平线:零之曙光》——游戏体验和主观评价
  14. 用css和HTML做loding小动画
  15. cmake(13):构建时设置预处理宏定义以及add_compile_definitions命令详解
  16. RxJava 与 Retrofit 结合的最佳实践
  17. Python 视频转换为图片 与 图片转换为视频
  18. Chrome浏览器中清除特定网站的Cookie数据
  19. 平头哥RVB2601开发板实现LED彩灯
  20. 2021全球与中国自动导引车市场现状及未来发展趋势

热门文章

  1. python函数编程实战_(转)函数式编程实战教程(Python版)
  2. wpf 360软件管家_软件管家对比及推荐,避免全家桶的坑
  3. Apache Flink 零基础入门(二十)Flink部署与作业的提交
  4. 深入理解javascript原型和闭包(5)——instanceof
  5. 秀,用NBA球员数据学透K-Means聚类
  6. Python中令人头疼的变量作用域问题,终于弄清楚了
  7. 爱了!爱了!Markdown 必备组合神器!
  8. 大厂面试又崩了?这份CV资料请收好!
  9. 大小仅1MB,超轻量级通用人脸检测模型登上GitHub趋势榜
  10. python字典赋值方法_python如何给字典的键对应的值为字典项的字典赋值