科普数据库(三)

简介: d 格式:alter table 表名 modify 列名 列的类 演示:alter table users modify mobile char(11)

9.9、触发


一、含

当用户执行了 insert | update | delete 这些操作之后,可以触发一系列其它的动作、业务逻辑,使用触发器可以协助应用在数据库端确保数据的完整性、日志记录 、数据校验等操作。使用别名 OLD 和 NEW 来引用触发器中发生变化的记录内容,这与其他的数据库是相似的。现在Oracle触发器不仅支持行级触发,还支持语句级


二、

触发器类型    NEW 和 OLD的

INSERT 型触发器    NEW 表示将要或者已经新增的数

UPDATE 型触发器    OLD 表示修改之前的数据 , NEW 表示将要或已经修改后的数

DELETE 型触发器    OLD 表示将要或者已经删除的数


三、语

1、创建触

create trigger 触发器
before|afte
insert|update|delete
on 表名
[for each row]--行级触发
declar
 --声明部
begi
 --业务逻辑
end

2、修改触发

create [or replace] trigger 触发器
before|afte
insert|update|delete
on 表名
[for each row]--行级触发
declar
 --声明部
begi
 --业务逻辑
end

3、删除触发

drop trigger 触发器名

四、演


1、INSERT 型触
--新员工入职之后,输出一句话: 欢迎加入
create or replace trigger tri_emp_inser
afte
inser
on em
declar
beg
  dbms_output.put_line('欢迎加入我们')
end
--插入数据就可以自动触发触
insert into emp(empno, ename) values(9527, '马哈哈')


2、UPDATE 型触发


--判断员工涨工资后的工资一定要大于涨工资前的
create or replace trigger tri_emp_update_sa
befor
updat
on em
for each ro
declar
beg
  if :old.sal > :new.sal the
    raise_application_error(-20002,'旧的工资不能大于新的工资')
  end if
end


