SQL基础练习题1

文章目录

主要内容

  1. SQL基础练习题

预备知识

SQL(Structured Query Language)是一种用于管理关系数据库的编程语言。它允许用户在数据库中存储、修改和检索数据,并提供了一些强大的功能,如数据过滤、排序、分组和聚合。SQL是一种标准化的语言,几乎所有的关系数据库管理系统都支持它。

SQL的用法包括以下几个方面:

  1. 数据库的创建和删除

使用SQL可以创建和删除数据库。创建数据库的语法如下:

CREATE DATABASE database_name;

删除数据库的语法如下:

DROP DATABASE database_name;
  1. 表的创建和删除

使用SQL可以创建和删除表。创建表的语法如下:

CREATE TABLE table_name (
   column1 datatype,
   column2 datatype,
   column3 datatype,
   .....
);

删除表的语法如下:

DROP TABLE table_name;
  1. 数据的插入、更新和删除

使用SQL可以插入、更新和删除数据。插入数据的语法如下:

INSERT INTO table_name (column1, column2, column3, ...) VALUES (value1, value2, value3, ...);

更新数据的语法如下:

UPDATE table_name SET column1 = value1, column2 = value2, ... WHERE condition;

删除数据的语法如下:

DELETE FROM table_name WHERE condition;
  1. 数据的查询

使用SQL可以查询数据。查询数据的语法如下:

SELECT column1, column2, ... FROM table_name WHERE condition;
  1. 数据的过滤、排序、分组和聚合

使用SQL可以对数据进行过滤、排序、分组和聚合。过滤数据的语法如下:

SELECT column1, column2, ... FROM table_name WHERE condition;

排序数据的语法如下:

SELECT column1, column2, ... FROM table_name ORDER BY column1, column2, ... ASC|DESC;

分组数据的语法如下:

SELECT column1, column2, ... FROM table_name GROUP BY column1, column2, ...;

聚合数据的语法如下:

SELECT COUNT(column_name) FROM table_name WHERE condition;
SELECT SUM(column_name) FROM table_name WHERE condition;
SELECT AVG(column_name) FROM table_name WHERE condition;
SELECT MAX(column_name) FROM table_name WHERE condition;
SELECT MIN(column_name) FROM table_name WHERE condition;

总之,SQL是一种强大的数据库管理语言,它可以帮助用户管理和处理大量的数据。熟练掌握SQL的用法,可以提高数据管理的效率和准确性。


一.SQL基础练习题

1.下面的 SELECT 语句是否执行成功:

SELECT last_name, job_id, salary AS Sal FROM employees;

代码如下(示例):
select语句执行成功了
它选择了employees表中last_name,job_id,salary列,并将salary列的别名设置为Sal.

2.在下面的语句中有 4 个编码错误,请找出它们:

SELECT employee_id, last_name salx12 ANNUAL SALARY FROM employees;

代码如下(示例):
修正后的语句:
select employee_id,last_name,'ANNUAL SALARY' as salx12 from employees;

3.显示 DEPARTMENTS 表的结构。

代码如下(示例):
describe DEPARTMENTS;

4.显示 EMPLOYEES 表的结构。创建一个查询,显示每个雇员的 last name, job_id, hire_date, employee_id. employee_id 显示在第一列, 给 HIRE_DATE 列指定一个别名 STARTDATE。

代码如下(示例):
describe employees;
select employee_id,last_name,job_id,hire as startdate 
from employees;

5.创建一个查询从 EMPLOYEES 表中显示全体在编员工的唯一职务信息。

代码如下(示例):
select distinct job_id from employees;

6.创建一个查询,显示收入超过 $12,000 的雇员的名字和薪水。

代码如下(示例):
select last_name,salary
from employees
where salary>12000;

7.创建一个查询,显示雇员号为 176 的雇员的姓名和所在部门的编号。

代码如下(示例):
select e.last_name,d.department_id
from employees e
join departments d on e.department_id = d.department_id
where e.employee_id = 176;

8.显示所有薪水不在 $5000 和 $12000 之间的雇员的名字和薪水。

代码如下(示例):
select last_name,salary
from employees
where salary not between 5000 and 12000;

9.显示受雇日期在 1998 年 2 月 20 日 和 1998 年 5 月 1 日之间的雇员的名字、岗位和受雇日期,按受雇日期降序排序查询结果。

代码如下(示例):
select last_name,job_id,hire_date
from employees
where hire_date between '1998-02-20' and '1998-05-01'
order by hire_date desc;

10.显示所有在部门 20 和 50 中的雇员的名字和部门号,并以名字按字母升序排序。

代码如下(示例):
select last_name,department_id
from employees
where department_id in (20,50order by last_name asc;

11. 列出收入在 $5,000 和 $12,000 之间,并且在部门 20 或 50 工作的雇员的名字和薪水。将列标题分别显示为 Employee 和 Monthly Salary。

代码如下(示例):
select last_name as employee,salary as 'Monthly Salary'
from employees
where salary between 5000 and 12000
and department_id in (20,50);

12.显示每一个在 1994 年入职的雇员的名字和入职日期。

代码如下(示例):
select last_name,hire_date
from employees
where hire_date between '1994-01-01' and '1994-12-31';

13.显示所有没有主管经理的雇员的名字和工作岗位。

代码如下(示例):
select last_name,job_id
from employees
where manager_id is null;

14.显示所有有佣金的雇员的名字、薪水和佣金,以薪水和佣金的降序排序数据。

代码如下(示例):
select last_name,salary,commission_pct
from employees
where commission_pct is not null
order by salary desc,commission_pct desc;

15.显示所有名字中第三个字母是 a 的雇员的名字。

代码如下(示例):
select last_name
from employees
where last_name like '__a%';

16.显示所有名字中有一个 a 和一个 e 的雇员的名字。

代码如下(示例):
select last_name
from employees
where last_name like '%a%e%';

17.显示所有工作是销售代表或者普通职员,并且薪水不等于 $2,500、$3,500 或 $7,000 的雇员的名字、工作和薪水。

代码如下(示例):
select last_name,job_id,salary
from employees
where (job_id = 'SA_REP' or job_id ='ST_CLERK')
and salary not in (2500,3500,7000);

18.写一个查询显示当前日期,列标签显示为 DATE。

代码如下(示例):
select current_date as 'DATE';

19.对每一个雇员,显示 employee_id, last_name, salary, salary 增加 15%,并且表示成整数,列标签显示为 New Salary

代码如下(示例):
select employee_id, last_name, salary, round(salary*1.15) as 'New Salary'
from employees;

20.) 添加一个列,该列从新薪水 New Salary 列中减去旧薪水,列标签为increase.

代码如下(示例):
select employee_id,last_name,salary,
round(salary*1.15) as 'New Salary',
round((salary*1.15-salary) as increase
from employees;

总结

以上是今天要讲的内容,学到了SQL的基础语句练习。

  • 6
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

K要努力

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值