oracle 常用语句2

-- number(38)
-- char(2000)
-- varchar(4000)

create table student(
sno    number(3) primary key,
sname  varchar2(40) default (‘佚名‘),
sex    char(2) check(sex in(‘男‘, ‘女‘, ‘中‘)),
age    number(2) check( age between 20 and 30 ),
birthday date,
sclass varchar2(10)
);

-- insert delete update
-- 事务: 一组相关的操作
-- commit   提交事务
-- rollback 回滚事务

-- 添加数据
-- 格式1: insert into 表 values(所有列的值);

insert into stuinsert into student values(1, ‘jack‘, ‘男‘, 23, null, ‘ab11‘);dent values(1, ‘jack‘, ‘男‘, 23, null, ‘ab11‘);
insert into student values(2, ‘tom‘, ‘男‘, 21, null, ‘ab12‘);
commit;

-- 格式2: insert into 表(指定列) values(指定列的值);
insert into student(sno, sname, birthday) values(3, ‘mary‘, ‘7-7月-2017‘);
insert into student(sno, sname, birthday) values(4, ‘mary‘, to_date(‘2017-06-10‘, ‘yyyy-mm-dd‘));
commit;

select * from student;

-- 修改数据 update
-- 格式: update 表 set 列=新值,... [where clause]

-- 把吴丹阳的年龄减小2岁,手机号改为13888888888
update studentinfo set s_age = s_age - 2, s_tel = ‘13888888888‘ where s_name = ‘吴丹阳‘;
commit;

select * from studentinfo s;
-- 删除数据 delete
-- 格式: delete from 表 [where clause]

-- 删除吴丹阳的学生信息
delete from studentinfo where s_name = ‘吴丹阳‘;
commit;

-- 查询数据 select
-- select 列 from 表 [where clause];
select * from classinfo c;
select * from studentinfo s;
select * from teacherinfo t;

-- 查询年龄大于23岁的男生的信息
select * from studentinfo s where s.s_age > 23 and s.s_sex = ‘男‘;

-- 查询家庭地址为空的学生信息
select * from studentinfo s where s.s_address is null;

-- 查询毕业学校不为空的学生信息
-- is null
-- is not null
select * from studentinfo s where s.s_school is not null;
select * from studentinfo s where not s.s_school is null;

-- 查询年龄大于24的本科生信息
select * from studentinfo s where s.s_age > 24 and s.s_xueli = ‘本科‘;

-- 查询年龄是19,24,26的学生信息
select *
  from studentinfo s
 where s.s_age = 19
    or s.s_age = 24
    or s.s_age = 26;

select * from studentinfo s where s.s_age in (19, 24, 26);

       -- = any() 等于括号里的任何一个值
select * from studentinfo s where s.s_age = any(19, 24, 26);

       -- > any() 大于最小值
select * from studentinfo s where s.s_age > any(22, 24, 26);

       -- < any() 小于最大值
select * from studentinfo s where s.s_age < any(22, 24, 26);

       -- > all() 大于最大值
select * from studentinfo s where s.s_age > all(22, 24, 26);

       -- < all() 小于最小值
select * from studentinfo s where s.s_age > all(22, 24, 26);

-- distinct 去除查询结果重复值
-- all 不去除查询结果重复值

-- 查询所有的学历
select distinct s.s_xueli from studentinfo s;

select all s.s_xueli from studentinfo s;

select distinct s.s_xueli, s.s_sex from studentinfo s;

-- order by 排序
-- order by 列 [asc(默认方式)|desc]

-- 查询所有学生的姓名和年龄,并按照年龄降序排序
select s.s_name, s.s_age from studentinfo s order by s.s_age desc;

-- 模糊查询

-- %  匹配任意多个字符
-- _  匹配一个字符

-- 查询以S字符开头的所有员工姓名
select e.ename from emp e where e.ename like ‘S%‘;

-- 查询以S字符结尾的所有员工姓名
select e.ename from emp e where e.ename like ‘%S‘;

-- 查询包含S字符的所有员工姓名
select e.ename from emp e where e.ename like ‘%S%‘;

-- 查询名字包含5个字符的员工姓名
select e.ename from emp e where e.ename like ‘_____‘;

-- 查询名字以S字符开始且包含5个字符的员工姓名
select e.ename from emp e where e.ename like ‘S____‘;

------------- 子查询 --------------
--emp 员工信息表(employee)
-- empno 员工编号
-- ename 员工姓名
-- job   职位
-- mgr   主管员工编号(manager)
-- hiredate 入职日期
-- sal   工资(salary)
-- comm  提成
-- deptno   部门编号(department number)

-- dept 部门信息表(department)
-- deptno 部门编号
-- dname 部门名字
-- loc    上班地点 (location)

select * from emp e;
select * from dept d;

--查询SMITH所在部门的名字

select d.dname
  from dept d
 where d.deptno = (select e.deptno from emp e where e.ename = ‘SMITH‘);

-- 查询SMITH的主管名字

select a.ename
  from emp a
 where a.empno = (select b.mgr from emp b where b.ename = ‘SMITH‘);

