emp

Oracle实战笔记(第六天)之PL/SQL基础

╄→гoц情女王★ 提交于 2020-02-27 12:28:27
一、PL/SQL介绍   1、概念    PL/SQL也是一种程序语言,叫做过程化SQL语言(Procedural Language/SQL)。PL/SQL是Oracle数据库对SQL语句的 扩展 。在普通SQL语句的使用上 增加了编程语言的特点 ,所以PL/SQL可以用来编写存储过程、存储函数、触发器等等。 PL/SQL是结构化SQL,就是在标准SQL中加入了IF...ELSE... For....等控制过程的SQL。   2、学习必要性 提高程序的运行性能 传统的使用程序操作数据库的方式需要获得connection,然后程序传到数据库后还需要进行编译才能执行,而且执行结果还需要回调,这些过程都需要花费时间。而PL/SQL编程可以直接进行过程编程,这就节省了数据连接、语句传送和编译的时间,同时编程结果可以被外部程序调用。 模块化的设计思想 很多复杂的过程都需要传送和执行大量的sql语句,比如分页的过程、实现订单的过程、转账的过程等等,这些过程就可以通过PL/SQL进行模块化整理进而方便管理。 减少网络传输量 提高安全性   PL/SQL的缺点在于移植性不好,如果项目不再使用Oracle来管理数据,那么需要重新编写语句。 二、开发工具   1、Oracle自带的命令行工具sql*plus    下面举一个运用PL/SQL语句的案列:编写一个存储过程,并执行。   简单说一下,

oracle基础学习

吃可爱长大的小学妹 提交于 2020-02-27 08:18:22
1.desc table_name 可以查询表的结构 2.怎么获取有哪些用户在使用数据库 select username from v$session; 3.如何在Oracle服务器上通过SQLPLUS查看本机IP地址 ? select sys_context('userenv','ip_address') from dual; 如果是登陆本机数据库,只能返回127.0.0.1 4.如何给表、列加注释? SQL>comment on table 表 is '表注释'; 注释已创建 SQL>comment on column 表.列 is '列注释'; 注释已创建。 SQL> select * from user_tab_comments where comments is not null; 5.如何在ORACLE中取毫秒? select systimestamp from dual; 6.如何在字符串里加回车? 添加一个||chr(10) select 'Welcome to visit'||chr(10)||'www.CSDN.NET' from dual ; 7.怎样修改oracel数据库的默认日期? alter session set nls_date_format='yyyymmddhh24miss'; 8.怎么可以看到数据库有多少个tablespace? select

Oracle导出存储过程对象

℡╲_俬逩灬. 提交于 2020-02-27 05:54:07
$ pwd /home/oracle 导出存储过程 $ vi test.par INCLUDE=PROCEDURE:"IN ('P_TEST_LAST_DDL')" SCHEMAS=scott    $ sqlplus / as sysdba SQL> create directory backup as '/home/oracle'; Directory created. SQL> grant write,read on directory backup to scott; Grant succeeded. $ sqlplus scott/tiger SQL> create or replace procedure P_TEST_LAST_DDL 2 as 3 begin 4 null; 5 end; 6 / Procedure created. SQL> select status from user_objects a where a.object_name = 'P_TEST_LAST_DDL'; STATUS -------------- VALID $ expdp scott/tiger directory=backup parfile=test.par file=proceduretest.dmp    Export: Release 11.2.0.4.0 -

MySql 数据库入门 01

生来就可爱ヽ(ⅴ<●) 提交于 2020-02-26 19:15:12
1.概述 MySql数据库从6版本开始收费, 已5版本为例, 安装不在此描述, 本文主要介绍mysql的语法和举例,帮助大家快速熟悉了解; 2 语法 2.1 数据库操作 //创建数据库 CREATE DATABASE test01 //进入数据库 USE test01 //显示所有数据库 SHOW DATABASES //删除test01的数据库 DROP DATABASE test01 2.2 表结构操作 2.2.1 创建一个表 table01为表名, 括号内为表的列名 和对应的类型; CREATE TABLE table01( cid INT(8), cname VARCHAR(32), age INT(8) ); 2.2.2 查看表结构 SHOW TABLES //查看所有的表名字 DESC table01 //查看table01表的表结构 2.2.3 修改表结构 修改表结构 注意alter table 命令 三个关键字modify change drop, 修改列的参数用moidfy, 修改列的名字用change,删除列用drop,添加字段用ADD; (1) 修改表结构, 将列名cid设置约束为主键,主键不能未null,不能重复 modify ALTER TABLE table01 MODIFY cid INT(4) PRIMARY KEY; (2) 修改表结构,

数据库02-语法

China☆狼群 提交于 2020-02-26 15:35:07
20200224 1、ORDER BY 关键字用于对结果集进行排序 SELECT column1_name , column2_name FROM table_name ORDER BY column1_name , column2_name ASC|DESC; 优先按照列名1进行排序,再按照列名2进行排序 列名可以不用写,写数字 可代表按照第几列进行排序,并采用默认的显示顺序排列 默认按照ASC升序排列 2、INSERT INTO 语句用于向表中插入新记录 不需要插入的值,可命名为null或'' 某些列必须输入值才可进行操作 第一种形式无需指定要插入数据的列名,只需提供被插入的值,但值的数量需和列名保持一致 INSERT INTO table_name VALUES ( value1 , value2 , value3 ,...); 第二种形式需要指定列名及被插入的值: INSERT INTO table_name ( column1 , column2 , column3 ,...) VALUES ( value1 , value2 , value3 ,...); 3、列别名 select ename as 姓名 from emp; 或者 select ename 姓名 from emp; 如果列别名含有特殊符号(如空格、¥、+等),则需将此列别名用双引号标上 4、空值

