No.9-数据库自学笔记之Oracle篇
wy_0928
这个作者很懒,什么都没留下…
展开
-
Oracle-05-SQL语句概述、分类&SQL*PLUS概述(初识insert,desc,list,r,del,a,c,n等命令)
一、SQL语句概述(1)SQL全程是“结构化查询语言(Structured Query Language)”。SQL是大多数主流数据库系统采用的标准查询语言。(2)SQL语句的优势:语言结构简单、功能强大、简单易学。(3)在进行SQL开发是为了更容易的访问关系数据库,所以SQL能够执行下面几种操作:①从数据库中查询数据②向数据库中插入数据③从数据库中删除数据④创建和原创 2016-04-03 17:34:27 · 1017 阅读 · 0 评论 -
Oracle-35-隐式游标&显式游标&【Oracle自学总结】
一、游标作用(或定义)1.PL/SQL提供游标机制处理多行记录结果集;2.游标类似于指针,使应用程序一次可以处理其中的一行记录,比如将游标放入一个for循环中,每循环一次就处理一行记录,那么循环n次就可以处理n行记录;3.Oracle中,可以分为显式游标和隐式游标两种,比如select*fromstudent就是用隐式游标进行遍历student表,然后将查询结果展示;4.在平常在进原创 2016-04-15 10:16:21 · 10153 阅读 · 0 评论 -
Oracle-01-学习内容&安装遇到的问题记录
前言还有3个月左右硕士毕业,由于工作需要,所以提前预习数据库,面试时候HR提到让我回去把Oracle多看看,因为岗位是数据分析挖掘,经过百度,发现只要求会用就可以,不需要太精通,也就是说数据库是将来工作的一个工作,不会涉及DBA,那么现在就开始看起来!安装遇到的问题首先,本人纯数据库小白,而且手头这台陪我度过本科硕士的笔记本电脑性能不足,加上百度,决定先从Oracle 11g原创 2016-03-24 16:30:44 · 1092 阅读 · 0 评论 -
Oracle-04-用SQL*PLUS创建用户&新用户授权等
一、发现如之前所说的sqlplus sys/ as sysdba口令,对于sys用户可以随意输入密码都能连接数据库,比如“sqlplus sys/moon as sysdba”、“sqlplus sys/aaa as sysdba”等等都可以登录数据库 二、第一个SQL语句:sql*fromall_users;连接上数据库后,在cmd窗口输入以上SQL语句,回车,发现列出当前数据库的所原创 2016-03-28 23:01:21 · 25567 阅读 · 0 评论 -
Oracle-06-常用数据类型
一、掌握Oracle常用数据类型,是创建表的基础。因为创建表时候,都必须为表中的每一列指定数据类型。Oracle常用数据类型如下:(1)CHAR(length):存储固定长度字符串。length参数指定了字符串的长度。如果存储的字符串长度较小,就在字符串末尾以空格补全。(2)VARCHAR2(length):存储可变长度字符串。length参数指定了字符串的长度。即使存储字符串长度比指原创 2016-04-13 21:56:57 · 533 阅读 · 0 评论 -
Oracle-07-数据类型例子&查询当前系统时间&创建表语法
一、解释,number(6,2)指定整数部分4位,小数部分2位,那么123.45678这个数字整数部分3位符合要求,小数部分5位,超出,所以小数部分保留前2位且四舍五入,所以数据库中存储的就是123.46。而对于12345.678会报错“输入的数字超过指定”,即证书部分“溢出”了。 二、查询当前系统时间其中dual是虚表,也就是说系统时间是一个数据,但是必须用表原创 2016-04-13 22:08:29 · 3476 阅读 · 0 评论 -
Oracle-08-修改表结构(对已有的表增删改查)
一、在创建表的时候加上主键的例子:create table stu(id number(5)primary key,name varchar2(20));以上是一种主键约束。简单了解下。约束表中id列中的数据,要求不为空且不能重复。 二、修改表结构常用的3种操作:1.在一个表中加入一个新的列语法格式:alter table 表名 add(列名 数据类原创 2016-04-13 22:52:44 · 6080 阅读 · 0 评论 -
Oracle-09-删除表(drop和truncate区别、闪回删除等)
一、如果既要删除表中的数据也要删除表的结构,请使用droptable语句,其格式如下:drop table 表名 drop table语句(是DDL语句)有如下特征:(1)它删除表中所有的数据行和表结构;(2)它也删除表的所有索引(后续会讲到);(3)如果没有备份的话,所删除的表无法恢复,Oracle 10g之前版本如果不备份无法恢复,但是Oracle 10g开始提供闪原创 2016-04-13 23:07:11 · 7524 阅读 · 0 评论 -
Oracle-10-对表中数据进行增删改查
一、插入数据操作当往一个表中添加一行新的数据时,需要使用DML语言中的insert语句,其语法格式如下:insert into 表名 [(列名,列名…)]values (数值,数值…) 例:往A表中插入一行新的数据insert into A (id,name)values (1003,’王麻子’)实战操作: 二、子查询插入数据语法格式:cre原创 2016-04-13 23:17:36 · 4341 阅读 · 0 评论 -
Oracle-12-外键约束
一、外键约束(即引用完整性约束)例:有如下两张表他们之间的引用完整性create tablestudent (--学生表s_id number(5)primary key,s_namevarchar2(20),t_idvarchar2(5),constraint fk_stuforeign key (t_id) references team (t_id)) c原创 2016-04-14 17:19:42 · 6771 阅读 · 0 评论 -
Oracle-13-当父表和子表有外键约束时如何删表及数据
一、对于之前创建的game和player两表,前者是父表,后者是子表,如果此时删除父表,无论是否加关键字purge,都无法删除,因为不允许破坏外键约束,如下图: 二、尝试删除父表game中1001这个比赛项目,如下图因为该项目已经被子表中的id=1的运动员参加,换而言之,就是1001这个运动项目已经与子表id=1这个运动员关联,如下图:所以如果盲原创 2016-04-14 17:25:50 · 9427 阅读 · 1 评论 -
Oracle-14-非空约束
一、非空约束两种实现方式:方式1.在创建表的时候就约束非空,如下:create tablestudent (id number(5)primary key,namevarchar2(20) not null); 方式2.对于已存在的表添加非空约束,如下:alter table student modify name not null;为student表中的nam原创 2016-04-14 17:29:53 · 972 阅读 · 0 评论 -
Oracle-15-唯一约束
一、唯一约束的实现方式:方式1:在创建表时就添加唯一约束,如下:create tablestudent (id number(2)primary key,namevarchar2(10) unique–设置列“name”唯一约束); 方式2:为已存在的表添加唯一约束,如下:alter table student add constraint uk_stu uniqu原创 2016-04-14 17:34:33 · 948 阅读 · 0 评论 -
Oracle-16-check约束
一、CHECK约束,例如创建一张文秘表,其要求如下:要求女性且年龄在18~35岁之间。create tableperson (id varchar2(5)primary key,namevarchar2(20),age number,sexvarchar2(2),constraint person_age_ckcheck (age between 18 and 35),原创 2016-04-14 18:24:11 · 886 阅读 · 0 评论 -
Oracle-19-like运算符&转义操作符
一、LIKE比较运算符LIKE比较运算符也可以称为通配符。LIKE运算符可以使用以下两个通配符“%”和“_”,其中“%”代表零个或多个字符,“_”代表一个且只能是一个字符。 比如:如果您只记得SALESMAN的第一个字符为S,第三个字符为L,第五个字符为S,那么查询语句该怎么写?SQL>selectempno, ename, sal, job from emp wherejob原创 2016-04-14 19:42:48 · 10853 阅读 · 1 评论 -
Oracle-20-is null使用&order by子句
一、IS NULL使用有时,你可能想要编写显示在特定列中包含NULL值(表示未知的值)的行,你可以使用IS NULL。 比如:SQL>selectempno, ename, comm from emp where comm is null; 二、Order by子句利用Order by子句对查询的结果进行排序。ASC(ascending order)为升序排序,也是原创 2016-04-14 19:47:40 · 750 阅读 · 0 评论 -
Oracle-33-变量%type、变量%rowtype、记录类型、记录表类型
一、%type变量当用户事先并不知道检索的数据列的数据类型,可以使用%type定义变量。比如:SQL>idemp.empno%type就是将emp表中empno列的数据类型为变量id的数据类型。 例1:练习%type定义未知类型的变量。解:用student表做:二、%rowtype变量%rowtype变量一次可以存储一行数据。例2:练习%原创 2016-04-15 09:48:25 · 9798 阅读 · 0 评论 -
Oracle-32-初识PL/SQL程序&PL/SQL变量&PL/SQL常量
一、PL/SQL程序结构包括3个部分:1.DECLARE部分:定义变量、常量和游标等;2.EXCEPTION部分:引领程序块异常处理部分;3.BEGIN至END部分:标识程序块的可执行部分。 比如如下PL/SQL程序块:SETSERVEROUTPUT ON;——将状态设置为on,这样之后的打印语句才能显示在控制台DECLAREout_textvarchar2(50)原创 2016-04-15 09:01:56 · 1421 阅读 · 0 评论 -
Oracle-31-对视图DML操作
一、对视图进行DML操作1.创建一个视图v_personcreate or replace noforceview v_personas select *from person where id between 1003 and 1007; 2.向视图v_person中进行insert操作insertinto v_person (id,name)原创 2016-04-15 08:55:35 · 5787 阅读 · 0 评论 -
Oracle-02-数据库概述
一、数据库用途用于存放数据的软件其中Application server重要,将数据存在表中每个表关系就可以反映不同表之间数据的关系,比如淘宝用户注册、商品买卖等数据存在操作系统的文件夹中,不便于管理,也不便于关联,所以可用数据库解决以上问题,将不同类别的数据关联起来 图中的Database administrator(DBA)可管理整个数据库,Application原创 2016-03-25 22:58:41 · 887 阅读 · 0 评论 -
Oracle-03-初次连接数据库
一、连接数据库“三必要”:1.数据库的服务要启动; 2.有正确的用户名和密码;3.SQL*PLUS工具。二、连接数据库的具体操作步骤:1.开始菜单→运行→输入cmd回车→输入services.msc回车→弹出“服务”窗口→检验如下服务是否开启:(1)OracleDBConsoleorcl:控制台服务,也就是Oracle的企业管理器;(2)OracleJobSch原创 2016-03-25 23:05:23 · 719 阅读 · 0 评论 -
Oracle-11-主键约束
一、Oracle系统一共提供了以下5种约束1.非空(NOT NULL)约束:所定义的列绝不能为空;2.唯一(UNIQUE)约束:在表中每一行中所定义的列,其列值不能相同;3.主键(PARIMARY KEY)约束:唯一标识表中的一行;4.外键(FOREIGN KEY)约束:用来维护子表(Child Table)和父表(Parent Table)之间的引用完成行;5.条件(CHEC原创 2016-04-14 17:10:55 · 6470 阅读 · 0 评论 -
Oracle-17-数据字典查看约束信息
一、查看有关约束信息1.利用数据字典user_constraints可以查看用户模式下的表的约束信息SQL> selectowner,constraint_name,constraint_type,table_name2 from user_constraints;上述SQL语句可以查询出用户模式下每张表的约束情况 2.利用数据字典user_cons_columns可以查原创 2016-04-14 18:31:30 · 11384 阅读 · 0 评论 -
Oracle-18-select语句初步&SQL中用算术表达式&别名的使用&连接运算符%distinct&where子句
一、一般SELECT语句的格式如下:1.查询指定表的所有列select * from 表名 [where 条件] [group by分组列名] [having 聚合函数] [order by排序列名 ASC| DESC]在表名地方,可以写多个表 2.查询指定表的部分列:select {[distinct]列名,列名,…}from表名 [where 条件] [原创 2016-04-14 18:52:33 · 8946 阅读 · 0 评论 -
Oracle-22-单行函数之数字函数
一、单行函数之数字函数在Oracle中数字函数可以用于计算,但是需要注意的是数字函数中参数一定要为数字类型,或者是数字表达式。那么使用数字函数对输入的参数进行计算,然后将计算的结果返回出去。 1. abs(x)——取x的绝对值;2. asin(x)——取x的反正弦;3. acos(x)——取x的反余弦;4. atin(x)——取x的反正切;5. cos(x)——取x的余原创 2016-04-14 21:23:06 · 788 阅读 · 0 评论 -
Oracle-30-常用系统权限&查看当前用户权限&为用户授予创建视图的权利
一、Oracle常用系统权限查看当前lisi用户的权限,注意下图的数据字典命令:查看当前lisi用户角色,注意下图的数据字典命令:查看系统级权限表,注意下图的数据字典命令:对于最右边列ADM说明:所以ADM就是ADMIN_OPTION的缩写原创 2016-04-15 08:43:10 · 1586 阅读 · 0 评论 -
Oracle-34-if语句、case语句、loop循环、while循环、for循环
一、IF语句在PL/SQL中,if, then, else, elsif, endif等关键字用来执行条件逻辑语法格式:if 条件1 then 语句1elsif 条件2 then 语句2else 语句3end if; 例1:练习if结构解:注意下图中的程序:二、case语句原创 2016-04-15 10:03:42 · 12168 阅读 · 1 评论 -
Oracle-23-单行函数之日期函数
一、单行函数之日期函数1.trunk(x[,y])——对x进行截断;2.round(x[,y])——对x进行取整;3.next_day(x,day)——返回从x开始,一个day的日期;4.months_between(x,y)——返回x和Y之间的差值;5.last_day(x)——返回包含该月的最后一天;6.add_months(x,y)——返回x加上y个月后的结果。例原创 2016-04-14 21:34:25 · 4613 阅读 · 0 评论 -
Oracle-24-聚合函数&group by的使用
一、聚合函数1.count——返回找到的记录数;2.min——返回一个数字列或计算列的最小值;3.max——返回一个数字列或计算列的最大值;4.sum——返回一个数字列或计算列的综合;5.avg——对一个数字列或计算列求平均值; 例1:练习count函数解:查询当前登录用户下的student表全部信息:用count查询记录数:由此可以原创 2016-04-14 21:47:58 · 17329 阅读 · 0 评论 -
Oracle-25-having子句&连接的定义(如多表联查)
一、Having子句1. Having子句可以对聚合函数进行限制。比如:SQL>selectjob, avg(sal) from emp group by job having avg(sal)>1500;上述SQL子句执行思路:(1)使用group by子句将行分组为job相同的部分,即job列数据相同的员工信息分为一组;(2)针对上一步得到的分组数据,使用a原创 2016-04-14 21:57:19 · 7018 阅读 · 0 评论 -
Oracle-26-内连接(等值、不等值连接、自然连接)&外连接(左外、右外、全连接)&using子句
一、连接分类:1.内连接(1)等值连接:在连接中使用等号(=)操作就是等值连接。比如查询部门编号为30的员工编号、姓名、部门名称。①SQL>selectempno, ename, dname from emp, dept 2 whereemp.deptno =dept.deptno and dept.deptno= 30;②SQL>selecte原创 2016-04-14 22:07:25 · 10213 阅读 · 2 评论 -
Oracle-27-集合操作(交集、并集、差集)&子查询之单行子查询
一、集合操作1.UNION:并集运算。语法结构:SQL>select 表1的列1, 表1的列2 from 表1 union select表2的列1, 表2的列2 from 表2;其中表1的列1和表1的列2是来自于表1的两列,表2的列1和表2的列2是来自于表2的两列,需要注意的是,如果union前面是n列,那么后面也必须是n列,即union前后列数必须相同。而且查询结原创 2016-04-15 08:16:58 · 17215 阅读 · 1 评论 -
Oracle-28-子查询之多行子查询&子查询之多列子查询
一、子查询的基本类型之多行子查询(1)使用IN操作符进行多行子查询。(总结:IN操作符后可用多行子查询)比如:查询各个职位中工资最高的员工信息。SQL>select ename, job, sal from emp where salin (select max(sal) from emp group by job);——单列子查询或SQL>select ename, jo原创 2016-04-15 08:28:43 · 16052 阅读 · 1 评论 -
Oracle-29-视图简介&创建视图
一、视图介绍1.视图实际是一个或多个表上的预定义查询,这些表称为基表。从视图中检索信息与从表中检索信息方法完全相同:只需要简单地在SELECT语句的FROM子句中使用视图即可。通过视图可以对基表进行DML操作。注意:视图中并不存储数据,它们只会访问基表中的行。 如下:其中视图基于基表1、基表2、基表3三张基表,所以通过SELECT语句对视图操作,就可原创 2016-04-15 08:34:46 · 712 阅读 · 0 评论 -
Oracle-21-SQL单行函数之字符函数
一、SQL函数Oracle提供了丰富的内建函数。一个函数接受0个或多个输入值,并返回一个输出值。Oracle函数分为两组:单行函数(singlerow function)和聚合函数(aggregatefunction)。 单行函数:一次只操作一行并且针对每个出书行返回一行。聚合函数:同时对多个行进行操作并返回一行输出结果。 二、单行函数Oracle有许多单行函数,可归纳原创 2016-04-14 21:12:28 · 4071 阅读 · 0 评论