--更新数据就可以自动触发触发器(无异

update emp set sal = sal + 10
select * from emp

--更新数据就可以自动触发触发器(有异

update emp set sal = sal - 100
select * from emp


3、DELETE 型触发


--老员工离职之后,输出一句话: 有员工离
create or replace trigger tri_emp_delet
afte
delet
on em
declar
beg
  dbms_output.put_line('有员工离职了')
end
--删除数据就可以自动触发触
delete from emp where empno = 9527


4、删除触发

drop trigger tri_emp_inser
drop trigger tri_emp_update_sal
drop trigger tri_emp_delete


第十章 数据备份与恢


10.1、全部导


--注意:以下操作为cmd命令行操

全部导出: exp 管理员帐号/密码 file='d:\beifen.dmp' full=


10.2、全部导


--注意:以下操作为cmd命令行操

全部导入: imp 管理员帐号/密码 file='d:\beifen.dmp' full=


10.3、按用户导


--注意:以下操作为cmd命令行操

按用户导出: exp 管理员帐号/密码 file='d:\beifen.dmp' owner=帐


10.4、按用户导


--注意:以下操作为cmd命令行操

按用户导入: imp 管理员帐号/密码 file='d:\beifen.dmp' fromuser=帐


第十一章 安装Oracle单实


11.1、环境准


注意:当前Linux为CentOS-6.10-x86_64-bin-DVD1.is

界面:使用图形

内存:4

硬盘:20

连接:SecureCRT,上传文件(rz命令)需要安装:yum -y install lrz


11.2、下载


32位需要下载(需要登录账号)

http://download.oracle.com/otn/linux/oracle11g/R2/linux_11gR2_database_1of2.z

http://download.oracle.com/otn/linux/oracle11g/R2/linux_11gR2_database_2of2.z

64位需要下载(需要登录账号

http://download.oracle.com/otn/linux/oracle11g/R2/linux.x64_11gR2_database_1of2.z

http://download.oracle.com/otn/linux/oracle11g/R2/linux.x64_11gR2_database_2of2.z


11.3、解压


unzip linux.x64_11gR2_database_1of2.zip
unzip linux.x64_11gR2_database_2of2.zi
注意:unzip可能会提示没有这个命令,那就需要我们安装
yum -y install zi
yum -y install unzi


11.4、移动软


[root@caochenlei ~]# mkdir -p /usr/local/oracl
[root@caochenlei ~]# mv database/ /usr/local/oracl


11.5、域名映

查看当前系统主机名

[root@caochenlei ~]# hostna
caochenle

查看当前系统的IP地址

[root@caochenlei ~]# ifconf

修改系统的映射文件

[root@caochenlei ~]# vi /etc/hos

在末尾添加以下内容

127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomai
::1         localhost localhost.localdomain localhost6 localhost6.localdomain
192.168.112.129 caochenl

11.6、关闭selinu

[root@caochenlei ~]# vi /etc/selinux/confi
设置SELINUX=disable
临时关闭一下selinu
[root@caochenlei ~]# setenforce

11.7、关闭防火

[root@caochenlei ~]# service iptables sto
[root@caochenlei ~]# chkconfig iptables of

11.8、安装依赖

[root@caochenlei ~]# yum install -y binutils compat-libcap1 compat-libstdc++-33 gcc gcc-c++ glibc glibc-devel ksh libgcc libstdc++ libstdc++-devel libaio libaio-devel make sysstat unixODBC-devel pdksh java-1.8.0-openjdk

11.9、添加新用

[root@caochenlei ~]# groupadd oinstal
[root@caochenlei ~]# groupadd db
[root@caochenlei ~]# useradd -g oinstall -G dba oracl
[root@caochenlei ~]# passwd oracl


11.10、修改内核文


[root@caochenlei ~]# vi /etc/sysctl.con

在末尾添加以下内容

fs.aio-max-nr = 10485
fs.file-max = 681574
kernel.shmall = 209715
kernel.shmmax = 53687091
kernel.shmmni = 409
kernel.sem = 250 32000 100 12
net.ipv4.ip_local_port_range = 9000 6550
net.core.rmem_default = 26214
net.core.rmem_max = 419430
net.core.wmem_default = 26214
net.core.wmem_max = 104857

更新一下文件以生

[root@caochenlei ~]# sysctl

11.11、修改用户限


[root@caochenlei ~]# vi /etc/security/limits.con

在末尾添加以下内容

oracle            soft    nproc           40
oracle            hard    nproc           6553
oracle            soft    nofile          409
oracle            hard    nofile          6553

修改完成后重启服务器

[root@caochenlei ~]# rebo


11.12、创建安装目


[root@caochenlei ~]# mkdir -p /data/oracle/product/11.2.
[root@caochenlei ~]# mkdir -p /data/oracle/oradat
[root@caochenlei ~]# mkdir -p /data/oracle/inventor
[root@caochenlei ~]# chown -R oracle:oinstall /data/oracl
[root@caochenlei ~]# chmod -R 775 /data/oracl

11.13、设置环境

切换到oracle用户下

[root@caochenlei ~]# su - orac
[oracle@caochenlei ~]$ vi .bash_profil

在末尾添加以下内容

ORACLE_BASE=/data/orac
ORACLE_HOME=$ORACLE_BASE/product/11.2.
ORACLE_SID=orc
PATH=$PATH:$ORACLE_HOME/bi
export ORACLE_BASE ORACLE_HOME ORACLE_SID PAT

更新一下文件以生效

[oracle@caochenlei ~]$ source .bash_profi

11.14、安装应用程

这一步需要在虚拟机里进行,因为会弹出窗体程

[oracle@caochenlei response]$ cd /usr/local/oracle/databas
[oracle@caochenlei database]$ LANG=en_US ./runInstalle

用户安装截

然后提示要执行两个脚本,使用root执行,可以使用SecureCRT重新新建一个连接

[root@caochenlei ~]# sh /data/oracle/inventory/orainstRoot.
Changing permissions of /data/oracle/inventory
Adding read,write permissions for group
Removing read,write,execute permissions for world
Changing groupname of /data/oracle/inventory to oinstal
The execution of the script is complete
[root@caochenlei ~]# sh /data/oracle/product/11.2.0/dbhome_1/root.s
Running Oracle 11g root.sh script..
The following environment variables are set a
    ORACLE_OWNER= oracl
    ORACLE_HOME=  /data/oracle/product/11.2.0/dbhome_
Enter the full pathname of the local bin directory: [/usr/local/bin]
   Copying dbhome to /usr/local/bin ..
   Copying oraenv to /usr/local/bin ..
   Copying coraenv to /usr/local/bin ..
Creating /etc/oratab file
Entries will be added to the /etc/oratab file as needed b
Database Configuration Assistant when a database is create
Finished running generic part of root.sh script
Now product-specific root actions will be performed
Finished product-specific root actions

执行完成,点ok,安装成


11.15、使用sqlplus


配套资料,免费下

链接:https://pan.baidu.com/s/1yjJY3IstA8aMQBPYhWNlC

提取码:qmp

复制这段内容后打开百度网盘手机App,操作更方便


ORCL
  (DESCRIPTION 
    (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.112.129)(PORT = 1521)
    (CONNECT_DATA 
      (SERVER = DEDICATED
      (SERVICE_NAME = orcl


新建一个系统环境变量,变量名为TNS_ADMIN,变量值为tnsnames.ora所在文件夹的全路径))))=)= =哦dw载连接功...dy......: 1es:.h.l....sh进行图:re/序序1le:Hnl0le:ele:变量eeya0录1ot:432166696:1f制1-p效:644408622476:1f件4321eeal户1*包21fp墙1 0x:d1gx4321ei6n4:1ts:1ig:21ime:射21ee件pp一下了p


解压传程序ipip):ipip:程序szGBGB界面o备例21号作入21号作出21y作入21y作出复321;;t;器3210987654321;发器;;inepere职了器109876543210987654321;;常);;常);;;ninewpeel工资器3210987654321;发器;;ineptrt我们发器示1称;器0987654321; n分e器称 r名称器0987654321; n分e器称 r名称发器法据据据使用分类触发义器1l;数09876543210987654321;;;n;e年薪;;;n;sr/ 号*年薪数09876543210987654321;;;n;e年薪;;;n;sr/ 号*年薪函数示987654321;;n;e二:;一:数1称;数654321; n分s类型数654321; n分s类型函数语法回值义数1l;程09876543210987654321;0元;;物;资;资;资;资n;量s)工资程09876543210987654321;0元;;物;资;资;资;资n;量s)工资过程示987654321;;ine二:;一:程1称;程654321; n分s.)程654321; n分s.)过程语法高效义程987654321;;;p标n;e工资出876543210987654321;;标;;;;p历;标n;量;标e工资用876543210987654321;;标;;;;p历; n;量;标e工资使用示76543210987654321;游标;一行;标;标游标;标;标游标语法获取义标1e;词4321;用;创建词4321;用;创建义词示1称;词1称;词1称;义词语法关系义词1p;图21;as图21;as视图示1称;图321;句名称图321;句名称视图语法使用义图1E;引10987654321建某列;索引;索引;索引引1);索引示1称;引10987654321建某列;索引;索引;索引引1);索引语法效率义引9876543210987654321;;n;nn;常n件;来n;常;ee异常常6543210987654321;;nn;;常n件;来n;ee异常常09876543210987654321;;n;n;n;n;nn;;; 开n;r;异常示43210987654321; n n常n常n辑n;量re常量据常异常异常类3210987654321;常n.n.n常n辑n量re语法异常义外0987654321;;;;;pn;e10示54321; 件 op法环87654321;;;pine10示321; op法环987654321;;;;pn;e10示321; op法环3210987654321;;;e;n;n;nn;re示7654321;   n en法断765432109876543210987654321;用有串 数; ;出量量量辑n 型入;;;;;;;量e量7654321d;辑n 量e式程210987654321;;序列;e1e11q序列示7654321;环ee少始名称语法效果义列部分度。意询定;更新解决新。义题)可。级别问题?样致生)些?据时?)3210987654321;;;事务;点】e语句句事务类地的性执行D)执行义务言321;;;句321;;;句321;;;句言4321;除;添加束4321;除;添加束654321;者;除;添加束4321;除;添加束654321;者;除;添加约束改543210987654321;束,束束束束(情表; ,(类表示7654321;束束束束束名(法束21;名;名21;


相关文章
|
存储 Java 数据库连接
科普数据库(二)
d 格式:alter table 表名 modify 列名 列的类 演示:alter table users modify mobile char(11)
182 0
|
SQL Oracle 关系型数据库
科普数据库(一)
d 格式:alter table 表名 modify 列名 列的类 演示:alter table users modify mobile char(11)
159 0
|
算法 数据库 数据安全/隐私保护
md5加密科普,关于平时数据库密码的保存
md5加密科普,关于平时数据库密码的保存
md5加密科普,关于平时数据库密码的保存
|
9天前
|
SQL 关系型数据库 MySQL
【揭秘】MySQL binlog日志与GTID:如何让数据库备份恢复变得轻松简单?
【8月更文挑战第22天】MySQL的binlog日志记录数据变更,用于恢复、复制和点恢复;GTID为每笔事务分配唯一ID,简化复制和恢复流程。开启binlog和GTID后,可通过`mysqldump`进行逻辑备份,包含binlog位置信息,或用`xtrabackup`做物理备份。恢复时,使用`mysql`命令执行备份文件,或通过`innobackupex`恢复物理备份。GTID模式下的主从复制配置更简便。
47 2
|
4天前
|
弹性计算 关系型数据库 数据库
手把手带你从自建 MySQL 迁移到云数据库,一步就能脱胎换骨
阿里云瑶池数据库来开课啦!自建数据库迁移至云数据库 RDS原来只要一步操作就能搞定!点击阅读原文完成实验就可获得一本日历哦~
|
8天前
|
关系型数据库 MySQL 数据库
RDS MySQL灾备服务协同解决方案构建问题之数据库备份数据的云上云下迁移如何解决
RDS MySQL灾备服务协同解决方案构建问题之数据库备份数据的云上云下迁移如何解决
|
5天前
|
人工智能 小程序 关系型数据库
【MySQL】黑悟空都掌握的技能,数据库隔离级别全攻略
本文以热门游戏《黑神话:悟空》为契机,深入浅出地解析了数据库事务的四种隔离级别:读未提交、读已提交、可重复读和串行化。通过具体示例,展示了不同隔离级别下的事务行为差异及可能遇到的问题,如脏读、不可重复读和幻读等。此外,还介绍了在MySQL中设置隔离级别的方法,包括全局和会话级别的调整,并通过实操演示了各隔离级别下的具体效果。本文旨在帮助开发者更好地理解和运用事务隔离级别,以提升数据库应用的一致性和性能。
52 2
【MySQL】黑悟空都掌握的技能,数据库隔离级别全攻略
|
10天前
|
数据可视化 关系型数据库 MySQL
Mysql8 如何在 Window11系统下完成跳过密钥校验、完成数据库密码的修改?
这篇文章介绍了如何在Windows 11系统下跳过MySQL 8的密钥校验,并通过命令行修改root用户的密码。
Mysql8 如何在 Window11系统下完成跳过密钥校验、完成数据库密码的修改?
|
7天前
|
SQL 关系型数据库 MySQL
【MySQL 慢查询秘籍】慢SQL无处遁形!实战指南:一步步教你揪出数据库性能杀手!
【8月更文挑战第24天】本文以教程形式深入探讨了MySQL慢SQL查询的分析与优化方法。首先介绍了如何配置MySQL以记录执行时间过长的SQL语句。接着,利用内置工具`mysqlslowlog`及第三方工具`pt-query-digest`对慢查询日志进行了详细分析。通过一个具体示例展示了可能导致性能瓶颈的查询,并提出了相应的优化策略,包括添加索引、缩小查询范围、使用`EXPLAIN`分析执行计划等。掌握这些技巧对于提升MySQL数据库性能具有重要意义。
34 1
|
9天前
|
关系型数据库 MySQL Linux
在Linux中,如何配置数据库服务器(如MySQL或PostgreSQL)?
在Linux中,如何配置数据库服务器(如MySQL或PostgreSQL)?

热门文章

最新文章

下一篇
云函数