ORACLE SEQUENCE 介绍

天涯浪子 提交于 2020-02-25 09:41:08
在oracle中sequence就是所谓的序列号,每次取的时候它会自己主动添加,一般用在须要按序列号排序的地方。 1、Create Sequence 你首先要有CREATE SEQUENCE或者CREATE ANY SEQUENCE权限, CREATE SEQUENCE emp_sequence INCREMENT BY 1 -- 每次加几个 START WITH 1 -- 从1開始计数 NOMAXVALUE -- 不设置最大值 NOCYCLE -- 一直累加,不循环 CACHE 10; 一旦定义了emp_sequence,你就能够用CURRVAL,NEXTVAL CURRVAL=返回 sequence的当前值 NEXTVAL=添加sequence的值,然后返回 sequence 值 比方: emp_sequence.CURRVAL emp_sequence.NEXTVAL 能够使用sequence的地方: - 不包括子查询、snapshot、VIEW的 SELECT 语句 - INSERT语句的子查询中 - NSERT语句的VALUES中 - UPDATE 的 SET中 能够看例如以下样例: INSERT INTO emp VALUES (empseq.nextval, 'LEWIS', 'CLERK',7902, SYSDATE, 1200, NULL, 20); SELECT

SpringBoot使用druid数据源整合mybatis(注解版)并实现增删改查(源码)(一个简单的例子)(没有使用逆向工程)

梦想与她 提交于 2020-02-23 23:00:09
第一步: 导入依赖: < dependency > < groupId > org . springframework . boot < / groupId > < artifactId > spring - boot - starter - jdbc < / artifactId > < / dependency > < dependency > < groupId > org . springframework . boot < / groupId > < artifactId > spring - boot - starter - web < / artifactId > < / dependency > < dependency > < groupId > org . mybatis . spring . boot < / groupId > < artifactId > mybatis - spring - boot - starter < / artifactId > < version > 2.1 .1 < / version > < / dependency > < dependency > < groupId > mysql < / groupId > < artifactId > mysql - connector - java < / artifactId >

ORACLE SEQUENCE 介绍

走远了吗. 提交于 2020-02-21 11:32:44
在oracle中sequence就是所谓的序列号,每次取的时候它会自己主动添加,一般用在须要按序列号排序的地方。 1、Create Sequence 你首先要有CREATE SEQUENCE或者CREATE ANY SEQUENCE权限, CREATE SEQUENCE emp_sequence INCREMENT BY 1 -- 每次加几个 START WITH 1 -- 从1開始计数 NOMAXVALUE -- 不设置最大值 NOCYCLE -- 一直累加,不循环 CACHE 10; 一旦定义了emp_sequence,你就能够用CURRVAL,NEXTVAL CURRVAL=返回 sequence的当前值 NEXTVAL=添加sequence的值,然后返回 sequence 值 比方: emp_sequence.CURRVAL emp_sequence.NEXTVAL 能够使用sequence的地方: - 不包括子查询、snapshot、VIEW的 SELECT 语句 - INSERT语句的子查询中 - NSERT语句的VALUES中 - UPDATE 的 SET中 能够看例如以下样例: INSERT INTO emp VALUES (empseq.nextval, 'LEWIS', 'CLERK',7902, SYSDATE, 1200, NULL, 20); SELECT

JDBC学习笔记之DQL(八)

老子叫甜甜 提交于 2020-02-20 08:18:25
需求 我们试着查询 emp 表的数据并且将其 封装为对象 ,然后打印 我们先来看看 emp 表,如下: 我们可以把每 一条数据 看作 一个对象 ,然后用 集合 去装载它们 步骤 : 1.定义Emp类 2.定义方法 public List<Emp> findAll(){} 3.实现方法 select * from emp; 实现 我们先来根据 emp 表去建一个 Emp 类,如下: public class Emp { private int id ; private String ename ; private int job_id ; private int mgr ; private Date joindate ; private double salary ; private double bonus ; private int dept_id ; } 然后用 ALT+INS 去快速生成 set 、 get 和 toString 方法 获取数据算法如下: Emp emp = null ; list = new ArrayList < Emp > ( ) ; while ( rs . next ( ) ) { //获取数据 int id = rs . getInt ( "id" ) ; String ename = rs . getString ( "ename" ) ;

JDBC学习笔记之JDBC工具类(九)

▼魔方 西西 提交于 2020-02-20 07:05:08
我们可以看到前面的Demo中都有非常多的 重复的代码 ,我们可以写一个 JDBC工具类 去封装这些 重复的代码 抽取JDBC工具类:JDBCUtils 目的:简化书写 分析: 1. 抽取注册驱动 跟连接对象用同样的方法解决,用 配置文件 2. 抽取一个方法获取连接对象 需求 :不想传递参数(麻烦),还得保证工具类的通用性 解决 :配置文件 jdbc.properties jdbc . properties url = user = password = 3. 抽取一个方法释放资源 由于释放的资源数量不定,所以使用 重载 Coding 我们写JDBC工具类定义的方法都是 静态方法 ,以便于调用 因为 动态方法 属于 示例对象 ,必须创建出对象才能调用 而 静态方法 属于 类 ,无需创建对象也能调用 连接对象 我们先来写 连接对象 : public static Connection getConnection ( ) throws SQLException { return DriverManager . getConnection ( url , user , password ) ; } url、user、password 我们用静态代码块( static )去加载,因为这些信息我们不希望每次调用JDBC工具类都获取一次,没有必要;而使用静态代码块就能恰到好处地只获取一次 url