一、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;
注:select和from都是数据库的关键字,建议遇到关键字就换行一下,使得可读性更强一些。
二、运算符:
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