Oracle (一)

– Oracle中的建表语句
– Oracle中的主要数据类型
– 1.字符型
– varchar(10) 定长的字符型数据
– char(2) 字符量较少时(定长)
– varchar2(20) 变长的字符型数据
– 2.数值型
– number(4) 不带小数点的数值
– number(8,2) 数据的长度是8位,小数点后占俩未
– 3.日期型
create table users(
id number(4) primary KEY,
name varchar(10),
password varchar2(10),
sex char(2),
addr varchar2(20),
birthday date,
sal number(8,2)
);

– 删除表的语句
drop table users;

– 查询表中的数据
select * from users;

– 查询表的结构:只能在命令行模式下使用
desc users;

– sql语句是不区分大小写的,包括登录是的账号和密码
selECT * FroM EmP;

– select语句的使用
–从表中查询部分的字段
select empno,ename,sal,comm
from emp;

– 在查询过程中,对于数值型的数据可以执行 +,-,,/运算
– 可以给查询字段取别名,又不同的方式
select empno 员工编号,ename 员工姓名,sal 月薪,sal
12 年薪
from emp;

– 在算数运算中出现null,则结果为null,在数值类型中null不等于0.0; ()可以改变运算顺序 并影响结果
select empno 员工编号,ename as “员工姓名”,sal “月薪”,sal12 年薪,comm “奖金”,(sal12 + comm) 年收入
from emp;

– 用||可以将俩列或者多列合并起来
select empno,ename,job,empno || ename,empno || ename || job as 员工信息
from emp;

– 在连接表达式中出现字符数据,字符型的数据必须要使用 ‘’
– 在连接表达式中出现null,结果就是原来的字符型数据
– 任何类型都支持空值null
select empno || ‘的经理是’ || MGR “从属关系”
from emp;

– 对于日期型的数据可以进行 +,- 运算 ,+ - 就是+ - 一个天数
select empno,ename, hiredate “雇佣日期” ,(hiredate + 90 ) “转正日期”
from emp;

select empno,ename, hiredate “转正日期” ,(hiredate - 90 ) “雇佣日期”
from emp;

– 俩个日期型的数据相减,得到的是俩个日期直接相差的天数
– sysdate取得当前的天数
select empno 员工编号,ename 员工姓名,(sysdate - hiredate)/365 “工作年限”
from emp;

– 关键字:DISTINCT(distinct)去除单列重复的数据 DEPTNO:部门(外键)
select deptno
from emp;

select distinct deptno
from emp;

– 去除多列重复的数据
select JOB 职位, DEPTNO 部门
from emp;

select distinct JOB,DEPTNO
from emp;

– 使用where语句来对数据进行过滤
select *
from emp
where deptno = 10;

– 对于字符型的数据和日期型的数据必须要使用 ‘’ ; 字符型的数据是严格区分大小写的
select *
from emp
where ename = ‘SMITH’;

– 对于日期型的数据格式是严格的,是 DD-MM-YYYY(年-月-日)
select *
from emp
where emp.hiredate = ‘17-12月-1980’;

– 可以改变当前会话的日期格式
alert session set nls_date_format = “YYYY-MM-DD HH:MI:SS”

– 在查询语句中使用其他的比较运算符
select *
from emp
where sal >= 2000;

select *
from emp
where sal != 2000; – 不等于

select *
from emp
where sal <> 2000; – 不等于

– 使用 between … and…
select *
from emp
where sal between 1000 and 3000;

– 在Oracle中用 AND 来执行 &&(与) 的功能
select *
from emp
where sal >= 1000 and SAL <= 3000;

– 使用IN
select *
from emp
where JOB IN (‘SALESMAN’,‘MANAGER’);

– 在Oracle中用 OR 来执行 ||(或) 的功能
select *
from emp
where JOB = ‘SALESMAN’ OR Job = ‘MANAGER’;

– 使用 NOT 运算符来表示 非
select *
from emp
where not sal >= 1000 and SAL <= 3000;

select *
from emp
where comm is not null;

– 关键字 LIKE ,用于字符型数据的查询,可以执行模糊查询
– % 表示 0 个或者多个字符
select *
from emp
where ENAME LIKE ‘%A%’;

select *
from emp
where ENAME LIKE ‘A%’;

– _ 表示一个字符
select *
from emp
where ENAME LIKE ‘_A%’;

– \ 表示转义符的意思
select *
from emp
where ENAME LIKE ‘%%%’ escape ‘’;

– 对于空值要使用 IS NULL 进行比较
select *
from emp
where comm is null;

select *
from emp
where comm is not null;

– 运算顺序是按照 先 NOT 再 AND 后 OR 的顺序
select *
from users
where name = ‘admin’ and password = ‘123456’;

– sql注入攻击 admin’ OR ‘X’ = 'X
select *
from users
where name = ‘admin’ OR ‘X’ = ‘X’ and password = ‘456789’; --相当于是:where name = ‘admin’ OR (‘X’ = ‘X’ and password = ‘456789’);

– 对查询的数据进行排序,使用 ORDER BY 子句 ;默认升序排列 加不加 ASC 默认都是升序排列 加 DESC 进行降序排列
select *
from emp
where sal > 2000
order by sal;

– 显示的时候默认按照指定的字段升序排列
select *
from emp
order by sal;

– 显示的时候用指定的字段升序排列
select *
from emp
order by sal ASC;

– 显示的时候用指定的字段降序排列 关键字:DESC
select *
from emp
order by sal desc;

– 可以按照多个字段进行排列
select *
from emp
order by deptno,sal;

– 可以使用字段的别名进行排序
select empno,ename,sal,(sal*12) “年薪”
from emp order by “年薪”;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

遇见久久�

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值