查询表的全部内容
select * from 表名
查询特定列
select id,name...(列名) from 表名
算数运算符
数字和日期使用的算数运算符
操作符 | 描述 |
---|---|
+ | 加 |
- | 减 |
* | 乘 |
/ | 除 |
数字使用算数运算符:
select 8*4 from dual;
日期和数字可以混合使用(sysdate获取当前系统时间),日期可以进行加减运算,但不能做乘除运算。
select sysdate,sysdate+1,sysdate-1 from dual;
操作符优先级:* / +
- 乘除的优先级高于加减
- 同一优先级运算符从左往右执行
- 括号内的运算先执行
空值(commission_pct)
注意:不是0,凡是空值参与的运算,结果都为空(null)
列的别名
select sysdate as 日期,sysdate+1 as 明天,sysdate-1 as 昨天
from dual
select sysdate as "日期",sysdate+1 as "last_day",sysdate-1 as last_day from dual;
说明:小写单词不加“”会自动解析为大写的,“”内的单词大小写不变
连接符
- 把列与列,列与字符连接在一起。
- 用’ ||‘表示
- 可以用来’合成‘列
select '明天'|| (sysdate+1) ||',今天'|| sysdate
from dual
字符串
- 字符串可以是SELECT列表中的一个字符,数字,日期。
- 日期和字符只能在单引号中出现
- 每当返回一行时,字符串被输出一次
别名是双引号
重复行(distinct)
SQL语句与SQL*Plus命令
SQL | SQL*Plus |
---|---|
一种语言 | 一种环境 |
ANSI标准 | Oracle的特性之一 |
关键字不能缩写 | 关键字可以缩写 |
使用语言控制数据库中表的定义信息和表中的数据 | 命令不能改变数据库中的数据的值 |
集中运行 |
SQL*Plus的用处
-
描述表结构
-
编辑SQL语句
-
执行SQL语句
-
将SQL保存在文件中并将SQL语句执行结果保存在文件中
-
在保存的文件中执行语句
-
将文本文件装入SQL*Plus编辑窗口
显示表结构:
describe 表名
注意:
-
SQL语言大小写不敏感
-
SQL可以写在一行或者多行
-
关键字不能被缩写也不能分行
-
各子句一般要分行写
-
使用缩进提高语句的可读性
总结:
-
对于日期型数据,做*,/运算不合法
-
包含空值的数学表达式的值都为空值
-
别名使用双引号
-
Oracle中连接字符串使用“||”,而不是Java中的“+”
-
日期和字符只能在单引号中出现,输出last_name’s email is email
select last_name || 's email is '|| email Email
from employees;
- 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
desc employees;
select employees_id || "," || first_name || "," ||last_name "OUT_PUT"
from employees;