#移除主键时需要先解除递增,才能解除主键

alter table info modify id int null , drop PRIMARY key

一.用户权限
1.创建用户
create user 'hanshe'@'127.0.0.1' IDENTIFIED by '123'; -- 创建用户
2.移除用户
drop user 'hanshe'@'127.0.0.1' ; -- 移除用户
3.修改用户
RENAME user 'hanshe'@'127.0.0.1' to 'hanxiaoqiang'@'192.168.0.1' -- 修改用户
4.查看授权
show GRANTS for 'hanshe'@'127.0.0.1';-- 查看用户 权限
5.授权
GRANT select,update ON db1.info to 'hanshe'@'127.0.0.1';-- 授权
GRANT all PRIVILEGES on *.* to 'hanshe'@'127.0.0.1'; -- 授权所有权限
6.移除授权
REVOKE all PRIVILEGES on *.* FROM 'hanshe'@'127.0.0.1'; -- 移除权限
7.开放外部访问权限

create user 'test'@'%' identified by '123';

GRANT all PRIVILEGES on *.* to 'test'@'%';

FLUSH PRIVILEGES; -- 刷新权限

二.修改用户密码
1.方式一:使用 mysqladmin 命令
mysqladmin -u用户名 -p原密码 password 新密码;

2.方式二:直接设置密码
set password for 'hanshe'@'%' = password('166')

3.方式三: 直接修改
update mysql.user set password = password('123') where user ='hanshe' and host ='%'

flush PRIVILEGES;
5.7 版本
update mysql.user set authentication_string = password('123') where user ='hanshe' and host ='%';

flush PRIVILEGES;

三.忘记密码怎么办(本地使用数据库)
1.关闭mysql服务
2.重新启动mysql服务并跳过权限表
3.直接通过mysql登录
4.修改密码
5.刷新

四单表查询
1.聚合函数
select sum(name),avg(age),max(age),min(age),count(name) FROM person;

2.分组
select sum(salary),dept_id from person GROUP BY dept_id

select sum(salary) as w ,dept_id from person GROUP BY dept_id HAVING w >20000

-- 查询每个部门的平均薪资 并且看看这个部门的员工都有谁?
select avg(salary),dept_id,GROUP_CONCAT(name) from person GROUP BY dept_id

#查询平均薪资大于10000的部门, 并且看看这个部门的员工都有谁?

select avg(salary),dept_id,GROUP_CONCAT(name) from person GROUP BY dept_id HAVING
avg(salary) >10000

3.分页

select * from person LIMIT 8,4
ps: limit (起始条数),(查询多少条数);

4.SQL 语句关键字的执行顺序

执行顺序: FROM -> WHERE -> GROUP BY -> HAVING -> SELECT -> ORDER BY ->limit 

五. 多表联合查询
select * from person p,dept d where p.dept_id = d.did -- 笛卡尔乘积
-- 多表联合查询
-- select * from person p,dept d where p.dept_id = d.did -- 笛卡尔乘积

-- -- 左连接查询
-- select * from person LEFT JOIN dept on person.dept_id = dept.did;
--
-- -- 右连接查询
-- select * from person RIGHT JOIN dept on person.dept_id = dept.did;
--
-- -- 内连接查询
-- select * from person INNER JOIN dept on person.dept_id = dept.did;

-- 全连接
select * from person LEFT JOIN dept on person.dept_id = dept.did
UNION
select * from person RIGHT JOIN dept on person.dept_id = dept.did;

select * from person LEFT JOIN dept on person.dept_id = dept.did
UNION all
select * from person RIGHT JOIN dept on person.dept_id = dept.did;

六、 复杂条件查询
-- 1. 查询出 教学部 年龄大于20岁,并且工资小于4000的员工,按工资倒序排列.
-- (要求:分别使用多表联合查询和内连接查询)

select did from dept where dname ='教学部';

select * from person where age>20 and
dept_id =(select did from dept where dname ='教学部') and salary <10000 ORDER by salary DESC

-- 2.查询每个部门中最高工资和最低工资是多少,显示部门名称

select MAX(salary),min(salary),dname from person
LEFT JOIN dept ON person.dept_id = dept.did GROUP BY dept_id

七.子语句查询
1.使用结果集作为表名查询
select * from (SELECT * from person) as aaa

-- 2.求最大工资那个人的姓名和薪水

select max(salary) from person;

select* from person where salary = (select max(salary) from person);

-- 3. 求工资高于所有人员平均工资的人员

select avg(salary) from person;

select * from person where salary >(select avg(salary) from person)

