oracle基础sql语句
来源:互联网 发布:网上约车软件 编辑:程序博客网 时间:2024/05/19 03:44
修改或者插入数据后要(提交)commit或者回滚rollback
oracle中表达字符串用单引号来表达
单行函数: (dual 哑表 )
select lower('SQLPLUS') from dual; //lower 转小写
select upper('sqlplus') from dual; //upper 转大写
select concat(first_name , last_name) from s_emp; //concat 连接字符串
substr 求子串
select substr('tarenasd2008' ,1,6) from dual; (取前六个字符)
select substr('tarenasd0603',-2) from dual; (取后两个字符)
select length('tarena') from dual; //length 求字符长度
select to_number('10') from dual; //to_number 字符转数字
select deptno from dept where deptno not in ( select deptno from emp ); //哪个部门里没有员工:
select * from s_emp where id not in ( select manager_id from s_emp); //哪些人是普通员工
第一范式:最简单的一种键方式,一张表只有一个主键
第二范式:表的自连接存在
第三范式:表连接存在,一张表引用其它一张表
约束:
primary key (pk) 主键约束 不允许有重复和空值(唯一且非空)
foregin key (fk) 外键约束 两张表存在父子关系
unique key (uk) 唯一可以为空(可以多个null它忽略空值)
not null
数据类型:
表名的命令规则: 首字母为字母,不得超过30个字符
char(size) 定长
varchar2(size) 可变长
number 所有的数字类型都称为number
number(2,4)小数点后4 位,有效位2位
long 2GB 大文本一个表最多只允许定义一个 long 类型(不建议使用)
clob 大对象形式存放
blob 存二进制大对象(声音,图像之类)
使用Scott用户下的emp表,其中job表示雇员的职位,clerk为办事员、manager为经理、hiredate 字段:受雇日期;sal字段:薪金;comm字段:佣金;
--1、选择部门30中的雇员
select * from emp where deptno=30
--2、列出所有办事员的姓名、编号和部门
select ename,empno,deptno from emp where job='clerk'
--3、找出佣金高于薪金的雇员
select ename from emp where comm>sal
--4、找出佣金高于薪金60%的雇员
select ename from emp where comm>(sal*0.6)
--5、找出部门10中所有经理和部门20中的所有办事员的详细资料
select * from emp where (job='clerk' and deptno=20) or (job='manager' and deptno=10)
--6、找出部门10中所有经理、部门20中所有办事员,既不是经理又不是办事员但其薪金>=2000的所有雇员的详细资料
select * from emp where (job='clerk' and deptno=20) or (job='manager' and deptno=10) or (sal>=100 and job not in('clerk','manager'))
--7、找出收取佣金的雇员的不同工作
select distinct job from emp where comm is not null
--8、找出不收取佣金或收取的佣金低于100的雇员
select distinct job from emp where comm<100 or comm is null
--12、显示正好为5个字符的雇员姓名
select ename from emp where length(ename)=5
--15、显示所有雇员的姓名,用a替换所有'A'
select replace(ename,'A','a') as ename from emp
--17、显示雇员的详细资料,按姓名排序
select * from emp order by ename
安装的是Oracle11g的数据库,在建表后删除该表,会产生一个类似于"BIN$1Oiy3qm/QJubov1BwBUOgw==$0"的表名,(select * from tab 即可查看到)
如:drop table books;的指令会将表books放到回收站里,
用 flashback table "BIN$1Oiy3qm/QJubov1BwBUOgw==$0" to before drop; 就能恢复被删除的表。
使用实例(不太好用,部分表和数据没回复)
修改或者插入数据后要(提交)commit或者回滚rollback
oracle中表达字符串用单引号来表达
单行函数: (dual 哑表 )
select lower('SQLPLUS') from dual; //lower 转小写
select upper('sqlplus') from dual; //upper 转大写
select concat(first_name , last_name) from s_emp; //concat 连接字符串
substr 求子串
select substr('tarenasd2008' ,1,6) from dual; (取前六个字符)
select substr('tarenasd0603',-2) from dual; (取后两个字符)
select length('tarena') from dual; //length 求字符长度
select to_number('10') from dual; //to_number 字符转数字
select deptno from dept where deptno not in ( select deptno from emp ); //哪个部门里没有员工:
select * from s_emp where id not in ( select manager_id from s_emp); //哪些人是普通员工
第一范式:最简单的一种键方式,一张表只有一个主键
第二范式:表的自连接存在
第三范式:表连接存在,一张表引用其它一张表
约束:
primary key (pk) 主键约束 不允许有重复和空值(唯一且非空)
foregin key (fk) 外键约束 两张表存在父子关系
unique key (uk) 唯一可以为空(可以多个null它忽略空值)
not null
数据类型:
表名的命令规则: 首字母为字母,不得超过30个字符
char(size) 定长
varchar2(size) 可变长
number 所有的数字类型都称为number
number(2,4)小数点后4 位,有效位2位
long 2GB 大文本一个表最多只允许定义一个 long 类型(不建议使用)
clob 大对象形式存放
blob 存二进制大对象(声音,图像之类)
使用Scott用户下的emp表,其中job表示雇员的职位,clerk为办事员、manager为经理、hiredate 字段:受雇日期;sal字段:薪金;comm字段:佣金;
--1、选择部门30中的雇员
select * from emp where deptno=30
--2、列出所有办事员的姓名、编号和部门
select ename,empno,deptno from emp where job='clerk'
--3、找出佣金高于薪金的雇员
select ename from emp where comm>sal
--4、找出佣金高于薪金60%的雇员
select ename from emp where comm>(sal*0.6)
--5、找出部门10中所有经理和部门20中的所有办事员的详细资料
select * from emp where (job='clerk' and deptno=20) or (job='manager' and deptno=10)
--6、找出部门10中所有经理、部门20中所有办事员,既不是经理又不是办事员但其薪金>=2000的所有雇员的详细资料
select * from emp where (job='clerk' and deptno=20) or (job='manager' and deptno=10) or (sal>=100 and job not in('clerk','manager'))
--7、找出收取佣金的雇员的不同工作
select distinct job from emp where comm is not null
--8、找出不收取佣金或收取的佣金低于100的雇员
select distinct job from emp where comm<100 or comm is null
--12、显示正好为5个字符的雇员姓名
select ename from emp where length(ename)=5
--15、显示所有雇员的姓名,用a替换所有'A'
select replace(ename,'A','a') as ename from emp
--17、显示雇员的详细资料,按姓名排序
select * from emp order by ename
安装的是Oracle11g的数据库,在建表后删除该表,会产生一个类似于"BIN$1Oiy3qm/QJubov1BwBUOgw==$0"的表名,(select * from tab 即可查看到)
如:drop table books;的指令会将表books放到回收站里,
用 flashback table "BIN$1Oiy3qm/QJubov1BwBUOgw==$0" to before drop; 就能恢复被删除的表。
使用实例(不太好用,部分表和数据没回复)
- oracle基础sql语句
- Oracle基础sql语句
- oracle sql语句优化基础
- Oracle基础 --常用SQL语句
- Oracle—SQL基础语句
- 【oracle资料】oracle sql语句 基础 学习
- ORACLE基础SQL,常用语句大集合
- Oracle基础——SQL语句类型
- Oracle中的SQL基础查询语句--下
- oracle基础---sql语句 ado 存储过程 总结
- 整理的oracle实现的基础sql语句查询
- Oracle PL/SQL语句基础学习笔记(下)
- Oracle PL/SQL语句基础学习笔记(上)
- Oracle和SQL语句的优化策略(基础篇)
- (Oracle)零基础学习SQL语句--第1篇
- Oracle和SQL语句的优化策略(基础篇)
- Oracle基础语句
- Oracle 基础 语句大全
- VPS主机、虚拟主机apache主机支持.htaccess
- 极片切刀的细心点
- 域名知识
- 京东效果
- centos 安装vsftpd
- oracle基础sql语句
- php面试题
- PHP面试题及答案一
- PHP面试题及答案二
- tar命令
- php实现工厂模式&单例模式&魔术方法&获取文件扩展名
- InnoDB与Myisam的六大区别
- MySQL InnoDB之事务与锁详解
- Android SDK Manager 下载缓慢解决办法