select * from emp e;
-- 查询工资高于1600的员工信息
select * from emp e where e.sal > 1600;

-- 查询工资高于ALLEN的员工信息
select * from emp e where e.sal > (select sal from emp where ename=‘ALLEN‘) ;

-- 查询工资高于30号部门所有人的员工信息

select *
  from emp e
 where sal > all(select sal from emp where deptno = 30);

-- 查询销售部(SALES)的员工姓名

select e.ename
  from emp e
 where e.deptno = (select d.deptno from dept d where d.dname = ‘SALES‘);

-- 查询销售部的工资高于1300的员工姓名
select e.ename
  from emp e
 where e.sal > 1300
   and e.deptno = (select d.deptno from dept d where d.dname = ‘SALES‘);

-- 伪列 rowid,rownum
-- rowid 行id,标示该行的物理存储位置
-- rownum 行编号
select rowid,rownum,e.* from emp e;

-- 分页查询

-- 查询员工表前三行
select * from emp e where rownum <= 3;

--查询员工表第三行到第五行
select a.*
  from (select rownum r, e.* from emp e) a
 where r >= 3
   and r <= 5;

-- 查询工资最高的三个员工信息

-- 先筛选数据,再对选出的数据(行)排序
--select * from emp e where rownum <= 3 order by e.sal desc;
select * from (select * from emp order by sal desc) e where rownum <= 3;

--按照工资降序排序,查询员工表第三行到第五行
select a.*
  from (select rownum r, e.* from (select * from emp order by sal desc) e) a
 where r >= 3
   and r <= 5;

原文地址:https://www.cnblogs.com/guog1/p/8508315.html

时间: 2024-10-31 07:30:03

oracle 常用语句2的相关文章

Oracle 常用语句整理

Oracle 常用语句整理 最近做了份大型数据库作业.遇到了一些问题,在网上找的很是辛苦,于是,将一些常用的语句记录下来,方便大家学习.都是一些基本的东西.如果忘了,可以来看看. 1.创建临时表空间 create temporary tablespace car_data //car_data,表空间名 tempfile 'C:\Users\Administrator\Desktop\car_data.dbf'//表空间路径 size 50m autoextend on next 50m max

oracle 常用语句

1.decode 函数(小版本的case when) select  decode(pd.discount_id,null,'','购买'||pd.product_count||'个,'||pd.product_discount_rate||'折优惠') as discount from b2b_product d right join b2b_product_hot ph on d.product_id = ph.product_id  left join b2b_dictionary aon

整理的Oracle常用语句

3个默认用户 sys change_on install [as sysdba] system manager scott tiger创建用户 create user 用户名 identified by 密码 defaul tablespace 表空间(Users) temporary tablespace 表空间(Temp) quota 整数 on 表空间(Users);--quota(限额) 临时表空间不能使用限额修改密码 alter user scott identified by tig

oracle 常用语句3

- oracle 函数 select sign(-3),sign(3), sign(0) from dual; select ceil(3.7) from dual; select floor(3.7) from dual; -- 四舍五入 select round(123.456, 2) from dual; select round(183.456, -2) from dual; select round(183.556) from dual; select trunc(123.456, 2

Oracle 常用语句1

-- 我是注释信息 sql语句 -- 创建用户: create user 用户名 identified by 密码; create user jack identified by j123; -- lacks CREATE SESSION priviledge 用户没有权限连接数据库 -- 授权用户: grant 权限1,权限2 to 用户名; -- 管理员 dba -- 普通用户 connect,resource grant connect,resource to jack; -- 收回权限:

Oracle常用语句

1.查看某个字段在哪张表 select owner, table_name from dba_tab_columns where lower(column_name)='字段名'; 2.导出序列 SELECT ' create sequence username.' || SEQUENCE_NAME ||          ' minvalue ' || MIN_VALUE ||         ' maxvalue ' || MAX_VALUE ||         ' start with

ORACLE常用语句合集

查询库中所有表空间: select tablespace_name from dba_tablespaces; select tablespace_name from user_tablespaces; 查询使用过的表空间: select distinct tablespace_name from dba_all_tables; select distinct tablespace_name from user_all_tables; 查询表空间中所有表名: select table_name

oracle 常用相关sql 语句

一.oracle 常用相关sql 语句 1. 连接数据库       su - oracle -c " sqlsplus 用户/密码     注:首次登陆用  sqlplus / as sysdba            注: 关闭数据库:注:shutdown可加关闭选项,从最温和到最粗暴的行为选项为(shutdown.shutdown transactional.shutdown immediate.shutdown abort)                 shutdown:关闭,等待每

oracle常用SQL语句(汇总版)

Oracle数据库常用sql语句 ORACLE 常用的SQL语法和数据对象 一.数据控制语句 (DML) 部分 1.INSERT (往数据表里插入记录的语句) INSERT INTO 表名(字段名1, 字段名2, ……) VALUES ( 值1, 值2, ……); INSERT INTO 表名(字段名1, 字段名2, ……) SELECT (字段名1, 字段名2, ……) FROM 另外的表名; 字符串类型的字段值必须用单引号括起来, 例如: ’GOOD DAY’ 如果字段值里包含单引号’ 需要