结构化查询语言(structured query language)
数据定义语言 ddl
表table是数据库中存储数据的基本单位。
column (data type width constraint)
create table alter table drop table
数据操作语言 dml
dml table data
rowinsert update delete
事务控制语言 transaction control language
tcl transaction
commit rollback
数据查询语言 dql
select
数据控制语言 dcl
grant授予权限
revoke**权限。
dba database adminstrator 数据库管理员。
desc s_empdesc' means 'describe'
desc s_dept
desj s_region
给列起别名能够改变一个列,表达式的标识。
适合计算字段。
在原名和别名之间可以使用as关键字。
别名中包含空格,特殊字符或希望大小写敏感用双引号将起括起来。
空值处理。nvl(p1,p2)--
if p1 is null then
return p2;
elsereturn p1;
end if
两条之间拼接用 ||
加空格用‘(空格) ’
distinct 去重投影操作。
select distinct title from s_emp;
distinct应用到select后面所有列,所有列联合起来唯一。
如果select后面跟distinct关键字,一定是直接跟在select后面,前面没有任何内容。
oracle home: oracle产品的安装目录。
oracle_sid: 数据库所对应的实例(instance)名字(一个实例唯一的对应一个数据库,实例确定了,数据库就确定了)
telnet 192.168.0.26
sqlplus username/password
where子句的功能。
where跟在from子句之后。
where子句后跟条件表达式。
select last_name,dept_id,salary
from s_emp
where dept_id=42;
select from where
where后面不能用列别名。
where后面尽量不用算术表达式。
表达式里字符串用单引号表示。
表达式与或 and or
between and表示一个范围,是闭区间。含义大于等于并且小于等于。
in表示一个集合,是离散值。含义为等于集合中任意一个。
在字符串比较中,可用like和通配服进行查找。
s’ 's打头的字 'ss打头的两个字母的字。
查找 _ 时在where句末用escape定义一个转义字符然后加在 _ 前面。
is null 判断是否为空。
数据库中的表分为系统表:储存数据库的信息。
用户表:存储用户信息。
逻辑比较运算符。
sql比较运算符。
not between and
not in <=all
not like
is not null
=31 and !=41 and !=43
用order by子句对查询出来的结果集进行排序。
asc——升序。
desc——降序。
order by是select语句中最后一个子句。
order by后面可以用别名可以写 2 desc(表示select第2列) 索引不能有空值。
先执行from 然后where然后select最后order by
处理一条select语句。
分析语句。搜索是否有相同语句。
检查语法,表名。权限。
在分析过程中给对象加锁。
生成执行计划。
绑定变量—给变量赋值。
执行语句。获取数据—将数据返回给用户进程。
单行函数。字符函数(character)
lower 小写函数。
upper 大写函数。
initcap 首字符大写函数。
concat 拼接函数('good','string')
substr 求字串函数 substr('string',1,3) /第三位数字表示取字串的位数第二位表示字符串下标正数表示左边第n个负数表示右边第n个)
length 求长度。
lpad 右对齐函数,位数不够的,左边补指定字符lpad(‘string’,10,‘*
rpad 右对齐函数,位数不够的,左边补指定字符。
数值类型(number)
日期类型(date)
转换函数。多行函数(组函数)
round 四舍五入函数 round(小数,小数点后保留位数)不写位数默认保留到个位负数表示小数点前。
trunc 截取函数用法类似round 非保留位无论多大都省略。
to_number将字符串转换成数值。
to_char将数值转化为数字字符串。
隐式类型转换通常会导致索引无法使用。
nls_lang='simplified chinese_'
export nls_lang
nls_lang+'american_'
格式说明 9代表数字位。
0 定义宽度大于。
连接操作。cross join 全连。
inner) join on 内连接匹配问题。
自连接。通过给一张表起不同的别名来将一张表的列间关系转化成不同表之间的关系。
内连接用 and
外连接用 where
外连接 outer join 匹配不上记录。
from ti left join t2 左边的表必须作驱动表。
on = and连接前过滤 where连接后过滤。
外连接的结果集=内连接的结果集+t1表中匹配不上的记录和t2表中的一条null记录。
from ti right join t2
on = 外连接的结果集=内连接的结果集+t2表中匹配不上的记录和t1表中的一条null记录。
组函数操作在一组行记录上。
**g(distinct|all|n) 平均值。
sum (distinct|all|n) 求和。
count(distinct|all|expr|*)计数。
max(distinct|all|expr) 最大值。
min(distinct|all|expr) 最小值。
主函数不处理空值。
当所有值都为空返回0
count(*)表示表中记录数。
group by指定的表达式,叫要处理的数据(若有where子句即为通过条件过滤后的数据)分为若干组,每组有唯一的组标识,组内有若干条记录,根据select后面的组函数对每组的记录进行计算,每组对应一个返回值。
group by xx
all/dinstinct
select 后面若有组函数则其他都必为组函数。
分组后标识含义改变。
若有group by子句,select后面可跟group by后面跟的表达式以及组函数,其他会报错。
group by 子句中包含多列,分组的粒度更细。
group by dept_id,title;
h**ing子句。
行被分组。将h**ing子句的条件应用到每个分组上。
只有符合h**ing条件的组被保留,在应用select后面的组函数对每组的数据进行处理。
h**ing后不能接组函数也不能接列别名。
where过滤的是行(记录)
h**ing子句过滤的是分组(组标识,每组数据的聚合结果)
where子句包含单行函数。
h**ing子句只能包含group by后面的表达式和组函数。
where子句执行在前,h**ing子句执行在后。
where子句和h**ing子句都不允许用列别名。
子查询:1,非关联子查询。
select
fromwhere expr eperator
select from)
先执行子查询,子查询的返回结果作为主查询的条件,再执行主查询。
子查询之执行一遍。
若子查询的返回结果为多个值,oracle会去掉重复值之后,再将结果返回给主查询。
是单行运算符集合时应该用in
where(x,y)多列子查询。
关联子查询采用的是循环(loop)的方式,执行步骤如下:
1 外部查询得到一条记录。
exists 存在。
采用的是循环(loop)方式。
select t1
from outer
where exists (select x from t2 where =
exist是用循环方式(loop),由outer表的记录数决定。
标量子查询。
内连接。select
from t1,t2
where =
select
from t1,t2,t3
where =
and =
外连接。select
from t1,t2
where =
where = 加号侧是匹配表。
and is null
+)连接前过滤。
e-r图。基于数据库的开发。
是一个自顶向下的系统开发方法。
将业务。e-r图实体关系图。
实体。有共同属性的一类对象的集合。
属性。通过属性描述实体,区分实体。
关系。主键值 (primary key) pk
联合主键:多列联合唯一,任意一列都可以重复,每一列都不能为null
child table fk (dept_id)--parent table(id) pk/uk(id)
先create parent table,再建child table
2 先insert into parent table,再insert into child table
3 先delete child table,再delete parent table
4 先drop child table,再drop parent table
范式;第一范式表中不会有重复的记录,即有主属性:每个属性值不再可分。
第二范式每个非主属性必须完全依赖于主属性。
第三范式每个非主属性不能依赖于另一个非主属性。
create table
必须有建表的权限。
命名规则。首字母必须是字母。
名字为1-30个字符长。
只能包含a-z,a-z,0-9,_,和#
同一个命名空间里的对象不能重名。
不能用oracle的保留字。
数据类型:varchar2(size),变长字符类型。
ORACLE学习笔记
rac real application clusters 真实应用集群。ohs oracle http server sga system global area 系统全局区,是系统为实例分配的一组共享缓冲存储区,用于存放数据库数据和控制信息,以实现对数据库数据的管理和操作。实例 存取和控制数据数...
Oracle学习笔记
参数文件 记录了控制文件的位置,控制文件是一个非常小的二进制文件,最大。可以增长到 64mb,控制文件包括如下主要信息 数据库的名字,检查点信息,数据库创建的时间戳 所有的数据文件,联机日志文件,归档日志文件信息 备份信息等 有了这些信息,oracle 就知道那些文件是数据文件,现在的重做日志文件是...
ORACLE学习笔记
目录。oracla管理 1 1.登录sqlplus 1 1.1.sysdba 身份登陆 1 1.2.普通用户登陆sqlplus 1 2.常用命令 1 3.格式化提示符 2 4.查看系统状态 2 4.1.查看实例状态 2 4.2.查看表 2 5.关闭 启动 2 6.创建表空间 3 7.用户和权限 3 ...