mysql 对库中表授权_对mysql数据库的授权和使用AND案例
对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案例相关推荐
- mysql 全库 备份 恢复_从MySQL全库备份中恢复某个库和某张表
在Mysqldump官方工具中,如何只恢复某个库呢? 全库备份 [root@HE1 ~]# mysqldump -uroot -p --single-transaction -A --master-d ...
- 在mysql查询库和表_查询mysql 库和表占的大小
use information_schema; select concat(round(sum(data_length/1024/1024),2),'MB') as data from tables; ...
- mysql新建库和用户linux_Linux环境 Mysql新建用户和数据库并授权
Linux环境 Mysql新建用户和数据库并授权 发布时间:2020-04-28 21:03:50 来源:51CTO 阅读:1878 作者:dnuser #mysql -u root -p 2.新增用 ...
- mysql到mysqli转变表_利用mysql和mysqli取得mysql的所有数据库和库中的所有表
/*** mysqli op mysql demo*//***公用函数*//***功能:列出一个数据库的所有表*@param$dbname*@param$con*/functionlist_tabl ...
- mysql修改user表密码_修改MySQL数据库中表的用户名和密码
原有网站账号密码忘记了,用第一种方法解决的,感觉直观快速安全. 方法一 使用phpmyadmin,这是最简单的了,修改mysql库的user表, 不过别忘了使用PASSWORD函数. 方法二 使用my ...
- MySQL 一个库中表数量是否有限制?
在网上找了一下,有说几乎没有限制的,也有说表多了肯定会影响性能的,综合起来应该讲: 1)一个库中表数是有限制的, 按照 UNSIGNED 类型,最多42亿多一点,正常应用根本达不到. 2)文件系统对同 ...
- mysql是如何管理数据_【MySQL】如何管理数据库
MySQL作为一款数据库管理系统(DataBase Management System,DBMS)软件,可以管理多个数据库.本文,主要讲述如何对一个数据库进行一系列的"增.删.改.查&quo ...
- mysql 自动化运维工具_部署MySQL自动化运维工具inception+archer
*************************************************************************** 部署MySQL自动化运维工具inception+ ...
- linux备份mysql需要暂停服务吗_【MySQL运维】线上MySQL数据库停服迁移流程
一.数据备份与恢复阶段,选在凌晨1点进行操作,暂停服务进行备份(允许停服2个小时) 1.首先停止Nginx服务,并且修改数据库用户密码,防止还有新的连接进来 2.杀掉某个用户所有进程 for i in ...
最新文章
- oracle ssh测试不通过,ssh 连接不上 oracle linux 7.2
- pyqt5-两个窗口之间相互显示隐藏
- crm创建启用停用用户
- 微信小程序实现商品数量加减案例
- debian9 linux的版本,Debian 9.4 发布,小版本更新
- 帮你整理了1000套实习报告模板,快快收藏
- 计算机二级题百度云,题库吧百度_计算机二级 office 题库 百度云 谢谢_淘题吧
- 玩转流量,天下无锅——IT运维人员的九阳神功(上)| 技术分享
- Mac安装双系统的那些坑
- Android你不知道的svc命令----解析adb shell svc源码
- redis 错误 Error reply to PING from master: '-DENIED Redis is running in protected mode because prote
- HTML模拟电池页面,Html 电池图标
- 《地平线:零之曙光》——游戏体验和主观评价
- 用css和HTML做loding小动画
- cmake(13):构建时设置预处理宏定义以及add_compile_definitions命令详解
- RxJava 与 Retrofit 结合的最佳实践
- Python 视频转换为图片 与 图片转换为视频
- Chrome浏览器中清除特定网站的Cookie数据
- 平头哥RVB2601开发板实现LED彩灯
- 2021全球与中国自动导引车市场现状及未来发展趋势
热门文章
- python函数编程实战_(转)函数式编程实战教程(Python版)
- wpf 360软件管家_软件管家对比及推荐,避免全家桶的坑
- Apache Flink 零基础入门(二十)Flink部署与作业的提交
- 深入理解javascript原型和闭包(5)——instanceof
- 秀,用NBA球员数据学透K-Means聚类
- Python中令人头疼的变量作用域问题,终于弄清楚了
- 爱了!爱了!Markdown 必备组合神器!
- 大厂面试又崩了?这份CV资料请收好!
- 大小仅1MB,超轻量级通用人脸检测模型登上GitHub趋势榜
- python字典赋值方法_python如何给字典的键对应的值为字典项的字典赋值