Orale数据库必备知识.docx
- 文档编号:25203083
- 上传时间:2023-06-06
- 格式:DOCX
- 页数:27
- 大小:26.56KB
Orale数据库必备知识.docx
《Orale数据库必备知识.docx》由会员分享,可在线阅读,更多相关《Orale数据库必备知识.docx(27页珍藏版)》请在冰豆网上搜索。
Orale数据库必备知识
Oracle教程记录:
1·OracleOraDb10/11g_home1TNSListener:
表示监听服务,如果客户端想连接数据库,次服务必须打开,在日后开发中次服务起作用。
2·OracleServeiceMLDN,表示数据库主服务,命名规则:
OracleService数据库名称。
次服务必须启动。
负责Oracle根本无法使用。
3·直接通过命令行方式进入SQLPlus的控制中心,进行命令的输入。
4·也可以通过窗口的形式启动命令行工具,及sqlplusw工具。
5·查询、修改、插入、删除等语句必须以分号结束语句及“;”。
6·进入环境以后首先进行环境设置:
<1>设置每行显示的长度:
setlinesize长度值;
<2>设置每页显示记录的长度:
setpagesize行数值;
7·在sqlplusw中因为没法修改输入内容,所以一般会使用本机的记事本程序进行编辑,直接在命令窗口输入“ed文件名即可”,输入完成之后,会提示用户是否要创建文件,编辑完成以后可以通过@文件名的方式执行命令,除了可以直接简历文件以外也可以通过@找到磁盘上的文件如“@d:
\demo·txt”效果是一样的,如果后缀名是“*·sql”,在查找是可以不注入后缀,系统默认的是“·sql”文件。
8·在sqlplusw/sqlplus中可以使用其他用户连接
·sys是超级管理员
·system是普通管理员
·scott是普通用户
*连接格式:
conn用户名/密码[assysdba|sysoper]
·如果现在连接的是超级管理员(sys),则在连接的最后必须写上ASSYSDBA。
以系统管理员的身份进行登陆。
例如:
connsys/xuli564335assysdba;
注意:
如果连接用户下查询某一个用户下表而其连接用户没用此表则必须加上该表所在的用户名,格式:
”用户名·表名“
9·显示当前连接的用户是那个:
showuser;
10·查看标的完整结构:
desc表名称;
11·SQL可以分为以下几组:
DML:
数据操作语言——用户检索或者修改数据。
DDL:
数据定义语言——用于定义数据结构,如如创建、修改或者删除数据哭对象。
DCL:
数据控制语言——用于定义数据库用户权限。
11·查询的时候也可以为其返回列指定名称及别名:
格式:
select字段名别名from表名称;
12·去除查询结果中的重复列用DISTINCT可以直接消除:
格式:
select{DISTINCT}*|具体列名别名from表名称;
13·修改查询结果的信息显示格式添加新信息可以用||连接,所有其他的固定信息要使用”''“括起来:
格式:
select'固定信息'||列名称||'固定信息'||列名称······from表名称;
14·在进四则运算时要给返回列期别名必须回避中文:
格式:
select具体列名称+/-/*//数值别名(用英文表示)from表名称
15·WHERE限制后面的一些语法汇总:
<1>判断为空:
ISNULL;
<2>判断不为空:
ISNOTNULL
<3>判断等于:
=;
<4>判断不等于:
<>/!
=;
<5>判断大于或者大于等于:
>/>=;
<6>判断小于或者小于等于:
<=;
<7>判断的两个或者两个以上的条件都必须成立:
AND连接;
<8>判断的两个或者两个以上的条件中有一个条件成立即可:
OR连接;
<9>判断要求整体条件取反:
NOT(整体条件)
<10>查询指定范围的过滤语句:
字段名称BETWEEN最小值and最大值;此查询语句包含了等于,查询的是日期的时候则必须加“''”,BETWEEN····AND····可以查询日期和数值。
<11>指定查询范围可以用IN操作来完成,语法格式:
字段IN/NOTIN(值1,值2,值3,值4······)
<12>查询中也可以使用模糊查询即“LIKE”,在使用LIKE是要注意通配符,LIKE主要使用两种通配符:
·“%关键字%”:
可以匹配任意长度的内容,如果没有指定关键字怎么表示查询全部内容
·“_关键字”:
可以匹配一个长度的内容
<13>使用ORDERBY字段名称ASC/DESC,对查询结果进行排序,ASC:
表示升序,DESC:
表示降序,当存在两个排序条件时其语法格式:
ORDERBY字段名称ASC,字段名称DESC。
16·在Oracle中对大小写是敏感和区分的。
17·SQL中的单行函数
<1>单行函数分类:
·字符函数:
接受字符输入并且返回字符或者数值
·数值函数:
接受数值并返回数值
·日期函数:
对日期型数据进行操作
·转换函数:
从一种数据类型转换为另一种数据类型
·通用函数:
NVL函数,DECODE函数
<2>字符函数
·变小写字母为大写字母用UPPER()函数,语法格式:
UPPER('字段值'/字段名称)
例子:
SELECTUPPER('字段值'/字段名称)FROM表名称;
·变大写字母为小写字母用LOWER()函数,语法格式:
LOWER('字段值'/字段名称)
例子:
SELECTLOWER('字段值'/字段名称)FROM表名称;
·变字段值的第一个字母为大写使用INITCAP()函数,语法格式:
INITCAP('字段值'/字段名称)
例子:
SELECTINITCAP('字段值'/字段名称)FROM表名称;
·字符串除了可以使用“||”连接之外,还可以使用CONCAT()函数进行连接,语法格式:
CONCAT('字段值','字段值'········),此连接方式不如“||”好用。
·字符串截取的时候可以使用SUBSTR()函数截取,语法格式:
SUBSTR('字段值'/字段名称,截取位置值,截取位数值),在Oracle中SUBSTR()函数的截取点是从0或者1开始,其效果是一样的。
截取点可以是负值表示倒着取。
·计算字符串长度是使用length()函数获取,语法格式:
length('字段值'/字段名称)
·字符串替换的时候使用REPLACE()函数替换,语法格式:
REPLACE('字段值'/字段名称,需要替换的内容,赋予的新内容)。
<3>数值函数
·需要四舍五入的时候使用ROUND()函数,语法格式:
ROUND('字段值'/字段名称),也可以指定保留的小数位数,语法格式:
ROUND('字段值'/字段名称,保留位数值),其中保留位数值可以是负数。
·截断小数位的时候使用TRUNC()函数,语法格式:
ROUND('字段值'/字段名称),与ROUND()函数不同的是TRUNC()函数不保留任何小数位也不存在四舍五入,但TRUNC()函数,也可以指定保留的小数位数,语法格式:
TRUNC('字段值'/字段名称,保留位数值),其中保留位数值可以是负数。
·取余或者叫取模的时候使用MOD()函数,语法格式:
MOD('字段值'/字段名称,与字段值/字段名称取模的值)
<4>日期函数
·日期加减的规律:
日期-数字=日期
日期+数字=日期
日期-日期=数字(天数)
·求出当前日期使用sysdate
例子:
SELECTSYSDATEFROMDAUL
·求出星期数:
当前日期-起始日期=天数/7=天数或者ROUND(当前日期-起始日期=天数/7=天数)
·Oracle提供几种日期函数支持:
MONTHS_BETWEEN():
求出给定日期范围的月数
例子:
selectMONTHS_BETWEEN(sysdate,给定日期值)ROUND(MONTHS_BETWEEN(sysdate,给定日期))from表名称
ADD_MONTHS():
在指定日期上加上指定的月数求出之后的日期
例子:
selectADD_MONTHS(sysdate,加上指定的月数值)fromDAUL
NEXT_DAY():
下一个的今天是那个日期
例子:
selectADD_MONTHS(sysdate,'星期一')fromDAUL
LAST_DAY():
求出给定日期的最后一天日期
例子:
selectLAST_DAY(sysdate)fromDAUL
<4>转换函数
·TO_CHAR():
转换成字符串,对年、月、日进行分开的时候指定拆分的通配符,并且此函数也可以用在数字上:
年:
y,年是四位的数字,所以使用yyyy表示
月:
m,月是二位的数字,所以使用mm表示
日:
d,日是二位数字,所以使用dd表示
例子1:
selectTO_CHAR(日期字段名称,'yyyy')year(别名),TO_CHAR(日期字段名称,'mm')months(别名),TO_CHAR(日期字段名称,'dd')day(别名)from表名称
例子2:
selectTO_CHAR(日期字段名称,'yyyy-mm-dd')from表名称
转换数字是可以加入一些符号,中国一般用”,“,如果希望数字可以明确的表示出区域比如金钱可以使用一下两种符号,
$:
表示美元
L:
是LOCAL的缩写,以本地语言进行金额显示
语法格式:
TO_CHAR(字段名称,'$/L99,999,999')
·TO_NUMBER():
转换成数字,可以将字符串变为数字的函数,其结果可以进行四则运算
例子:
SELECTTO_NUMBER('123')+/-/*//TO_NUMBER('123')FROMDUAL
·TO_DATE:
转换成日期,可以将一个字符串变为一个DATE型数据
例子:
SELECTTO_DATE('2009-08-18','yyyy-mm-dd')FROMDUAL
<5>通用函数
·NVL()函数:
可以将一个指定的NULL值变成指定内容,在进行计算的时候对有NULL的字段必须使用NVL()函数进行一个转换操作,负责计算结果认为空值。
例子:
SELECTNVL(指定字段名称,指定内容),(指定字段名称,NVL(指定字段名称,指定内容))*12别名FROM表名称;
·DECODE()函数:
类似于IF····ELSEIF····ELSE语句:
例子1:
SELECTDECODE(1,1,'内容是1',2,'内容是2',3,'内容是3',4,'内容是4')FROMDUAL;
查询结果是:
内容是1
例子2:
SELECTDECODE(字段名称,字段值1,'替换信息1',字段值2,'替换信息2',字段值3,'替换信息3',字段值4,'替换信息4')FROM表名称;
18·分组函数及分组统计
<1>组函数分类
·COUNT():
求出全部的记录数
·MAX():
求出一组中的最大值
·MIN():
求出最小值
·AVG():
求出平均值
·SUM:
求和
<2>COUNT()函数
例句:
SELECTCOUNT(*/名称字段)FROM表名称;
注意:
一般最好写某个字段不要用*表示。
<3>MAX/MIN()函数
例句:
SELECTMAX/MIN(名称字段)FROM表名称;
<4>AVG/SUM()函数
例句:
SELECTAVG/SUM(名称字段)FROM表名称;
<5>分组统计函数GROUPUP分组条件及字段名称:
语法格式:
SELECT{DISTINCT}*|查询列1,查询列2,查询列3,查询列4···FROM表1列名1,表2列名2,表3列名3····{WHERE条件}{GROUPUP分组条件及字段名称}{ORDERBY排序字段名称1ASC|DESC,排序字段名称2ASC|DESC,}
注意:
使用分组条件,则有两种使用情况:
·程序中存在GROUPBY,并指定了分组条件,则可以将分组条件一起查询出来。
·如果不使用分组的话,则只能单独使用分组条件。
例子:
SELECT查询列名称,COUNT(查询列名称)FROM表名称;
此查询语句查不出结果。
例子:
SELECTCOUNT(查询列名称)FROM表名称;可以查询出结果。
·使用分组条件和分组函数的时候不能出现分组条件或者分组函数以外的字段。
例子:
SELECT查询字段名1,查询字段名2,COUNT(查询字段名2)FROM表名称GROUPBY查询字段名1
此查询语句是错误的,因为查询字段名2不是GROUPUP的表达式,所以分组不执行。
·分组函数只能在分组中使用,不能在WHERE语句中出现,如果现在要指定分组条件,则只能通过第二种条件的指令:
HAVING,此时语法格式:
SELECT{DISTINCT}*|查询列1,查询列2,查询列3,查询列4···FROM表1列名1,表2列名2,表3列名3····{WHERE条件}{GROUPUP分组条件及字段名称{HAVING分组条件}}{ORDERBY排序字段名称1ASC|DESC,排序字段名称2ASC|DESC,}
例子1:
SELECT查询字段名1,AVG(查询字段名2)FROM表名称WHEREAVG(查询字段名2)>某个数值GROUPBY查询字段名1;
此查询语句是错误,不能执行查询结果。
例子1:
SELECT查询字段名1,AVG(查询字段名2)FROM表名称GROUPBY查询字段名1HAVINGAVG(查询字段名2)>某个数值;
此查询语句是可以执行查询并检索出结果。
19·子查询
<1>子查询:
就是必须在“()”里编写代码。
例子:
SELECT*FROM表名称WHERE列名称>(select列名称FROM表名称WHERE列名称1=某个数值)
·子查询分为以下三类:
单列子查询:
返回结果是一列的一个内容,出现记录最高
单行子查询:
返回多个列,可能是一条完整的记录
多行子查询:
返回多条记录
<2>在子查询中有以下三种操作符:
·IN:
指定一个查询的范围
例子:
SELECT*FROM表名称WHERE列名称IN(selectMIN(列名称)FROM表名称GROUPBY列名称1)
·ANY
=ANY:
与IN操作符的功能完全一样。
例子:
SELECT*FROM表名称WHERE列名称=ANY(selectMIN(列名称)FROM表名称GROUPBY列名称1)
>ANY:
比里面最小的值要大
例子:
SELECT*FROM表名称WHERE列名称>ANY(selectMIN(列名称)FROM表名称GROUPBY列名称1)
比里面最大的值要小 例子: SELECT*FROM表名称WHERE列名称 ·ALL >ALL: 比最大的值要大 例子: SELECT*FROM表名称WHERE列名称 比最小的值要小 例子: SELECT*FROM表名称WHERE列名称>ALL(selectMIN(列名称)FROM表名称GROUPBY列名称1) 20·左右连接 <1>(+)=: 左边表示右连接 <2>=(+): 右边表示左连接 21·交叉连接(CROSSJOIN): 产生笛卡尔积 例子: SELECT*FROM表名称1CROSSJOIN表名称2; 22·自然连接(NATURALJOIN): 自动进行关联字段的匹配 例子: SELECT*FROM表名称1NATURALJOIN表名称2; 23·USING字句: 直接关联的操作列 例子: SELECT*FROM表名称1别名1JOIN表名称2别名2USING(两表共同的字段名)WHERE两表共同的字段名=某个数值; 24·ON字句: 用户自己编写的连接条件 例子: SELECT*FROM表名称1别名1JOIN表名称2别名2ON(表名称1·两表共同的字段名=表名称2·两表共同的字段名)WHERE表名称1·两表共同的字段名=某个数值; 25·左连接(做外连接): RIGHTJION;右连接(右外连接)LEFTJION 例子: SELECT*FROM表名称1别名1RIGHTOUTERJOIN表名称2别名2ON(表名称1·两表共同的字段名=表名称2·两表共同的字段名); 26·清空过多的记录: 格式语法: CLEARSCR; 27·commit: 提交事务及session。 语法格式: COMMIT; 28·rollback: 执行事务回滚操作,在没有执行提交事务命令之前使用可以反之不能执行回滚。 语法格式: ROLLBACK; 29·常用的数据类型 <1>VACHAR,VARCHAR2: 表示一个字符串,有效长度为255。 <2>NUMBER: ·NUMBER(m): 表示的是一个整数,数字长度为n,可以使用INT。 ·NUMBER(m,n): 表示一个小数,小数的长度为n,整数的长度为m-n,可以使用FLOAT。 <3>DATE: 表示日期函数,日期函数以标准日期格式存放。 <4>CLOB: 大对象,表示大文本数据,可以存放4个G的文本。 <5>BLOB: 大对象,表示二进制数据,最大可以存放4个G,一般存放视频、图片歌曲等。 29·创建数据表 语法格式: CREATETABLE表名称( 字段名称1字段类型[DEFAULT默认值], 字段名称2字段类型[DEFAULT默认值], ······ 字段名称n字段类型[DEFAULT默认值] ) 30·复制表语法 CREATETABLE表名称AS(子查询); 例子: CREATETABLE表名称AS(SELECT*FROM表名称1); ·上例子表示完全复制表的结构和表的内容 例子: CREATETABLE表名称AS(SELECT*FROM表名称1WHERE字段名称=某个值); ·上例子表示复制标的结构和部分内容 例子: CREATETABLE表名称AS(SELECT*FROM1=2); ·上例子中的条件里加入了一个不可能成立的条件,怎么表示只复制表的结构,不复制表的内容。 31·删除表里的数据用DELETE,删除表用DROP。 32·为表增加列用ALTER 语法格式: ALTERTABLE表名称ADD(列的名称列的类型列的默认值[DEFAULT]········); 33·修改表结构的语法 语法格式: ALTERTABLE表名称MODIFY(列的名称列的类型列的默认值[DEFAULT]); 一般最好不要使用修改命令。 34·为表重命名的语法 语法格式: RENAME旧表名称TO新表名称; 35·截断表: 表示清空表的记录,不需要执行回滚操作用TRUNCATE命令。 语法格式: TRUNCATE表名称; 36·约束的分类 <1>主键约束: 主键表示一个唯一的表示,其本身不能为空。 例子: 语法格式: CREATETABLE表名称( 字段名称1字段类型PRIMARYKEY, 字段名称2字段类型[DEFAULT默认值], ······ 字段名称n字段类型[DEFAULT默认值] ) 或者 CREATETABLE表名称( 字段名称1字段类型, 字段名称2字段类型[DEFAULT默认值], ······ 字段名称n字段类型[DEFAULT默认值], CONSTRAINT表名称_字段名称1_PKPRIMARYKEY(字段名称1) ) PK表示主键约束。 <2>唯一约束: 在一个表中只允许建立一个主键约束,而其他列不希望出现空值的话,可以使用唯一约束。 语法格式: CREATETABLE表名称( 字段名称1字段类型, 字段名称2字段类型UNIOUENOTNULL, ······ 字段名称n字段类型[DEFAULT默认值], CONSTRAINT表名称_字段名称1_PKPRIMARYKEY(字段名称1), CONSTRAINT表名称_字段名称1_UKUNIOUE(字段名称2) ) <3>检查约束: 检查某一列是否合法。 语法格式: CREATETABLE表名称( 字段名称1字段类型, 字段名称2字段类型UNIOUENOTNULL, AGENUMBER(20)NOTNULLCHECK(AGEBETWEEN0AND150), SEXNUMBER(20)NOTNULLCHECK(SEXIN('男','女','中性')), ······ 字段名称n字段类型[DEFAULT默认值], CONSTRAINT表名称_字段名称1_PKPRIMARYKEY(字段名称1), CONSTRAINT表名称_字段名称1_UKPRIMARYKEY(字段名称2) ) 或者 语法格式: CREATETABLE表名称( 字段名称1字段类型, 字段名称2字段类型NOTNULL, AGENUMBER(20), SEXNUMBER(20), ······ 字段名称n字段类型[DEFAULT默认值], CONSTRAINT表名称_字段名称1_PKPRIMARYKEY(字段名称1), CONSTRAINT表名称_字段名称2_UKUNIOUE(字段名称2), CONSTRAINT表名称_AGE_CKCHECK(AGEBETWEEN0AND150), CONSTRAINT表名称_SEX_CKCHECK(SEXIN('男','女','中性')), ) <4>非空约束: 字段内容不允许为空。 语法格式: CREATETABLE表名称( 字段名称1字段类型, 字段名称2字段类型NOTNULL, ······ 字段名称n字段类型[DEFAULT默认值] CONSTRAINT表名称_字段名称1_PKPRIMARYKEY(字段名称1) ) <5>外键约束: 在两个表里进行约束操作。 ·其实就是主外键约束,有父表和子表(FOREIGNKEY) 例子: CREATETABLEPERSON( PIDVARCHAR2(18), NAMEVARCHAR2(200)NOTNULL, AGENUMBER(20)NOTNULL, BI
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Orale 数据库 必备 知识