MySQL:数据库入门篇2的更多相关文章

  1. MySQL:数据库入门篇5

    1.存储引擎 innodb与MyIASM存储引擎的区别: 1.innodb 是mysql5.5版本以后的默认存储引擎, 而MyISAM是5.5版本以前的默认存储引擎. 2.innodb 支持事物,而M ...

  2. Jmeter测试Mysql数据库-入门篇

    一.jmter配置数据库 1.在配置jmter之前需要先安装数据库连接池驱动,进入到官方下载页面https://dev.mysql.com/downloads/connector/j/,下载对应的驱动 ...

  3. MySQL:数据库入门篇3

    1.sql语句逻辑执行顺序 (7) SELECT (8) DISTINCT <select_list> (1) FROM <left_table> (3) <join_t ...

  4. MySQL数据库入门到高薪培训教程(从MySQL 5.7 到 MySQL 8.0)

    一.MySQL数据库入门到高薪培训视频教程(从MySQL5.7到MySQL8.0) 本套MySQL学习教程地址: https://edu.51cto.com/course/18034.html 为满足 ...

  5. MySQL数据库扫盲篇

    MySQL数据库扫盲篇 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任.   一.MySQL概述 1>.什么是MySQL MySQL是瑞典的MySQL AB公司开发的一个可用于各 ...

  6. MySQL数据库入门备份数据库

    MySQL数据库入门——备份数据库   一提到数据,大家神经都会很紧张,数据的类型有很多种,但是总归一点,数据很重要,非常重要,因此,日常的数据备份工作就成了运维工作的重点中的重点的重点....... ...

  7. MySQL数据库入门多实例配置

    MySQL数据库入门——多实例配置 前面介绍了相关的基础命令操作,所有的操作都是基于单实例的,mysql多实例在实际生产环境也是非常实用的,因为必须要掌握 1.什么是多实例 多实例就是一台服务器上开启 ...

  8. MySQL数据库入门常用基础命令

    MySQL数据库入门———常用基础命令      数据——公司的生命线,因此在大多数的互联网公司,都在使用开源的数据库产品,MySQL也因此关注度与使用率非常的高,所以做为运维的屌丝们,掌握它的一些基 ...

  9. MySQL数据库入门笔记

    2 数据库入门 2.1引入 数据保存到内存: 优点: 1)读写非常快 缺点: 1)程序关闭导致数据丢失 数据保存到文件: 优点: 1)数据可以永久保存 缺点: 1)频繁地IO操作,效率不高! 2)数据 ...

随机推荐

  1. PIE SDK元素的保存与打开

    1.功能简介 绘制元素之后需要对元素进一步的保存操作,可以利用PIE SDK的ExportElementsCommand命令保存成xml格式的文件,打开元素可以利用ImportElementsComm ...

  2. VUE 日历签到

    <style lang="scss"> @import "../assets/css/px2rem.scss"; .sign-box { width ...

  3. SpringCloud---服务治理---Spring Cloud Eureka

    1.概述 1.1 Spring Cloud Eureka是Spring Cloud Netflix微服务套件中的一部分,基于Netflix Eureka做了二次封装,主要负责完成微服务架构中的服务治理 ...

  4. elasticsearch 2.4.0执行update的时候发现的一个问题

    请关注inline参数的变化 正确: POST /test/type1/1/_update{ "script" : { "inline": "ctx. ...

  5. xss攻击汇总--转

    (1)普通的XSS JavaScript注入<SCRIPT SRC=http://3w.org/XSS/xss.js></SCRIPT>(2)IMG标签XSS使用JavaScr ...

  6. BNU29064——硬币水题II——————【事件概率】

    硬币水题II Time Limit: 1000ms Memory Limit: 65536KB 64-bit integer IO format: %lld      Java class name: ...

  7. UML建模—EA创建Use Case(用例图)

    用例图主要用来描述“用户.需求.系统功能单元”之间的关系.它展示了一个外部用户能够观察到的系统功能模型图. 1.新建用例图 2.用例图工具: 3.一个简单用例: 用例图所包含的元素如下: 1. Act ...

  8. .net 金额中文大写 日期转中文

    金额中文大写 #region 中文大写 /// <summary> /// 返回中文数字 ,如壹佰元整 /// </summary> /// <param name=&q ...

  9. Android界面编程--使用活动条(ActionBar)--通过ActionBar菜单改变TextView的字体和颜色

    android:orientation="vertical"(AndroidStudio不提示,这个要记住了) 昨天好不容易把ActionBar从溢出菜单overflow中弄出来了 ...

  10. jsp的动作标签

    常用的标签: 1. forward   请求转发 [基本不使用] <==> request.getRequestDispatcher(url).forward(request,respon ...