关闭

oracle基础

标签: oracle数据库
153人阅读 评论(0) 收藏 举报
分类:

ORACLE

RDBMS:关系型数据库relationaldatabase management system.

完整性:实体完整性:(主键,非空唯一)

参照完整性:(外键必须和外键所在表中列中数据一致)

列级完整性:(列的数据类型固定,某一列只能具有某种类型)

用户自定义完整性:(例:某一列值只能选固定的值“男”“女”)

Oracle 10G server:g是网格的意思(能够同时并行检索)

数据字典:是oracle自动生成的表,字段及该字段的数据类型。

1.      sqlplus “/as sysdba”:以系统管理员登陆oracle数据库。

2.      大型数据库:oracle    db2(IBM)

中型数据库:mysql    sql server(微软)

小型数据库:sqllite

3.      create user  用户名  identified by  密码:创建用户

4.      alter user system identified by密码:修改系统管理员密码

5.      conn 用户名/用户密码:切换用户

6.      conn 任意用户/任意密码 as sysdba:切换管理员账户

7.      grant connect,resource to 用户:授权用户连接数据库

8.      show user :显示当前用户

9.      alter session setnls_date_language=English:修改日期格式

10.   start F:\Oracle.SQL:执行脚本文件

11.   select *

from table://查询表

12.   select table_nam

from user_tables:查询数据字典

13.   desc 表名:查看表结构

14.   distinct:去除重复

15.   nvl(处理字段,默认值):空值处理。

l  sql*plus命令不需要”;”结尾

l  sql语句需要”;”结尾

l  开启数据库服务:startup

l  结束数据库服务:shutdown

Insufficient(不足) privileges(权限):

数据库中字符串和日期用单引号,表示。

转义字符‘

Sql*plus:

①编辑命令(操作缓存区:缓存区保存的是最近执行的sql语句):

A:追加

C /old/new:修改字段

Clear buffer:清空缓存区

Del:删除缓冲区,指定的一行

I:插入一条语句

L:最近执行的一条语句

N:重写一行,n代表第几行。

②文件命令:作用于脚本文件

Save filename:保存sql到文件

Get filename:获取

Start filename:执行脚本

Edit filename:编辑脚本

Spool filename:将所有的命令输出到文件中

必须要以spool off结尾

③列级命令

Format:指定输出字符的格式。

l  注:Filename包括路径。

l  字符串(oracle数据库中以单引号表示)中的单值函数、

一般使用格式:函数名(字段)

lower(字段)

字符串小写

upper(字段)

字符串大写

unitcap(字段)

字符串首字母大写

concat(字段,字段)

字符串拼接,只能两个参数,可以是字段也可以是其他字符,函数自身嵌套拼接多个字符串

substr(字段名,起始位置,结束位置)

截取固定长度字符串,字符串下标从1开始

length(字段名)

返回字符长度

nvl(字段名,默认值)

空值处理

l  注意根据需求可以嵌套函数使用达到需求。

l  数值上单值函数

一般格式:函数名(数值,指定位数)

Round(数值,指定位数)

进行数值的四舍五入,默认位数为0,可正(小数点右边)可负(小数点左边),默认取整数,四舍五入到整数位。例:round(45.925,2)----45.93

Trunc(数值,指定位数)

只舍不取,默认位数为0,可正(小数点右边)可负(小数点左边),默认取整数,只舍不取。例:trunc(45.923)---45

Mod(被取余数,取余标准数)

取余 例:mod(300,1600)------300,mod(3,0)-------3

l  日期单值函数

日期: century,year, month,day,hours,minutes,seconds

默认格式:DD-MON-YY(日期-月数-年份后两位)

l  Dual哑表

作用:①完善查询语句结构②处理函数结果

SYSDATE返回日期  例:selectsysdate from dual;

Months_between(日期一,日期二)

返回的值=(日期一)—(日期二),两个日期相差月数

Add_months(日期,加的月数)

返回值是一个日期,表示在某个日期上增加几个月

Next_day(日期,星期几)

距离指定日期后最近的星期几是那个日期

Last_day(日期)

改日期所对应月份的最后一天

Round(日期,’month’)

看天数,15舍,16入,trunc同理

Round(日期,‘year’)

看月份,6舍,7入,trunc同理

所有日期参数格式:‘DD-MON-YY’

l  转化函数:

 

To_char

把一个含数字的字符串或者日期字符串转换成普通字符串

To_char(date,’fmt’) 把数据库日期转成指定格式字符串输出

To_char(number,’fmt’) 把数字转成指定字符串(格式化显示数据库中的数字),例如,工资显示。格式中的字符大小写控制输出中的格式

To_number

把一个含数字的字符串转成一个number

To_date

把一个日期字符串转成日期值

