基本的SQL-SELECT语句练习

这里也相当于是一个回顾,对于日期乘除是不合法的,包含空值的表达式仍为空,别名使用双引号,

你不加也行,但是你要加引号一定是双引号,双竖线表示连接,JAVA中应使用连接符加号,日期和字符只能在单引号中出现,

比如输出,distinct的是区分关键字的,区分重复的列给你滤掉,大家看一下这个写法

select last_name,distinct department_id from employees;

很多人刚开始学的时候容易出错

查询一下last_name,department_id,from employees,我把这个先去掉

select last_name,department_id from employees;

每个人的名字和他的部门号,这每个人都有,所以这样查询一点问题都没有,那我们再这样看,我在这里加一个distinct,

select last_name, distinct department_id from employees;

这能运行成功不

看一下效果

缺失表达式,怎么解释,你看是不是这样,我这个employees表里面应该有107条记录,last_name应该有107个,

department_id正常也是107个,里边会有重复的,这样的形式出现,但是你一加distinct,刚刚是不是只有12个,

这边12个,这边107个,你怎么匹配,没法一对一对应上,所以说就错了,这个就是刚开始学的时候要注意的,distinct

不是你随意加的,你左右这两个作为列,一个107个,一个12个,这个是不行的,我们后面讲主函数的时候也会有对应的

一个问题,这个就是一个小总结一样,我们直接看这个练习,第一个

1.	SQL*PLUS命令可以控制数据库吗? 

这个非常果断的答,否,不能,控制数据库,你说SQL可以,但是SQL PLUS是不能的

2.	下面的语句是否可以执行成功  可以
select last_name , job_id , salary as sal
from employees; 

这里起了一个别名,没有问题,这个是可以的

3.	下面的语句是否可以执行成功  可以
select  *  from employees; 

这个也可以,查询employees表中所有的列

4.	找出下面语句中的错误  标点符号需要是英文格式下的。
select employee_id , last_name,
salary * 12  “ANNUAL  SALARY”
from employees;

一年的工资,起了个别名,猛一看好像没啥问题,或者你要是看不出来的时候怎么办,把它粘到编译器里面,

这里的分号要去了

确实有错

你看,这个符号错了,这儿是用英文的符号,这儿是中文的符号,所以这里你要改成这个

select employee_id , last_name,
salary * 12  "ANNUAL  SALARY"
from employees;

相应的你看后面这个引号,也有可能有同样的问题,你的改一改,粘过来的格式不匹配的,我们改成双引号,

英文格式下的,再来,好了,就好使了,

标点符号需要是英文格式下的,有两个错

5.	显示表departments的结构,并查询其中的全部数据
desc departments;
select * from departments;

我们不演示了,直接在这里写了,desc departments显示这个表的结构,并查询其中的全部数据,

大小写都可以

select * from departments;

分号结束,查询所有数据

6.	显示出表employees中的全部job_id(不能重复)
Select distinct job_id from employees;

来我们运行一下

7.	显示出表employees的全部列,各个列之间用逗号连接,列头显示成OUT_PUT
a)	select employee_id ||','|| last_name||','||salary "OUT_PUT"
b)	from employees

这就是别名呗,显示这个表的全部列,你得知道有哪些列,

desc employees;

这个列有点多啊,有点多怎么办,我就只选其中几列来写吧,意思是一样的,

select employee_id ||','|| last_name||','||salary "OUT_PUT"
from employees

中间用逗号连接,last_name,再加上一个叫salary,然后我就不写了,整个给一个别名,这个大家要注意,

在这不能起个别名,因为现在只有一列,中间是连接起来的,这是一列,起个别名,双引号连起起来,他写的

是"OUT_PUT",中间用下划线,from employees,这里就给你打印出来了,我这里写得比较短了,你可以把所有的列都

加上,就是select from的一个应用

 

好的,我来为您解答MySQLSQL语句练习题(一)。 1. 创建一个名为“test”的数据库。 ``` CREATE DATABASE test; ``` 2. 在“test”数据库中创建一个名为“student”的数据表,包含以下字段:学号(id,整型,主键),姓名(name,字符串类型,不超过20个字符),年龄(age,整型),性别(gender,字符串类型,不超过10个字符),成绩(score,整型)。 ``` USE test; CREATE TABLE student ( id INT PRIMARY KEY, name VARCHAR(20), age INT, gender VARCHAR(10), score INT ); ``` 3. 插入以下数据到“student”数据表中: ``` INSERT INTO student VALUES (1, 'Tom', 18, 'male', 80), (2, 'Jerry', 19, 'male', 85), (3, 'Lily', 18, 'female', 90), (4, 'Lucy', 20, 'female', 95); ``` 4. 查询“student”数据表中所有学生的姓名和年龄。 ``` SELECT name, age FROM student; ``` 5. 查询“student”数据表中所有学生的学号、姓名和成绩,并按成绩从高到低排序。 ``` SELECT id, name, score FROM student ORDER BY score DESC; ``` 6. 查询“student”数据表中所有学生的平均年龄。 ``` SELECT AVG(age) FROM student; ``` 7. 查询“student”数据表中成绩大于等于90分的学生姓名和成绩。 ``` SELECT name, score FROM student WHERE score >= 90; ``` 8. 将“student”数据表中学号为3的学生的成绩更新为100分。 ``` UPDATE student SET score = 100 WHERE id = 3; ``` 9. 删除“student”数据表中年龄小于19岁的学生。 ``` DELETE FROM student WHERE age < 19; ``` 以上是MySQLSQL语句练习题(一)的解答,希望能对您有所帮助。如果您有任何疑问或需要进一步的帮助,请随时向我提问。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值