oracle网络关系型数据库,(mysql、sqlserver)
角色:dba、resource、connect
创建用户:create user kuang2 identified by 123456;
赋权:1.赋予用户角色grant connect,resource to kuang2;
2.赋予用户权限grant create session,create tablespace to kuang2;
数据类型:char(n)固定字符、varchar2(n)可变长度的字符串、clob字符数据(存储大的字符数据)
number(p,s) p为整数位,s为小数位。
date日期(日-月-年)dd-mm-yy(hh-mi-ss)
timestamp日期(日-月-年)dd-mm-yy(hh-mi-ss:ff3)ddl
创建表:create table表名(
字段名称数据类型约束,);
create table userinfo(id number primary key,age number,sex char(1) not null);
删除表drop table表名;
表空间:1.创建表会放在用户的默认表空间里面,users2.表空间是数据库的逻辑划分,用来存放表3.创建表空间。
create tablespace platform
datafile 'd:\oracle\user_'-数据库表空间存放文件地址size 10m--初始容量大小。
autoextend on--自动扩展。
next 10m maxsize 100m--自动扩展容量大小,最大到100m
extent management local;--存放在本地。
数据完整性约束。
1.实体完整性保证的主关键字不为空且不重复primary key主键。
2.域完整性保证表中数据的合理性check检查default默认not null不为空。
unique唯一约束,与主键不同的是可以为空。
3.参照完整性指建立两个关系表之间的主外键的约束foreign key外键。
4.用户自定义完整性使用触发器来编写约束。
3.数据库的dml dql
增insert into表名(列名列表) values(值列表)--创建序列。
create sequence seq_userinfominvalue 1
maxvalue 9999999start with 21increment by 1cache 20;
select seq_ from dual; -查询当前序列值select seq_ from dual; -查询下一个序列值删。
delete from表名where条件截断表。
truncate table表名。
改。update表名set列名=值where条件查。
select列名from表名where条件。
代表所有列名。
模糊查询like‘数据%’%任意字符。
4.高级查询。
子查询:将一个查询结果作为另一个查询的条件。
内连接:查询必须有关联的数据inner join
左外连接:以左表为主,匹配右表,右表无数据显示为nullleft join
右外连接:以右表为主,匹配左表,左表无数据显示为nullright join全连接:
全部连接,无数据显示为nullfull join
排序:order byasc:正序desc:降序。
分组: group by筛选:h**ing
只能显示分组字段或使用聚合函数。
并集:union all将多个查询结果集放在一起,不去重,但是结果集的字段返回数据类型和列的个数都必须保持一致。
union将多个查询结果集放在一起,自动去重,但是结果集的字段返回数据类型和列的个数都必须保持一致函数:聚合函数:
count计数sum求和**g求平均值。
min最小值max最大值。
日期函数:sysdate系统当前日期。
extract从指定时间提取指定日期部分。
转换函数。to_char将数值型转换为字符型数据,fmt为指定格式。
示例: to_char(sysdate,’yyyy-mm-dd’)
to_date将字符串转换为日期类型数据, fmt为指定格式。
示例:to_date(‘2016-7-7’,’yyyy-mm-dd’)
plsql是一个过程语言,能够结构化的组织sql块,与sql不同之处在于能够写业务逻辑。
语法:declare
-声明变量begin --语句开始--业务逻辑。
exception --异常处理。
end--语句结束。
变量类型:boolean
rowtype代表一行数据类型%type属性类型值。
运算符:|连接字符串and并且or或者。
赋值:1.:=赋值运算符。
列名into变量名from表名分支语句:
if表达式thenelsif表达式thenelseend if;
case表达式。
when常量值thenend case;
循环语句:loop
exit when表达式;end loop;
while表达式loopend loop;
for变量in 1..50loopend loop;
6、事务、视图、索引、游标。
1.事务。描述的是数据库数据从一种状态改为另外一种状态。作用保持数据库的数据完整性。特性:
1.原子性2.一致性3.隔离型4.永久性。
命令语句:commit提交rollback回滚s**epoint保存点rollback to保存点。
2.视图。由一张或多张组成的虚拟的表,本身不包含数据,数据**于基表。
create view视图名as查询语句;
3.索引。索引是关系数据库中用于存放每一条记录的一种对象,作用是用来提高查询效率。
创建索引。create index索引名称on表名(列名);
唯一索引:create unique index索引名称on表名(列名);
1.主键其实包含了索引。
2.唯一索引,值可以为null,但是如果有null值的数据,索引不会被使用。
4.游标。数据库内存存放的一个结果集。
使用游标:- for遍历游标,不必明确的打开游标declare
cursor c_job is
select * from emp e where = manager';c_row c_job%rowtype;begin
for c_row in c_job loop
dbms_ loop;end;
7、存储过程、触发器、函数。
存储过程是存放在数据库的一段plsql**块,它一经创建就会编译。存储过程:
create procedure存储过程名称(输入,输出)as
变量定义begin
业务逻辑end;
-创建带有输入输出参数的存储过程,此种不能直接使用call来调用。create or replace procedure stu_proc4(pnoin
sname out asbegin
select stu_name into sname from student where stu_id = pno;dbms_
自定义函数:
create function方法名称(输入,输出)return数据类型is
变量定义begin
业务逻辑end;
-自定义函数。
create or replace function fc_demo_stu(sid in
return varchar2 is
sname
select stu_name into sname from student where stu_id = sid;return (sname);end;
触发器:当做一件事的时候同时触发另外一段plsql**块。
1.触发事件2.触发时间3.触发对象4.执行过程。
对象:old访问已经被删除或者修改的数据:new访问新增,修改后的数据。
8、分页。将数据分页显示。
好处:1.减少数据库访问压力2.方便定位查询数据。
分页思想:-1.将查询的结果集(虚拟表),作为第二次查询的表。
-公式:大于(页码数-1 *显示行数)and小于等于(页码数*显示行数)select *
from (select a.*,rownum as r from accountinfo a) a2where > 1-1)*5
and <=1*5;
分页所用关键字:
rownum
oracle复习
oracle数据库的主要特点。支持多用户 大事务量的事务处理。数据安全性和完整性控制。支持分布式数据处理。可移植性。oracle服务器提供开放 全面和综合的信息管理,它由oracle数据库和oracle实例组成。管理数据库的后台进程和内存结构的集合称为 oracle 实例 oracle 数据库是一个...
Oracle复习
一 创建用户。在yggl数据库中创建一个用户manager,授予dba角色和sysdba系统权限,它可以替代system系统用户。connect system 123456 as sysdab create user manager profile default identified by man...
Oracle复习
oracle数据库管理与编程知识点。1.关系数据库基本理论 oracle应用结构。2.oracle体系结构 实例内存管理 sga pga 逻辑存储结构 表空间 段 区 块 物理存储结构 数据文件 控制文件 其他文件 3.sql plus工具的使用 设置环境变量 命令的编辑导入导出 查询结果格式化等 ...