01、SQL--SELECT 语句等操作(含习题)

 

一、Sql语句的两种写法:

1直接在打开的PLSQLDeveloper中的SQL>后书写;

2、在 “ SQL> “ 后书写 “ed” 再按回车,在出现的表框中书写SQL语句;书写后点击“OK”,再在SQL>后输入反斜线 “ / ”就可以看到结果。

//第一种sql语句最末必须加分号。第二种在SQL语句后可以不加分号。

 

 

 

 

基本select:

(1)、

select * from employees;查询employees中所有的列。

2)、

SQL> desc employees;  //显示employees中有哪些 列 。

(3)、

SQL> select employee_id,last_name,email

       2  from employees;  

注:selectfrom都是数据库的关键字,建议遇到关键字就换行一下,使得可读性更强一些。

 

二、运算符:

1、算术运算符:

(1)、

SQL> select 4*8 from dual;      任何一个sql语句一定有一个from,者里如果没有

       4*8                       对应的表结构,则使用dual(一个伪表)

----------

        32

不加from会有如下图所示的提示错误。

(2)、 last_name和此人的工资以//这里12*salary+1000就变成了列名了;及他一年的工资并且年终还发了1000元奖金。

SQL> select last_name,salary,12*salary+1000   //查看employees表中员工的      

2  from employees;  

 

(3)、sysdate:系统当前日期

SQL> select sysdate,sysdate+1,sysdate-2 from dual;

SYSDATE     SYSDATE+1   SYSDATE-2

----------- ----------- -----------

2019/7/28 8 2019/7/29 8 2019/7/26 8                           

日期函数只能做加减,做乘除无意义。

 

2、空值:

1)、实操演示:

--空值不为0,凡是空值参与的运算,结果都为空(null

select employee_id,salary,salary*(1+commission_pct)

from employees

 

3、列的别名:

(1)、输入ed后的表框中:

select employee_id,last_name,12*salary

from employees

(2)、起别名:

12*salary为列名显示的感觉不美观。可以为它起一个别名,写法:在12*salary后面用 ” as 别名直接“ 别名 ”。

      注意:起别名时如果定义的别名是单词之间含有空格的一定要用双引号。

(3)、如果希望列名的别名在显示时严格按照,自己SQL语句中,书写别名的大小写,可以给别名加上双引号 --“”。

 

4、连接符:

SQL> select last_name||'`s job_id is '||job_id

  2  from employees;

效果:

LAST_NAME||'`SJOB_IDIS'||JOB_ID    //列名

------------------------------------------------

King`s job_id is AD_PRES           //里面显示的内容名

 

 

SQL语句中只有起别名用的是双引号,其他所有包括字符串都是单引号。

 

5、重复行:

distinct:去重,将重复的过滤掉。

SQL> select distinct department_id from employees;

 

 

Sqlplus是一种环境;desc是sqlplus的关键字;ed也是sqlplus的关键字;

Sql是一门语言;mysql是数据库。

 

 

三、测验题一:

 

1. 对于日期型数据, 做 *, / 运算不合法

 

2. 包含空值的数学表达式的值都为空值

 

3. 别名使用双引号!

 

4. oracle 中连接字符串使用 "||", 而不是 java 中的 "+"

 

5. 日期和字符只能在单引号中出现. 输出 last_name`s email is email

select last_name || ' `s email is ' || email EMAIL
from employees

 

6. distinct 关键字, 以下语法错误

select last_name, distinct department_id
from employees

 

四、测验题二:

 

1、SQL*PLUS命令可以控制数据库吗? 否!

 

2、下面的语句是否可以执行成功  可以

select last_name , job_id , salary as sal

from employees; ​​​​​​​

 

3、下面的语句是否可以执行成功  可以

select  *  from employees;

 

4、找出下面语句中的错误  标点符号需要是英文格式下的。

select employee_id , last_name,

salary * 12  “ANNUAL  SALARY”

from employees;

 

5、显示表departments的结构,并查询其中的全部数据

desc departments; 

select * from departments;

 

6、显示出表employees中的全部job_id(不能重 复)

Select distinct job_id from employees;

 

7、显示出表employees的全部列,各个列之间用逗号连接,列头显示成OUT_PUT

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

from employees

                                                         

好的,我来为您解答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、付费专栏及课程。

余额充值