使用navicat操纵数据库

<1>连接数据库

打开Navicat,点击"连接",选择"MySQL",这边是本机安装的mysql,主机为localhost,输入root密码。

使用Navicat创建数据库并导入SQL文件




SQL查询

普通SQL查询

bash 复制代码
USE demo;
SELECT * FROM t_emp;
bash 复制代码
SELECT empno,ename,sal FROM t_emp;  #按编号,名字,工资查询

设置列别名

bash 复制代码
SELECT empno,sal*12 From t_emp; #按编号,工资*12月 查询 (未设置列别名)


数据分页

比如查看朋友圈,只会加载少量部分信息,不用一次性加载全部朋友圈,那样只会浪费CPU时间、内存和网络带宽。

如果结果集记录很多,可以使用LIMIT关键字限定结果集数量。

格式:SELECT ... FROM ... LIMIT 起始位置,偏移量;

执行顺序:FROM >SELECT >LIMIT

bash 复制代码
SELECT empno,ename FROM t_emp LIMIT 0,5;  #查询0-5编号、名字

从第10位起,查询10-15

bash 复制代码
SELECT empno,ename FROM t_emp LIMIT 10,5;

结果集排序

查询语句不会对结果集进行排序,需使用ORDER BY,

排序关键字:<列名>指排序字段名称,表示升序(不写默认升序)、 表示降序,如排序类型为数字类型,则按数字大小排序,如是日期类型,则按日期大小排序,如是字符串类型按字符集序号排序;
多个排序字段:使用ORDER BY规定首要排序条件、次要排序条件。

bash 复制代码
格式:SELECT ... FROM ... ORDER BY 列名 [ASC|DESC];  

执行顺序:FROM>SELECT>ORDER BY>LIMIT

bash 复制代码
SELECT empno,ename,sal,deptno FROM t_emp ORDER BY sal DESC; #薪资按降序
SELECT empno,ename,sal,deptno,hiredate FROM t_emp ORDER BY ename ASC;  #名字按升序排列
SELECT empno,ename,sal,deptno,hiredate FROM t_emp ORDER BY hiredate DESC; #入职日期按降序排列

多个字段排序

bash 复制代码
SELECT empno,ename,sal,deptno,hiredate FROM t_emp ORDER BY sal DESC, hiredate ASC;  #工资降序,入职日期升序
SELECT empno,ename,deptno,sal,hiredate FROM t_emp ORDER BY deptno ASC, sal DESC;  #员工编号升序,工资降序

去除重复记录

去除结果集重复记录,使用DISTINCT关键字

格式:SELECT DISTINCT 字段 FROM ...;

bash 复制代码
SELECT DISTINCT job FROM t_emp;

条件查询

使用WHERE子句来实现数据的筛选

SELECT ... FROM ... WHERE 条件 [AND | OR] 条件 ...;

bash 复制代码
SELECT empno,ename,sal FROM t_emp WHERE deptno=10 AND sal>=2000; #查询deptno部门10,底薪超过2000的员工
SELECT empno,ename,sal FROM t_emp WHERE (deptno=10 OR deptno=20) AND sal>=2000;  #查询10和20部门底薪超过2000的员工

部门10,年薪大于15000,工龄超过20年(由now当前时间-入职时间/365天 = 年份>=20)

bash 复制代码
SELECT empno,ename,sal,hiredate
FROM t_emp
WHERE deptno=10 AND (sal+IFNULL(comm,0))*12 >=15000 
AND DATEDIFF(NOW(),hiredate)/365>=20  

查询部门10 20 30,职位非SALESMAN 入职时间小于19850101

比较运算符

逻辑运算符

查询非10 20部门的信息

bash 复制代码
SELECT empno,ename,sal,hiredate,deptno
FROM t_emp
WHERE NOT deptno IN(10,20)

按位运算符

平均值

计算员工工资平均值

bash 复制代码
SELECT AVG(sal+IFNULL(comm,0)) AS avg
FROM t_emp;

求和

求部门10、20的底薪总和

bash 复制代码
SELECT SUM(sal) FROM t_emp WHERE deptno IN(10,20);

MAX最大值

MIN最小值

count计数

bash 复制代码
SELECT COUNT(*),COUNT(comm) FROM t_emp; #comm为空则不记录,*记录全部条数

分组查询

按部门进行分组,查询平均值

bash 复制代码
SELECT deptno,AVG(sal) FROM t_emp GROUP BY deptno;

查询每个部门里,每种职位的人员数量和平均底薪。

bash 复制代码
SELECT deptno,job,COUNT(*),AVG(sal)
FROM t_emp
GROUP BY deptno,job
ORDER BY deptno;
相关推荐
m0_5642641826 分钟前
IDEA DEBUG调试时如何获取 MyBatis-Plus 动态拼接的 SQL?
java·数据库·spring boot·sql·mybatis·debug·mybatis-plus
隐语SecretFlow2 小时前
隐语SecreFlow SCQL 1.0.0b1 发布:更完善的 SQL 支持与更高效的隐私查询引擎
数据库·sql
ttghgfhhjxkl2 小时前
文档搜索引擎搜索模块的索引更新策略:实时增量与全量重建设计
数据库·搜索引擎
老华带你飞2 小时前
机器人信息|基于Springboot的机器人门户展示系统设计与实现(源码+数据库+文档)
java·数据库·spring boot·机器人·论文·毕设·机器人门户展示系统
StarRocks_labs2 小时前
StarRocks 在 Cisco Webex 的探索与实践
数据库·starrocks·json·存算分离·olap 技术栈
notion20252 小时前
Adobe Lightroom Classic下载与安装教程(附安装包) 2025最新版详细图文安装教程
java·数据库·其他·adobe
楚枫默寒3 小时前
mongodb备份脚本(单机+副本集)
数据库
小蒜学长3 小时前
springboot酒店客房管理系统设计与实现(代码+数据库+LW)
java·数据库·spring boot·后端
准时准点睡觉4 小时前
window安装MYSQL5.5出错:a windows service with the name MYSQL alreadyexists....
数据库·windows·mysql
无敌最俊朗@5 小时前
SQlite:外键约束
数据库·oracle