oracle的一些基本使用的总结:

sqlplus连接系统管理员用户:

sqlplus sys/oracle@//47.111.169.26:1521/XE as sysdba

授权:

grant sysdba to system;

修改密码:

alter user system identified by manager;

切换用户:

conn system/manager@CONN_INSTANCE as sysdba
CONN_INSTANCE:为ora文件中创建的实例
conn deep/deep@CONN_INSTANCE

1.创建用户:

create user deep identified by deep;

2.授权:

GRANT CONNECT, RESOURCE, DBA TO deep;

3.创建表
使用sqlplus执行如下:
导入sql文件:

sql > @F:\website\oraok\ot\11g\ot_schema.sql

执行sql:

create table classinfo(
       classid number(2) primary key,
       classname varchar(10) not null       
       );

4.查询刚刚创建的表

SELECT table_name FROM user_tables ORDER BY Table_name;

5.插入语句:
单行插入:

insert into deep.classinfo values(1,'1班')

多行插入:

INSERT ALL INTO deep.classinfo
VALUES
	( 2, '2班' ) INTO deep.classinfo
VALUES
	( 3, '1班' ) INTO deep.classinfo
VALUES
	( 4, '1班' ) INTO deep.classinfo
VALUES
	( 5, '5班' ) 
SELECT
	1 
FROM
	dual;

6.字符串连接

SELECT '列号' || ROWNUM,t.* FROM deep.classinfo t where ROWNUM<=3;
还有一种连接方式:concat(concat(a,c),b)

7.plsql语法结构

8.循环:
a.第一种:

while 条件
loop
...
end loop;

b.第二种:类似,do while循环

loop
...
exit when i>5;
...
end  loop;

c.第三种:打印1,30

for i in 1 .. 30
loop
	DBMS_OUTPUT.PUT_LINE(pid||pname);	
end loop;

8.游标:
基本语法格式:

set serveroutput on;  --默认不输出控制台结果,只有加上这个才输出
declare 
	panme emp.name%type;
     psal  emp.sal%type;
	cursor cemp is select name,sal from emp;
begin
	open cemp;
	loop
		fetch cemp into pname, psal; -- 一行行的获取值
		exit when cemp%notfound;
	
		if pname = '张三' 
			then update ....;
		elsif panme="李四"
			then delete ...;
		else 
			...
		end if;
		
	end  loop;

	close cemp;
commit;

end;

带参数的游标示例:

set SERVEROUTPUT on;
declare 
    cursor cemp(num1 number) is select classid,classname from classinfo where classid=num1;
	pid classinfo.classid%type;
    pname  classinfo.classname%type;
begin
	open cemp(2);
	loop
		fetch cemp into pid, pname; -- 一行行的获取值
		exit when cemp%notfound;
        DBMS_OUTPUT.PUT_LINE(pid||pname)	;	
	end  loop;
	close cemp;
end;

9.存储过程:
a.创建存储过程

create or replace PROCEDURE deep_update 
AS
punm number;
BEGIN
--     update CLASSINFO set CLASSNAME='2佬佬' where CLASSID=2;
 SELECT t.classid into punm FROM classinfo t where CLASSID=3;
 DBMS_OUTPUT.put_line(punm);
end;

调用方式:

--方式1
exec deep_update();
--方式2
BEGIN
  DEEP_UPDATE();
--rollback; 
END;

b.有输入和输出参数
在这里插入图片描述

10.存储函数

在这里插入图片描述
运行可以在工具中右击存储函数点击运行

在这里插入图片描述
11.导入导出:
导出方式1:
在这里插入图片描述
导出方式2:使用第三方工具pl/sql或者sql developer(oracle官方)

导入方式1:
在这里插入图片描述
导入方式2:使用第三方工具pl/sql或者sql developer(oracle官方)

注意:null + 任意数字得到的都是null

猜你喜欢

转载自blog.csdn.net/qq_43534980/article/details/112754935