SQL查询语句的下载脚本链接!!!
【免费】SQL练习资源-具体练习操作可以查看我发布的文章资源-CSDN文库https://download.csdn.net/download/Z0412_J0103/89908378
本文旨在为那些编程基础相对薄弱的朋友们提供一份详尽的指南,特别聚焦于在IDEA(IntelliJ IDEA)、MySQL以及Navicat等广受欢迎的开发与数据库管理工具中执行SQL语句的实践操作。无论你是编程初学者,还是希望在数据库操作上有所提升的开发者,本文将是你不可或缺的学习资源。我们的演示将以IDEA为核心平台,但所提供的知识和技巧同样适用于MySQL命令行、Navicat等其他环境,确保你的学习之路宽广且实用。
在探索数据库的奥秘时,能够亲手编写并执行SQL语句,无疑是将理论知识转化为实践能力的关键一步。IDEA,作为Java开发者的首选IDE(集成开发环境),不仅以其强大的代码智能提示、重构功能著称,还集成了对数据库管理的支持,使得从编写代码到数据库操作的无缝衔接成为可能。而MySQL,作为世界上最流行的开源关系型数据库管理系统之一,其广泛的应用场景和丰富的功能特性,为学习者和专业人士提供了广阔的实践空间。Navicat,则以其直观的用户界面和高效的数据管理能力,成为了连接数据库、执行复杂查询、管理数据库对象的得力助手。
本篇文章将通过一系列精心设计的示例,从零开始,逐步引导你掌握在IDEA中连接MySQL数据库、编写SQL查询语句、执行数据操作(如插入、更新、删除)以及使用Navicat进行数据库管理和优化的全过程。我们不仅关注技术的正确性,更重视步骤的清晰性和易理解性,确保每一步操作都有详尽的解释和截图说明,即便是初次接触这些工具的朋友也能轻松上手。
目录
1 使用SELECT查询计算结果
2 使用SELECT查询当前时间
3 提前: 切换到指定的库
4 查询表中数据 *表示整张表所有的字段
5 查询表中数据 将查询的所有字段显示出来 整理SQL结构
6 查询employees表中的部分字段,但是字段显示顺序为first_name、last_name、email
7 查询employees表中的部分字段,但是字段显示顺序为email、last_name、first_name
8 查询员工id是110的员工部分信息
9 查询50部门的员工(部门编号为50)
10 查询不在50部门的员工(部门编号不为50)
10 查询工资小于 3000的员工
11 查询工资是 [8000, 9000]范围的员工(薪资大于等于8000 薪资小于等于9000)
12 查询工资是 (8000, 9000)范围的员工
13 查询主管id是100、120、122的员工
14 没有主管的人(manager_id 是null值)
15 查询工资<3000,或者工资>15000
16 排除部门50,80,100,60
17 有提成的员工,commission_pct不是null
18 查询first_name中包含'en'的员工信息(不知道en前有什么,后有什么)
19 first_name第三个和第四个字符是'en'
20 排除电话中包含'44'
21 所有的部门id(要求部分id不重复显示),并且不显示null
22 所有部门中,有哪些工作岗位(查询员工表中有哪些部门和职位)
1 使用SELECT查询计算结果
方法一:
SELECT 1 + 2;
展示结果:
方法二:
SELECT 2 * 5;
展示结果:
方法三:
SELECT 7 / 2;
展示结果:
方法四:
SELECT 7 DIV 2;
展示结果:
2 使用SELECT查询当前时间
SELECT NOW();
展示结果:
3 提前: 切换到指定的库
USE hr;
展示结果:
4 查询表中数据 *表示整张表所有的字段
SELECT *
FROM employees;
展示结果:
5 查询表中数据 将查询的所有字段显示出来 整理SQL结构
快捷键:CTRL+ALT+L
表示的是自动规范化,当然你先要退出QQ,因为该快捷键也是QQ的自动锁定
SELECT employee_id,
first_name,
last_name,
email,
phone_number,
hire_date,
job_id,
salary,
commission_pct,
manager_id,
department_id
FROM employees;
展示结果:
6 查询employees表中的部分字段,但是字段显示顺序为first_name、last_name、email
SELECT first_name, last_name, email
FROM employees;
展示结果:
7 查询employees表中的部分字段,但是字段显示顺序为email、last_name、first_name
SELECT email, last_name, first_name
FROM employees;
展示结果:
8 查询员工id是110的员工部分信息
SELECT employee_id, first_name, salary
FROM employees
WHERE employee_id = 110;
展示结果:
9 查询50部门的员工(部门编号为50)
SELECT employee_id, first_name, salary, department_id
FROM employees
WHERE department_id = 50;
展示结果:
10 查询不在50部门的员工(部门编号不为50)
以下是两种查询方法,使用不等于的符号分别为“<>”、“!=”都表示同一意思。
SELECT employee_id, first_name, salary, department_id
FROM employees
WHERE department_id <> 50;
SELECT employee_id, first_name, salary, department_id
FROM employees
WHERE department_id != 50;
展示结果:
10 查询工资小于 3000的员工
SELECT employee_id, first_name, salary, department_id
FROM employees
WHERE salary < 3000;
展示结果:
11 查询工资是 [8000, 9000]范围的员工(薪资大于等于8000 薪资小于等于9000)
SELECT employee_id, first_name, salary
FROM employees
WHERE salary >= 8000
AND salary <= 9000;
SELECT employee_id, first_name, salary
FROM employees
WHERE salary >= 8000 && salary <= 9000;
BETWEEN x AND y 表示在x和y之间,一定要保证y>x,否则结果会为空,并且只适用于包含边界值的情况。
SELECT employee_id, first_name, salary
FROM employees
WHERE salary BETWEEN 8000 AND 9000;
展示结果:
12 查询工资是 (8000, 9000)范围的员工
SELECT employee_id, first_name, salary
FROM employees
WHERE salary > 8000
AND salary < 9000;
展示结果:
13 查询主管id是100、120、122的员工
SELECT employee_id, first_name, manager_id
FROM employees
WHERE manager_id = 100
OR manager_id = 120
OR manager_id = 122;
SELECT employee_id, first_name, manager_id
FROM employees
WHERE manager_id = 100
|| manager_id = 120
|| manager_id = 122;
#如果向IN提供了大量值,可能会影响效率
SELECT employee_id, first_name, manager_id
FROM employees
WHERE manager_id IN (100, 120, 122);
展示结果:
14 没有主管的人(manager_id 是null值)
#mysql的底层中,null和任何值比较都是null,不能和=链接,必须使用IS NULL
SELECT employee_id, first_name, manager_id
FROM employees
WHERE manager_id IS NULL;
展示结果:
15 查询工资<3000,或者工资>15000
SELECT employee_id, first_name, salary
FROM employees
WHERE salary < 3000
OR salary > 15000;
#查询薪资不在[3000,15000]范围内的薪资
SELECT employee_id, first_name, salary
FROM employees
WHERE salary NOT BETWEEN 3000 AND 15000;
展示结果:
16 排除部门50,80,100,60
SELECT employee_id, first_name, department_id
FROM employees
WHERE department_id NOT IN (50, 80, 100, 60);
展示结果:
17 有提成的员工,commission_pct不是null
# 绝对不可以NOT IS NULL
SELECT employee_id, first_name, salary, commission_pct
FROM employees
WHERE commission_pct IS NOT NULL;
展示结果:
18 查询first_name中包含'en'的员工信息(不知道en前有什么,后有什么)
SELECT employee_id, first_name
FROM employees
WHERE first_name LIKE '%en%';
展示结果:
19 first_name第三个和第四个字符是'en'
SELECT employee_id, first_name
FROM employees
WHERE first_name LIKE '__en%';
展示结果:
20 排除电话中包含'44'
SELECT employee_id, first_name, phone_number
FROM employees
WHERE phone_number NOT LIKE '%44%';
展示结果:
21 所有的部门id(要求部分id不重复显示),并且不显示null
SELECT DISTINCT department_id
FROM employees
WHERE department_id IS NOT NULL;
展示结果:
22 所有部门中,有哪些工作岗位(查询员工表中有哪些部门和职位)
SELECT DISTINCT department_id, job_id
FROM employees
WHERE department_id IS NOT NULL;
展示结果:
上一篇文章:SQL基础练习-CSDN博客https://blog.csdn.net/Z0412_J0103/article/details/143105982下一篇文章:SQL高级查询02-CSDN博客https://blog.csdn.net/Z0412_J0103/article/details/143173858