sql:结构化查询语言
Oracle收费的关系型数据库
数据都是以表格的形式存储
关系型的更加清晰 符合逻辑
DQL:数据库查询语言
DCL:数据库控制语言
DML:数据库管理语言
DDL:数据库定义语言
DQL:
查询数据
一.简单查询
关键字:Oracle数据库定义好的有特殊含义的字符
我们的sql语句就是由多种关键字组合而成
select挑选
from从哪里来
语法:
select 要查询的内容
from数据来源
select *
from emp
查询emp表中员工姓名,员工编号,工资
select ename,empno,sal
from emp
二:限定查询
语法
select 要查询的内容
from 数据来源
where 限定条件
限定条件:列名 操作符 值
值:数据类型
数值型
number
直接写→123
sal=123
结果靠右
字符型
char、varchar、varchar2
要用单引号引起来→'abc'
结果靠左
日期型
date'年-月-日'
dual
万能表 用于测试函数
你查什么就返回什么
查询emp表中,部门编号等于10的所有信息
select *
from emp
where deptno = 10
查询emp表中,员工姓名为SMITH的员工姓名,工资
select ename,sal
from emp
where ename=‘smith’
注:列名不区分大小写,值严格区分大小写
操作符:
1.比较操作符
< > = <= >= != | <>
2.逻辑操作符
用于限定条件之间的链接
and 与
0r 或
not 非
查询emp表中,部门为20的部门,工资大于2000的所有信息
select *
from emp
where depto=20
and
sal>2000
between 小值 and 大值
select *
from emp
where sal between 2000 and 3000
→sal>=2000 and sal<=3000
in(值1,值2,值3....)在.....之中
模糊查询语法:
select 要查询的内容
from 数据来源
where 列 like ‘匹配条件’
——查询emp表,s开头的员工信息
通配符:
% →0到任意多个字符
_ →任意单个字符
select *
from emp
where enme like ‘%s%'
查询员工表,第二位是I 的员工姓名,职位,工资
查询emp表,包含s且工资大于2000同时部门不是30部门
--查询员工表,第二位是I 的员工姓名,职位,工资 select job,sal from emp where ename like '_i%' --查询emp表,包含s且工资大于2000同时部门不是30部门 select deptno from emp where ename like '%s%' and sal>2000 and deptno !=30 --查询员工姓名J开头S结尾,中间包含O的员工信息 select * from emp where ename like 'J%o%s'
empno:员工编号 ename:员工姓名 job:职位 mgr:经理编号 hiredate:入职日期 sal:工资 comm:提成 deptno:部门编号