博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Oracle
阅读量:5922 次
发布时间:2019-06-19

本文共 2835 字,大约阅读时间需要 9 分钟。

Oracle学习

1      SQL初步

SQL语句分为三种类型:

DML:数据操纵语言

DDL:数据定义语言

DCL:数据控制语言

1.1   DML

INSERT   UPDATE   DELETE   SELECT

1.2   DDL

CREATE TABLE     ALTER TABLE    DROP TABLE    CREATE INDEX    DROP INDEX

1.3   DCL

GRANT    REVOKE   COMMIT   ROLLBACK   SAVEPOINT     LOCK

2      基本查询语句SELECT

查看表结构:desc table_name;

在select的语句中可以加上算术运算符;

查看系统当前时间:select sysdate from dual;

空值是无效的,未指定的,未知的,或不可预知的值;空值不是0或者空格;

使用别名三种方式:

第一种:select cloumn_name1 alias_name1 from table_name;

第二种:select column_name1 as alias_name from table_name;

第三种:select column_name1 “aliasName” from table_name;

第一、  二种的别名都是默认的大写,第三种大小写默认的不变

查询中的连接符“||”:

可以将两个列的查询结果合成一个:

Select last_name || employee_id from employees;

 

显示的结果:

employees

-----------------------------------

BaerPR_REP

HigginsAC_MGR

GietzAC_ACCOUNT

 

Select last_name,employee_id from employees;

显示的结果:

LAST_NAME                 EMPLOYEE_ID

------------------------- -----------

Baer                              204

Higgins                           205

Gietz                             206

日期和字符只能在单引号中出现,每当返回一行时,字符串被输出一次,

Select lastname || ‘ is a ’ job_id as “employee details” from employees;

删除重复行:

Select dinstinct department_id from employees;

但结果可能返回为空

 

Sql语句和SQL plus的区别:

Sql语句是一种语言,一种标准,关键字不能缩写

Sql plus是一种环境,Oracle的特性之一,关键字可以缩写

 

Desc实际上就是describe的缩写

 

Select last_name,distinct department_id from employees;

语句错误,last_name有107条,而department_id用distinct修饰后,只剩12条,不能匹配

 

显示出表employees的全部列,各个列之间用逗号连接,列头显示成OUT_PUT:

Select employee_id || ‘,’ || last_name || ‘,’ ||salary from employees;

 

3      过滤和排序行

过滤使用where加上查询条件,需要注意的是,where后的条件如果是字符/日期,需要用单引号来修饰,数字类型不需要修饰。

比较运算:>  <   <=   >=   <>

其他运算比较: between and, in(set),like, is null

Like ‘s%’; like ‘_o%’:%代表一个多个字符,_代表一个字符

判断是否为空:is(not) null

Escape: select * from job_id where job_id like ‘IT\_%’ escape ‘\’,这代表的是_就是_

Order by asc/desc: 升序/降序

多个列排列:

选择名字中有a或e的员工:

Select * from employees where last_name like ‘%a%e%’ or ‘%e%a%’

 

4      单行函数

大小写函数:

Lower()

Upper()

Initcap():字符首字母大写

字符控制函数:

函数

结果

CONCAT('Hello', 'World')

SUBSTR('HelloWorld',1,5)

LENGTH('HelloWorld')

INSTR('HelloWorld', 'W')

LPAD(salary,10,'*')

RPAD(salary, 10, '*')

TRIM('H' FROM 'HelloWorld')

REPLACE(‘abcd’,’b’,’m’)

HelloWorld

Hello

10

6

*****24000

24000*****

elloWorld

amcd

数字函数:

ROUND(四舍五入)     ROUND(45.926,2)

45.93

TRUNC(截断)         TRUNC(45.926)

45.92

MOD(求余)           MOD(1600,300)

100

 

5      多表查询

 

Select employees.employee_id,employees.department_id, departments.department_id

From    employees,departments;

上面的语句查询结果有2000多条记录,这种现象被称为笛卡儿积。

笛卡儿积的产生情况在下面这些条件产生:

(1)省略连接条件;

(2)连接条件无效;

(3)所有表中的所有行互相连接。

避免笛卡儿积的方式可以加上where过滤

 

内连接与外连接:

内连接:合并具有同一列的两个以上的表的行,结果集中不包含一个表与另一个表不匹配的行;

外连接:两个表在连接的过程中,除了返回满足连接条件的行以外,还返回左表或右表中不满足条件的行,这中连接称为左外连接或右外连接。外连接的where子句条件类似于内部连接,但连接条件中没有匹配行的表的列后面要加外连接运算符,即用圆括号括起来的加号(+).

左连接:左边的全都显示,右边的用null来补上

Select table1.column,table2.column

From table1,table2

Where table1.column= table2.column(+);

右连接:右边的全都显示,左边的用null来补上

Select table1.column,table2.column

From table1,table2

Where table1.column(+) = table2.column

 

转载于:https://www.cnblogs.com/lfdingye/p/9315703.html

你可能感兴趣的文章
解决Incorrect integer value: '' for column问题
查看>>
【转】谈大数据时代的数据治理
查看>>
BZOJ 1018 堵塞的交通traffic(线段树)
查看>>
Meteor Match
查看>>
canvas 时钟
查看>>
Linq之Linq to Objects
查看>>
python全栈开发笔记---------数据类型---字典方法
查看>>
ios项目中引用其他开源项目
查看>>
分治优化决策单调性
查看>>
Nginx与Apache简单对比
查看>>
常见的HTTP返回状态值
查看>>
Centos防火墙添加IP白名单
查看>>
OpenCV学习笔记——疑问
查看>>
Mac使用brew安装nginx,并解决端口访问权限问题
查看>>
【云图】如何建立北京三甲医院云图,不用数据库持有自己数据!
查看>>
分布拟合——正态/拉普拉斯/对数高斯/瑞利 分布
查看>>
Codeforces Round #331 (Div. 2)
查看>>
构造 hihocoder 1257 Snake Carpet (15北京I)
查看>>
Queue学习
查看>>
构造水题 Codeforces Round #206 (Div. 2) A. Vasya and Digital Root
查看>>