To_date(char,’fmt’)字符串格式要和指定格式一致

查询结果格式化输出日期格式元素:

数值状态下:

YYYY

完整的年份

MM

月份

D

一个星期的第几天

DD

一个月中第几天

DDD

一年中第几天

英文状态下

YEAR

英文的年

MONTH

英文的月

ddsp

一个月中第几天

ddspth

电工前年的第几天

DAY

星期的全程DY简称

HH24

24小时制小时

HH12

12小时制小时

MI

分钟

SS

AM

上午

PM

下午

月份英文单词的写法:

一月

二月

三月

四月

五月

六月

七月

八月

九月

十月

十一月

十二月

JAN

FEB

MAR

APR

MAY

JUN

JUL

AUG

SEP

OCT

NOV

DEC

星期英文单词的缩写:

星期一

星期二

星期三

星期四

星期五

星期六

星期天

mon

tue

wed

thu

Fri

sat

sun

2

3

4

5

6

7

1

fm:去除空格和零(自动),$:美元 ¥:RMB

数字占位符格式:

9:数值长度小于指定格式长度,显示真实数值,不会自动补齐

0:数值长度小于指定格式长度,以指定长度显示,会自动前面用0补齐

Sql命令:

DML数据操作(数据):insert插入,update更新,delete删除

DDL数据定义(表):create创建表,alter修改表,drop删除表,rename重命名

DCL数据控制:grant授权,revoke回收权限

事务控制:commit(提交),rollback(回滚,恢复到以前),savepoint(保存断点)

结构化查询语言总结

一般一个关键词:占一行

Select:要查询的字段,多个字段逗号隔开

From:要查询字段所在表名,多张表逗号隔开

Where:指定条件查询具体数据,查询语句可嵌套使用。

l  注:条件中的字符串会自动转换。

Union:并集

Minus:差集,可以做分页(只有相同的结果才能做差集)

Interest:交集

Rownum:为例,逻辑位置,只能小于或等于某个整数,只能大于或等于1;

第一步:分析包含几个表

第二步:分析要查询的限制条件

第三步:写查询条件

l  注:多表查询先写链接条件,再写限定条件,优化查询。

l  Is null:空

l  Is not null:非空

l  Not like:不包含

l  Not in:不在集合内

l  In :在集合内

l  Like:匹配常和通配符搭配

不等链接查询:create tables_gender (id number(5) primary key,name varchar(10) not null,minsalnumber(7,2),maxsal number(7,2));//括号里两位数表示,浮点型。

Insertinto s_gender(id,name,minsal,maxsal)

Value(1,‘员工’,1100.03,3000.00);

外连接查询能够查出不满足条件的数据(+)在左边称为做右外链接,(+)在右边称为左外链接;

l  (+)这是oracle特有的。

Right join ……… on

Left join …….. on

Full join ……… on

例:selecte.last_name,d.name

From s_emp e rightjoin s_dept d on e.dept_id = d.id; //这是右外连接

自连接:

需要两张表:

Selecte.last_name,m.last_name

Froms_emp e,s_emp m

Wheree.manger_id = m.id;

分页查询:select last_namefrom s_emp where rownum<=9;// 只能小于或等于某个整数,只能大于或等于1(数据条数从1开始,查询的是全部数据);

差集查询某个范围内的数据:

selectlast_name from s_emp where rownum<=9

minus

selectlast_name from s_emp where rownum<=18//查出来的是10~18条

 

 

组函数:

多个数据处理成一个数据。

Avg:平均

Max:最大

min:最小

sum:求和

count:统计数量。不统计空的数据

Stddev:标准差

Variance:方差

分组查询:

Group by字段:

Having 。。。。。。 groupby。。。。。。可以互换位置

Group by…….having……

l  注意:where 后面不能使用组函数。Groupby一定要在where后面。组函数条件用having关键字。推荐having放在group by后面。

l  二、sql语句执行顺序:数据库存在sql引擎,负责解析和执行SQL语句

             select.....    5

             from.......     1

             where......           2

             group by.... 3

             having....            4

             order by....   6

子查询

当查询条件未知时。

注意子查询可以放在where和from语句后面

 

如果子查询结果有多条则选in关键字。

数据建模与数据库设计

圆角矩形:实体

线条:关系(多对多关系强调同时性)

三角形:代表多的一方

外键放在多的一方

实线:代表must be外键一定不能为空

虚线:代表may be外键可以为空

#:代表属性唯一

*:代表属性为空

O:代表无条件

|:代表联合主键

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:59189次
    • 积分:1849
    • 等级:
    • 排名:千里之外
    • 原创:130篇
    • 转载:1篇
    • 译文:0篇
    • 评论:17条
    文章分类
    最新评论