oracle数据库的管理(CH01)

创建表

**CREATE TABLE[scheam.]table**
 **(column datatype[, column datatype[, …]]);**

schema: 表示对象的所有者,即模式的名称。如果用户在自己的模式中创建表,则可以不指定所有者名称
table:表示表的名称
column:表示列的名称
dataType:表示该列的数据累心及其宽度

删除表

 **TRUNCATE TABLE<表名字>;**

查询(SELECT)

SELECT DISTINCT stuname,stuAge 
FROM stuInfo

DISTINCT 子句筛选结果集中内容全部相同的行,仅保留一行

查询(使用别名)

 select stuName as “姓 名”,stuAge as “年 龄”,stuID as 身份证号
FROM stuInfo

如别名中含有特殊字符(如空格)的列标题,则使用双引号括起来

利用现有的表创建新表

CREATE TABLE 新表名
AS
SELECT * FROM 旧表名    //表结构及其所有记录完全复制

·

 CREATE TABLE 新表名
    AS
    SELECT * FROM 旧表名 WHERE 1=2    //复制表结构但不复制记录

集合操作符

作用
union 联合
union all 联合所有
intersect 交集
minus 减集

1.union

SELECT empno FROM employee
UNION
SELECT rempno FROM reireEmp
ORDER BY empno;

作用:返回employee和retireEmp 所有不重复的列值,并且如果使用ORDER BY 子句时,必须放在最后一个SELECT后面

2.union all

作用:合并两个查询选定的所有行,包括重复的行

3.intersect

SELECT empno FROM employee
INTERSECT
SELECT rempno FROM retireEmp;

作用:只返回两个查询所有的行,包括重复的行

4.minus

select empno FROM employee
MINUS
SELECT rempno FROM retireEmp

作用:第一个查询结果中排出第二个查询中出现的行

连接操作符

连接操作符(||)用于将两个或多个字符串合并一个字符串,或者将一个字符串与一个数值合并在一起

SELECT job||'_'|| ename FROM enployee;

SQL函数

转换函数

函数 功能 实例 结果
TO_CHAR 装换为字符串类型 TO_CHAR(1234.5,’$9999.9’) $1234.5
TO_DATE 装换为日期类型 TO_DATE(‘1980-01-01’,‘yyyy-mm-dd’) 01-1 月-80
TO_NUMBER 转换为数值类型 TO_NUMBER(‘1234.5’) 1234.5

其他函数

函数 功能
NVL(exp1,exp2) 如果exp1的值为null,则返回exp2的值,否则返货exp1的值
NVL2(exp1,exp2,exp3) 如果exp1的值为null,则返回exp3的值,否则返货exp2的值
DECODE(value,if1,then1,if2,then2,…,else) 如果value的值为if1,则返回then2值,如果value的值为if2,则返回then2值 。。。。否则返回else的值

分析函数
语法

函数名([参数]) OVER ([分区子句] [排序子句])

1.ROW_NUMBER
返回一个唯一的值,当遇到相同数据是,排名按照记录集中记录的顺序依次递增
2.DENSE_RANK
返回一个唯一的值,当遇到相同数据时,所有相同数据的排名都是一样的
3.RANK
返回一个唯一的值,当遇到相同的数据时,所有相同的数据排名是一样,同时会在最后一条相同记录和下一条不同记录的排名空出排名
关键代码

SELECT ename,deptno,sal
RANK() OVER(PARTITION BY deptno ORDER BY sal DESC) "RANK",
DENSE_RANK() OVER(PARTITION BY deptno ORDER BY sal DESC) "DENSE_RANK",
ROW_NUMBER() OVER(PARTITION BY deptno ORDER BY sal DESC) "ROW_NUMBER"
FROM employee

输出结果比较

ename deptno sal rank dense_rank row_number
king 10 5000 1 1 1
clark 10 2450 2 2 2
aaaa 10 1300 3 3 3
bbb 20 3000 1 1 1
ccc 20 3000 1 1 2
ddd 20 2975 3 2 3
eee 20 1100 4 3 4
fff 20 800 5 4 5
ggg 30 2850 1 1 1
hhh 30 1600 2 2 2
iii 30 1500 3 3 3
ggg 30 1250 4 4 4
kkk 30 1250 4 4 5
lll 30 950 6 5 6

猜你喜欢

转载自blog.csdn.net/qq_43051879/article/details/84328869