一.简单查询
1.数据类型
Char:字符型,最大长度2000,定长,位数不足时用空格填充
Varchar2:字符型,最大长度4000,变长,长度根据实际存储值而定
Long:存储较长的字符串,长度为2G
Number(x,y):可以存浮点型和整型,x代表多少位数,y代表小数位位数
Date:日期类型,默认格式:dd-mm-yy(天、月、年)
Clob:存储较大的文本,如非结构化的XML文档,最大为4G
Blob:存储二进制对象,如视频、音频、图片等
2.创建表
CREATE TABLE 表名(
列名1 数据类型 是否为空,
列名2 数据类型 是否为空,
列名3 数据类型 是否为空
)
或
CREATE TABLE 表名(
列名1 数据类型 是否为空,
列名2 数据类型 是否为空,
列名3 数据类型 是否为空
) ADD COMSTRAINT 约束名 约束内容
3.查询表
SELECT * FROM 表名 WHERE 查询条件 ORDER BY 分组条件
4.插入表
INSERT INTO 表名() VALUES()
5.删除表
DELETE 表名 WHERE 删除条件
6.更新表
UPDATE 表名 SET 字段名=值 WHERE 更新条件
二.Oracle常用函数
1.数字函数
round(n , [m]):四舍五入运算
trunc(n , [m]):保留小数位数
mod(n , m):返回两个数字相除后的余数
floor(n):返回小于等于n的最大整数
ceil(n):返回大于等于n的最小整数
abs(n):返回n的绝对值
acos(n) asin(n) stan(n) 三角函数
exp(n):返回e的n次幂
long(m , n):返回绝对数,返回m的n次幂
power(m , n):返回m的n次幂
2.字符函数
lower(char):将字符串转换为小写
upper(char):将字符串转换为大写
substr(char):截取字符串
length(char , m , n):获取字符串的长度
instr(cahr1 , cahr2 ,[n [,m]]) :用于查找其在字符串中出现的位置
initcap(char):将字符串中所有的单词的首字符均大写,并用空格隔开
3.日期和时间函数
sysdate:返回当前系统时间
last_day(d):返回特定日期所在月份的最后一天
extract:从日期时间值中获取特定的值
4.转换函数
to_char(character):用于将ncahr、nvarchar等数据类型转换成数据库字符集数据
to_char(date , fmt):将日期根据指定格式转换为字符串
to_date(cahr , fmt):将指定字符串根据指定格式转换为日期时间数据
5.聚合函数
avg():计算平均值
count():计算个数
sum():计算和
max():取最大值
min():取最小值
三.多表查询
1.多表查询
//相等连接 使用相等符号指定连接条件的查询,主要用于检索主从表之间的相关数据
select ya.YWY , yc.Y_yy from yang ya , Y_CJ yc where ya.YWY_ID = yc.Y_ID;
//不等连接 连接条件中使用想等之外的其他比较符的连接查询,并且不等连接主要用于在不同表之间显示特定范围的信息。
//自连接 指的是同一张表之间的连接查询,主要用在自参表上显示上下级关系或层次关系。
//自参表指的是不同列之间具有参照表关系或从表关系的表
//内连接inner join
select * from a inner join b on a.id=b.id
//外连接 左外连接left join 右外连接right join 全外连接full join
select * from a left join b on a.id=b.id //左外连接
select * from a right join b on a.id=b.id //右外连接
select * from a full join b on a.id=b.id //全外连接
2.子查询
子查询的定义:指嵌入在其他SQL语句中的select语句,也叫做嵌套语句。
子查询的作用:在insert语句中使用子查询,可以将源表中的数据插入到目标表中;在update中使用子查询可以修改一列或多列的值;在where和having中使用子查询,可以提供查询条件。在DDL语句中使用子查询的时候,可以使用order by子句,在where子句、set子句中使用子查询的时候,不能用order by子句。
2.1.单行子查询
//单行子查询只返回一行数据,所以可以使用< > = >= <= <>
select * from a where a.id = (select b.id from b where b.name="张三");
2.2.多行子查询
//多行子查询返回多行数据,所以必须使用多行比较符in all any
//all和any不能单独使用,必须和单独比较符(< > <= >= <> =)搭配使用
select * from emp where sal IN (select sal from emp where deptno=30)
select * from emp where sal>ANY (select sal from emp where deptno=30)
select * from emp where sal>ALL (select sal from emp where deptno=30)
四.集合操作
1.union并集运算
union操作符用于获取两个结果集的并集,它会自动过滤掉重复的数据行,并按照结果集的第一行进行排序。
select id,name from a union select id,name from b;
2.intersect交集运算
intersect操作符用于获取两个集合的交集,使用它的时候,只会显示两个结果集中同时存在的数据,并会按照第一列进行排序。
select id,name from a intersect select id,name from b;
3.minus差集运算
minus操作符用于获取两个集合中差集,显示的时候只显示在第一个集合中存在、在第二个集合中不存在的数据,并且会按照第一列进行排序。
select id,name from a minus select id,name from b;
五.DDL语言
数据定义(Data Definition Language)命令是create、alter、drop,用于建立、修改、删除数据库对象。
create table 表名(
字段名 字段类型 字段约束,
字段名 字段类型 字段约束
)
alter table 表名 add (字段名 字段类型);
drop table 表名;
六.DML语言
数据操纵(Data Manipulation Language)命令是insert、updata、delete,用于修改数据库数据。
insert into 表名(字段名) values(值);
updata 表名 set 字段名=值 where 修改条件;
delete 表名 where 删除条件;