mysql入门:
| |
| show DATABASES; |
| |
| |
| use myemployees; |
| |
| |
| SELECT DATABASE(); |
| |
| |
| show TABLES; |
| |
| |
| CREATE DATABASE text_DATABASE; |
| |
| |
| SELECT * FROM departments; |
| |
| |
| DESCRIBE departments; |
| |
| |
| DESC departments; |
| |
| |
| SELECT VERSION(); |
| |
| |
| DROP DATABASE text_DATABASE; |
简单查询
| |
| SELECT job_id FROM jobs; |
| |
| |
| SELECT job_id,job_title from jobs; |
起别名
| |
| SELECT job_id as '员工id' FROM jobs; |
| |
| SELECT job_id '员工id' FROM jobs; |
字段计算
| |
| SELECT min_salary*12 FROM jobs; |
| |
| SELECT min_salary+max_salary as hybrid FROM jobs; |
条件查询
| |
| SELECT min_salary FROM jobs WHERE min_salary>7000; |
| |
| |
| SELECT min_salary FROM jobs WHERE min_salary<7000; |
| |
| |
| SELECT min_salary FROM jobs WHERE min_salary=3000; |
| |
| |
| SELECT min_salary FROM jobs WHERE min_salary> 3000 and min_salary < 5000; |
| |
| SELECT min_salary FROM jobs WHERE min_salary BETWEEN 3000 and 5000; |
is null
| |
| SELECT * from employees WHERE commission_pct is null; |
| |
| SELECT * from employees WHERE commission_pct is not null; |
and or
| |
| SELECT job_id,salary FROM employees WHERE job_id = 'AD_VP' and salary > 10000; |
| |
| |
| SELECT job_id,salary FROM employees WHERE job_id = 'AD_VP' or job_id = 'IT_PROG' ; |
| |
| |
| SELECT job_id,salary FROM employees WHERE job_id = 'AD_VP' and salary>10000 or salary>4000; |
| |
| |
| SELECT job_id,salary FROM employees WHERE job_id = 'AD_VP' and (salary>10000 or salary>4000); |
in not in
| |
| SELECT job_id,salary FROM employees WHERE salary in(10000,20000); |
| |
| |
| |
| |
| SELECT job_id,salary FROM employees WHERE salary not in(10000,20000); |
模糊查询 like
| |
| SELECT last_name from employees WHERE last_name LIKE '%o%'; |
| |
| |
| SELECT last_name from employees WHERE last_name LIKE '_o%'; |
| |
| |
| SELECT last_name from employees WHERE last_name LIKE '%\_%'; |
| |
| |
| |
| |
| |
| |
| SELECT last_name from employees WHERE manager_id LIKE '[1]%'; |
| |
| |
| SELECT last_name from employees WHERE last_name LIKE '^1'; |
排序 order by
| |
| SELECT last_name,salary from employees ORDER BY salary; |
| |
| SELECT last_name,salary from employees ORDER BY salary ASC; |
| |
| |
| SELECT last_name,salary from employees ORDER BY salary DESC; |
| |
| |
| |
| |
| SELECT last_name,salary from employees ORDER BY salary,last_name DESC; |
大小写
| |
| SELECT lower(last_name) from employees; |
| |
| SELECT UPPER(last_name) from employees; |
截取字符 SUBSTR(str FROM pos FOR len)
| |
| |
| SELECT SUBSTR(last_name,1,1) from employees; |
| |
| |
| SELECT SUBSTR(last_name,1,2) from employees; |
查看长度 LENGTH(str)
| |
| SELECT LENGTH(last_name) from employees; |
| |
| SELECT SUBSTR(last_name,1,LENGTH(last_name)) from employees; |
拼接多个字段 CONCAT(str1,str2,...)
| |
| SELECT (last_name,first_name) FROM employees; |
随机数 RAND()
| |
| SELECT RAND() |
| |
| |
| SELECT RAND()*100 from employees; |
| |
| |
| |
| SELECT RAND(last_name) from employees; |
| |
| SELECT RAND(123) from employees; |
四舍五入 ROUND(X)
| |
| SELECT ROUND(RAND()); |
| |
| |
| SELECT ROUND(RAND(),2); |
统计 最大值 最小值 平均 求和 count() max() min() avg() sum()
| |
| SELECT count(salary) from employees; |
| |
| |
| SELECT max(salary) from employees; |
| |
| |
| SELECT min(salary) from employees; |
| |
| |
| SELECT avg(salary) from employees; |
| |
| |
| SELECT sum(salary) from employees; |
执行循序
| |
| |
| |
| SELECT salary from employees WHERE salary >= MIN(salary); |
分组查询 GROUP BY
| |
| SELECT sum(salary),job_id from employees GROUP BY job_id |
| |
| |
| SELECT sum(salary),job_id from employees GROUP BY job_id ORDER BY sum(salary) desc; |
| |
| |
| SELECT department_id,job_id,MIN(salary) from employees GROUP BY department_id,job_id ORDER BY MIN(salary) desc; |
筛选条件 having
| 必须跟order by 一起出现 |
| |
| |
| SELECT max(salary),department_id from employees GROUP BY department_id HAVING max(salary) > 5000; |
| |
| SELECT sum(salary),department_id from employees WHERE salary>16000 GROUP BY department_id |
去重 DISTINCT
| |
| SELECT DISTINCT salary from employees; |
| |
| SELECT min(salary), department_id from employees GROUP BY department_id; |
| |
| SELECT COUNT(DISTINCT department_id,salary) from employees; |
内连接等值连接 INNER JOIN
| |
| SELECT j.job_id,e.salary from jobs j,employees e ; |
| SELECT * from jobs j,employees e ; |
| |
| SELECT j.job_id,e.salary from jobs j CROSS JOIN employees e ; |
| |
| |
| SELECT * from jobs j,employees e WHERE j.job_id=e.job_id; |
| |
| SELECT * from jobs j inner JOIN employees e ON j.job_id=e.job_id; |
| |
| SELECT * from jobs j inner JOIN employees e USING(job_id); |
内连接非等值连接
| |
| SELECT grade_level,salary FROM employees e JOIN job_grades j ON salary BETWEEN lowest_sal AND highest_sal; |
自连接 自己跟自己做比对
| |
| SELECT e.employee_id '员工编号',e.last_name '员工名字',m.employee_id '领导编号',m.last_name '领导名字' |
| from employees e JOIN employees m |
| on e.manager_id = m.employee_id; |
外连接
| |
| SELECT e.employee_id '员工编号',e.last_name '员工名字',m.employee_id '领导编号',m.last_name '领导名字' |
| from employees e LEFT JOIN employees m |
| on e.manager_id = m.employee_id; |
| |
| |
| SELECT e.employee_id '员工编号',e.last_name '员工名字',m.employee_id '领导编号',m.last_name '领导名字' |
| from employees e RIGHT JOIN employees m |
| on e.manager_id = m.employee_id; |
| |
| |
| |
| |
| |
子连接
| |
| |
| SELECT salary from employees WHERE salary >(SELECT min(salary) from employees); |
| |
| |
| |
| |
| SELECT job_id,AVG(salary ) from employees GROUP BY job_id; |
| |
| SELECT j.grade_level,e.job_id,e.salary |
| from (SELECT job_id,AVG(salary) as salary from employees GROUP BY job_id) as e JOIN job_grades as j |
| ON e.salary BETWEEN j.lowest_sal and j.highest_sal; |
| |
| |
| select * from emp where EXISTS (select id from dept where dept.id=emp.dep_id); |
| 用: exists后面一定是子查询语句,不能用(值1,值2)代替;where exists (查询), |
| 结构中没有列;exists后面的子查询不返回任何实际数据,只返回真或假,当返回真时 where条件成立,该条记录保留。 |
| exists (查询),只要子查询不会空 则where条件就返回真。 |
联合查询 UNION
| 将多条查询语句的结果合并成一个结果 |
| |
| |
| SELECT last_name,salary from employees WHERE last_name LIKE '%o%' |
| UNION |
| SELECT last_name,salary from employees WHERE salary > 10000; |
分页查询 LIMIT
| |
| SELECT * from employees LIMIT 0,5; |
| |
| SELECT * from employees LIMIT 5; |
| |
| |
| SELECT * from employees LIMIT 10,15; |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 25岁的心里话
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现