Oracle快速上手
Oracle快速上⼿
创建表
CREATE TABLE "SYSTEM"."INFOS"
("STUID"VARCHAR2(7) NOT NULL ENABLE,
"STUNAME"VARCHAR2(10) NOT NULL ENABLE,
"GENDER"VARCHAR2(2) NOT NULL ENABLE,
"AGE"NUMBER(2,0) NOT NULL ENABLE,
"SEAT"NUMBER(2,0) NOT NULL ENABLE,
"ENROLLDATE" DATE,
"STUADDRESS"VARCHAR2(50) DEFAULT '地址不详',
"CLASSNO"VARCHAR2(4) NOT NULL ENABLE
)
PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255
NOCOMPRESS LOGGING
STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
什么是小三通
BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
TABLESPACE "SYSTEM";
ALTER TABLE "SYSTEM"."INFOS" MODIFY ("CLASSNO" NOT NULL ENABLE);
ALTER TABLE "SYSTEM"."INFOS" MODIFY ("SEAT" NOT NULL ENABLE);
ALTER TABLE "SYSTEM"."INFOS" MODIFY ("AGE" NOT NULL ENABLE);
ALTER TABLE "SYSTEM"."INFOS" MODIFY ("GENDER" NOT NULL ENABLE);
履约保证金比例ALTER TABLE "SYSTEM"."INFOS" MODIFY ("STUNAME" NOT NULL ENABLE);
ALTER TABLE "SYSTEM"."INFOS" MODIFY ("STUID" NOT NULL ENABLE);
插⼊语句
INSERT INTO INFOS VALUES ('s100104','阮⼩⼆','男',26,3,SYSDATE,default,'1001');
数据类型
类型说明
char字符型 ,定长,且不超过2000字节varchar2(length)字符型 ,可变,默认长度为1,最长不超过4000
NUMBER(p,s)数字类型可为⼩数,p代表在⽤户存⼊数据为⼩数类型时候,包含⼩数点、⼩数所能容纳的位数,默认为38位。⽽s标识⼩数点保留级
⼏位
DATE存储⽇期和时间,存储纪元、4 位年、⽉、⽇、时、分、秒,存储时间
TIMESTAMP 数字类型可为⼩数,p代表在⽤户存⼊数据为⼩数类型时候,包含⼩数点、⼩数所能容
纳的位数,默认为38位。⽽s标识⼩数点保留级
⼏位
CLOB存储⼤的⽂本,⽐如存储⾮结构化的 XML ⽂档BLOB存储⼆进制对象,如图形、视频、声⾳等创建表空间
CREATE TABLESPACE MYSPACE
DATAFILE 'D:/Oracle/myspace/A.ORA' SIZE 10M,
'D:/Oracle/myspace/B.ORA' SIZE 5M
EXTENT MANAGEMENT LOCAL
UNIFORM SIZE 1M
为表指定表空间
CREATE TABLE SCORES
(
ID NUMBER ,
TERM VARCHAR2(2),
STUID VARCHAR2(7) NOT NULL,
EXAMNO VARCHAR2(7) NOT NULL,
WRITTENSCORE NUMBER(4,1) NOT NULL,
LABSCORE NUMBER(4,1) NOT NULL
)
TABLESPACE MYSPACE
附上插⼊语句
insert into scores values(1,'aa','001','001',99.5,99.5)
查询数据表所在表空间
select  tablespace_name,table_name  from user_tables WHERE tablespace_name='MYSPACE';
pl/sql
get start
DECLARE
sname VARCHAR2(20):='jack';--定义⼀个varchar名为jack
BEGIN枣花馍的做法和花样图片
sname:=sname||' and tom';--对变量进⾏字符串拼接
dbms_output.put_line(sname);--输出
END;
将本地查询结果进⾏赋值
DECLARE
sname VARCHAR2(20) DEFAULT 'jerry';
BEGIN
SELECT stuname INTO sname FROM infos WHERE stuid='s100104';
dbms_output.put_line(sname);
END;
使⽤常量进⾏计算
DECLARE
pi CONSTANT number :=3.14;--圆周率长值
r number DEFAULT 3;--圆的半径默认值3
area number;--⾯积。
BEGIN
area:=pi*r*r;--计算⾯积
dbms_output.put_line(area);--输出圆的⾯积
END;
补充Oracle⼀些特殊的数据类型
操作⾏对象
DECLARE
info infos%ROWTYPE;--定义⼀个infos表对象info
BEGIN
SELECT * INTO info FROM infos WHERE stuid='s100104';将⼀个info表⾏赋值给info对象 dbms_output.put_line(info.stuname);--输出
END;
操作表中列对象
DECLARE
age infos.age%TYPE;--定义⼀个age变量类型为infos.age这个列类型
myage number(4):=24;
totalage myage%TYPE;--使⽤⾃⼰的变量类型作为新变量的类型
BEGIN
SELECT age INTO age FROM infos WHERE stuid='s100104';
totalage:=age+myage;
dbms_output.put_line(totalage);
END;
条件语句
if
DECLARE
newage infos.age%TYPE;
BEGIN
SELECT age INTO newage FROM infos
WHERE stuid='s100104';
IF newage>24 THEN
UPDATE infos
SET age=18
WHERE stuid='s100104';
END IF;
COMMIT ;
ENd;
if else if else(else if同理故省略)
newage infos.age%TYPE;
BEGIN
SELECT age INTO newage FROM infos
WHERE stuid='s100104';
IF newage>24 THEN
UPDATE infos
SET age=18
WHERE stuid='s100104';
ELSIF newage<24 THEN
UPDATE infos
SET age=20
WHERE stuid='s100104';
ELSE
UPDATE infos
SET age=2000
WHERE stuid='s100104';
END IF;
commit;
ENd;
case
DECLARE
v_grade CHAR(1):=UPPER('&p_grade');
BEGIN
CASE v_grade
WHEN 'A' THEN
dbms_output.put_line('Excellent');
WHEN 'B' THEN
dbms_output.put_line('Very Good');
WHEN 'C' THEN
dbms_output.put_line('Good');
ELSE
dbms_output.put_line('No such grade');
END CASE;
END;
case语句作为返回值
DECLARE
v_grade CHAR(1):=UPPER('&grade');
p_grade VARCHAR(20);
BEGIN
p_grade :=
CASE v_grade
WHEN 'A' THEN
'Excellent'
WHEN 'B' THEN
'Very Good'
WHEN 'C' THEN
'Good'
ELSE
'No such grade'
END;
dbms_output.put_line('Grade:'||v_grade||',the result is '||p_grade); END;
将判断条件放在then后⾯的⼀种变式
v_grade CHAR(1):=UPPER('&grade');
p_grade VARCHAR(20);
BEGIN
p_grade :=
CASE
WHEN v_grade='A' THEN
'Excellent'
WHEN v_grade='B' THEN
'Very Good'
WHEN v_grade='C' THEN
'Good'
ELSE
'No such grade'
END;
dbms_output.put_line('Grade:'||v_grade||',the result is '||p_grade); END;
循环
普通循环
DECLARE
counter number(3):=0;
sumResult number:=0;
BEGIN
LOOP --声明循环
counter := counter+1;
sumResult := sumResult+counter;
IF counter>=100 THEN
EXIT;--结束循环
END IF;
初会报名-
- EXIT WHEN counter>=100;
END LOOP;--循环区域终⽌边界
dbms_output.put_line('result is :'||to_char(sumResult));
END;
while循环
DECLARE
counter number(3):=0;
sumResult number:=0;
蜗居片尾曲叫什么
BEGIN
WHILE counter<100 LOOP
counter := counter+1;
sumResult := sumResult+counter;
END LOOP;
dbms_output.put_line('result is :'||sumResult);
END;
for循环
DECLARE
counter number(3):=0;
卡布西游怎么超进化sumResult number:=0;
BEGIN
FOR counter IN 1..100 LOOP
sumResult := sumResult+counter;
END LOOP;
dbms_output.put_line('result is :'||sumResult);
END;
顺序

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。