博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

mysql 学习笔记

Posted on 2019-08-25 19:29  追风0315  阅读(140)  评论(0编辑  收藏  举报

1:DBMS分类

基于共享文件系统的ACCESS
基于C/S架构的MYsql,oracle sqlserver

 

2:社区版本免费  企业版本 收费费用低

3:5.5  5.6 5.7 8.0测试版 使用5.5版本

4:卸载,注意事项,删除安装目录/ProgrammaData 里面的也需要删除 还需要注册表;一般来说不需要

5:typical:服务端+自带客户端   custom:自定义  完全安装  选custom?

6:选择开发机器 服务器选择服务器 内存越来越大 端口正式运行需要改3306端口 防止攻击 字符集选择UTF8 设置过程中可以选择是否允许远程

7:net stop/start mysql57 管理员权限 或者服务管理里面操作 或者任务管理器

8:自带的客户端命令行方式、sylog、mysql -h localhost -P 3306 -u root -p /p密码 简写mysql -u root -proot 不是命令 环境变量问题

9:常用命令

sql 不区分大小写 建议关键字大小写 表明列名 小写 
每个命令用分号结尾 \g貌似也可以,不写也行
每个命令长的话可以缩进换行
注释:单行 #注释 -- 注释 多行 /* */


 

10:sql语句

 

子查

 

 

查询每个部门的员工个数
select d.*,(select count(*) from employeers e where e.departmengt_id=d.id ) as 个数 from departments d;

查询员工号=102部门名 也可以用连接查询做的 select里面仅仅支持一行一列
select (select department-name from departments inner join employeers e on d.id=e.department_id where e.employeer_id=102 )

from 后面的子查询 子查询当做表来用
查询每个部门平均工资对应的登记
select AVG(salary),department_id from employeers group by department_id as av-dev


连接1的结果集合

select * from av-dev inner join level l on av-dev.salary between l.low and l.max


相关子查询exists 结果是1或者0 基本可以用其他语句代替 in not in
select exists(select * from employeers) 一个字段

select * from department_name where exists (select * fro employeers e where d.id=e.department_id) 外查询先查询


select * from employeers where department_id =(select department_id from employeers where name='111')

多个用in 单个用 = > <


 

分页查询