oracle学习笔记全.txt
- 文档编号:231557
- 上传时间:2022-10-07
- 格式:TXT
- 页数:40
- 大小:30.39KB
oracle学习笔记全.txt
《oracle学习笔记全.txt》由会员分享,可在线阅读,更多相关《oracle学习笔记全.txt(40页珍藏版)》请在冰豆网上搜索。
3W:
What,Why,How
SDL:
�������ʵ���ң�SoftwareDevelopmentLaboratories��SDL
oracle:
����
IBM:
Eclipse
BEA:
Weblogic��tomcat
SUN:
JBuilder��Netbeans��IDE
DB:
DataBase,RDBMS
DB2,Sybase,Mysql,sqlservler
���Ĺ�˾��Ҫ�IJ�ƷĿǰ��Ϊ�����ࣺ��
1�����������������������ߣ���Ҫ�������֣�IBM�����
*���ݿ��������2007�����°汾Oracle11G����
*Ӧ�÷�������OracleApplicationServer����
*�������ߣ�OracleJDeveloper��OracleDesigner��OracleDeveloper���ȵ�
2����ҵӦ���������Ҫ�������֣��¹�SAP��˾��������
*��ҵ��Դ�ƻ�(ERP)���������10�����ϵ���ʷ��2005�꣬�����˿�����ҵ������ʿ������˾��PeopleSoft������ǿ���ⷽ��ľ�������
*�ͻ���ϵ����(CRM)�������1998�꿪ʼ�з����������2005�꣬�����˿����ͻ���ϵ���������ϣ�������˾��Siebel����
why��
Ϊʲôѧ���ݿ⣿
�洢���ݺʹ������ݣ���Ӧ�ó����е���Ҫ��(��ս)
what��
ѧ��ѡ��ϵͳ
ѧ����ѧ������Ϣ
�γ̱��γ̵���Ϣ
��ʦ����ʦ����Ϣ
��ϵ�����ݿ�
һ����֪��
��֪oracle����һ�����ݿ�
�ṩ��Ʒ�ͷ���ij�������
ERP����ҵ��Դ����
���ָ��
���ݿ⣺���ݵIJִ���
�������
��ϵ�����ݿ⣺
���ݿ������ݶ������һ���Ĺ�ϵ
�������֣�
sql:
һ�����ԣ��������ԣ�
ֻ������ʲô���������������
sql*plus�����ߣ�
pl/sql�����̻�������
���ֲַ㣺
һ��Oracle������
һ����oracle���ݿ�
һ���ŵ����ݱ�
һ���������ݼ�¼
����sql����:
1:
���ݲ�ѯ���
select
2:
���ݲ������
insert,delete,update
3:
���ݶ������
create,alter,drop,
rename,truncate
4:
������Ƶ����
commit,rollback,savepoint
5:
Ȩ���йص����
grant,revoke
���ֶ���
table:
�������
view��
sequence������������ֵ
index�����Ӽ���Ч��
Synonym������
Programunit��Pl/sql���
������Ψһʶ����м�¼
ȡֵΨһ���ǿ�
�����������ͱ�Ĺ�����ϵ
ȡֵ���������������е�ֵ���
��ͼ��ӳ��
��������
������
ͬ���:
oracle����ҵ����Ŀ�Ʒѡ�oracle�����ƾ���oracle������Դ��oracle���ڡ�����֧�š�
PL/SQL:
ProcedureLanguage/SQL
selecttable_namefromuser_tables;
sqlplus"/assysdba"
oracle�����û�sys,system
sys:
������ߵ�Ȩ�����൱�ڹ�˾�Ķ��³�
system:
Ȩ��Ҳ�ܸߣ�
�������ݿ��Ȩ�ޣ��൱�ڹ�˾���ܲ�
dba�û�
sqlplussystem/����
�����û�
createuserbriup
identifiedbybriup
telnet172.16.0.30
boss
boss
su-oracle
oracle
sqlplusbriup/briup
connbriup/briup
connsystem/
�鿴��ǰ���û�
showuser
��briup�û�Ȩ��
grantresource,connecttobriup;
connbriup/briup
showuser
�鿴ϵͳʱ��ĸ�ʽ
selectsysdatefromdual;
��ϵͳʱ���ΪӢ�ĵĸ�ʽ
altersessionset
nls_date_language=english;
selectsysdatefromdual;
ִ�нű��ļ���
start��ַ/oracle1.sql
selecttable_name
fromuser_tables;
�鿴��Ľṹ��
descs_dept;
SELECT*froms_dept;
selectlast_name,salary
froms_emp;
��ѯԱ���������ж�Ӧ�IJ��ű�ţ�
selectlast_name,dept_id
froms_emp
��ѯ����Ա������н
selectlast_name,salary*12sal
froms_emp;
selectlast_name,salary*12"Sal"
froms_emp;
selectlast_name,salary*12+100assal
froms_emp;
SELECT last_name,salary,
12*salary+100
FROM s_emp;
SELECT last_name,salary,
12*(salary+100)
FROM s_emp;
�ַ��������ӣ�||
selectfirst_name||last_name
froms_emp;
select
first_name||'of'||last_name"Name"
froms_emp;
�鿴Ա����Ա��id��ȫ����ְλ���ƣ�
ȫ����ְλ���ƺϲ���һ����ʾ��
�Ҹ�ʽΪ��������ְλ����
selectid,
first_name||last_name||','||title"Employ"
froms_emp;
selectlast_name,salary,commission_pct
froms_emp;
selectlast_name,commission_pct,
(salary+commission_pct)*12
froms_emp;
�����ֵ��nvl()
selectlast_name,commission_pct,
(salary+nvl(commission_pct,0))*12
froms_emp;
nvl(commission_pct,1)
commission_pct���Ϊ�գ��ú��������
������Ǻ������õ�ֵ
�����Ϊ�գ������������ֵ
selectnamefroms_dept;
selectdistinctnamefroms_dept;
distinct:
ȥ���ظ���
��ѯ�������ڲ��ŵı�ź�ְλ,ȥ���ظ���
selectdistinctdept_id,title
froms_emp;
��¼��sql*plus���ֹ��ߵķ�ʽ
1��sqlplus�û���/����
2��sqlplus
�û���
����
3��������sql������
conn�û���/����
selectdept_id,title
froms_em;
�滻��
2:
�ȶ�λ���������
c/emps/emp
�鿴�ϴ����е�sql��䣺l
ִ���ϴε�sql��䣺/
�ӣ�
�ȶ�λ���������
a�ӵ�����
���룺
selectdept_id,title
froms_emp;
2:
�ȶ�λ��Ҫ����������
i���������
iwheredept_id=42;
ɾ��ijһ�У�del
�ȶ�λ����Ҫɾ������
del
startfileName:
ִ�нű��ļ�
@fileName:
ִ�нű��ļ�
getfileName:
�ű��ļ�
�����������������
savefileName:
��buffer��sql���浽
�ļ���
spoolfileName
select*froms_emp;
showuser;
spooloff;
SELECT last_name,dept_id,start_date
FROM s_emp
ORDERBY last_namedesc
�Թ��ʽ�����������
selectlast_namename,salary
froms_emp
orderbysalarydesc;
selectlast_name,salary
froms_emp
orderbysalarydesc,
last_nameasc;
selectcommission_pct,last_name
froms_emp
orderby1asc;
���Ʋ�ѯ��where
��ѯ41�Ų��ŵ�����Ա������Ϣ
selectlast_name,dept_id
froms_emp
wheredept_id=41;
���ʴ���2000��Ա������Ϣ
selectlast_name,salary
froms_emp
wheresalary>2000;
������2000��4000֮����ЩԱ������Ϣ
selectlast_name,salary
froms_emp
wheresalarynotBETWEEN2000
and4000;
��ѯ41��42��43�Ų��ŵ�Ա��in(list)
selectlast_name,dept_id
froms_emp
wheredept_idnotin(41,42,43);
��ѯ�յ�ʱ����is
��ѯ����Ϊ�յ�Ա������Ϣ
selectlast_name,commission_pct
froms_emp
wherecommission_pctisnotnull;
N
ģ����ѯlike
selectlast_name
froms_emp
wherelast_namelike'%N%';
%:
ƥ��0������
?
:
ƥ��0����1��
_:
ƥ�䵥���ַ�
_briup
SELECT last_name
FROM s_emp
WHERE last_nameLIKE
'/_%'escape'/';
and
or
��ѯ41,42�Ų��ŵ�Ա����
���߹��ʴ���2000��
selectlast_name,salary,dept_id
froms_emp
wheredept_idin(41,42)
orsalary>2000;
notandor
��ѯ���ʴ���2000�IJ���41�Ų��ŵģ�
������44�Ų��ŵ�Ա��
selectlast_name,dept_id,salary
froms_emp
wheredept_id=41
andsalary>2000
ordept_id=44;
�����£���ֵ����
dual:
���
ת����Сд
selectLOWER('SQLCourse')
fromdual;
ת���ɴ�д
selectUPPER('SQLCourse')
fromdual;
Ngao
selectlast_name
froms_emp
wherelower(last_name)='ngao';
selectlast_name
froms_emp
whereupper(last_name)='NGAO';
selectINITCAP('SQLCourse')
fromdual;
�ַ������ȵĺ���length
selectlength('SQLCourse')
fromdual;
��ѯԱ����ȫ���������Դ�д����ʽ
��ʾ������ȫ���ij��ȴ���30�ַ�
selectfirst_name||last_namename,upper(first_name)
froms_emp
wherelength(first_name)>6;
�ַ��������ӣ�concat
selectconcat('good','string')
fromdual;
ȡ�Ӵ��ĺ���substr
selectsubstr('string',1,3)
fromdual;
�������룺round
selectround(46.66,-1)
fromdual;
45
44.7
44.66
40
50
ֻ�ȡ��trunc
selecttrunc(45.83,-2)
fromdual;
45
45.8
40
ȡģ:
mod
selectmod(900,300)
fromdual;
selectsysdate
fromdual;
select
MONTHS_BETWEEN(sysdate,'14-8��-08')
fromdual;
selectADD_MONTHS('11-JAN-94',6)
fromdual;
selectNEXT_DAY(sysdate,'FRIDAY')
fromdual;
selectLAST_DAY('11-JAN-94')
fromdual;
to_char:
���������ͣ���������ת����
�ַ���
to_number�����ַ�����ת��Ϊ��������
to_date�����ַ�����ת��Ϊ��������
select
to_char(to_date('2-mar-2007'),
'year-month-ddhh24:
mi:
sspm')
fromdual;
SELECT last_name,
TO_CHAR(start_date,
'fmDdspth"of"MonthYYYY
fmHH:
MI:
SSAM')HIREDATE
FROM s_emp
WHERE start_dateLIKE'%91';
SELECT last_name,
NVL(TO_CHAR(manager_id),
'NoManager')
FROM s_emp
WHERE manager_idISNULL;
SELECT TO_CHAR(NEXT_DAY
(ADD_MONTHS
(date_ordered,6),'FRIDAY'),
'fmDay,Monthddth,YYYY')
"New6MonthReview"
FROM s_ord
ORDERBY date_ordered;
�����£�����ѯ
��ʵ��Ҳ�ǵ���IJ�ѯ
�����ǵĶ��ű�ͨ��һ����
�������ӳ�һ�ű�
���ӵ�ʱ������ѿ�������
���ӵķ�ʽ��������
��ѯ����Ա����ID��
���ֺ����ڲ��ŵ�����
s_emp:
id
s_dept:
id
��ȡ����
�������n�ű�������ӵ�ʱ��
������������Ҫn-1;
selecte.id,e.last_name,d.name
froms_empe,s_deptd
wheree.dept_id=d.id
��ѯԱ���������Ͳ�������
����������(3�ű�)
s_emp,s_dept,s_region
selecte.last_name,r.name
froms_empe,s_deptd,s_regionr
wheree.dept_id=d.id
andd.region_id=r.id
��ѯ�������ư���sa��Ա������нˮ
selecte.salary,e.last_name
froms_empe,s_deptd
wheree.dept_id=d.id
andlower(d.name)like'%sa%';
��ѯŷ�����۲��ŵ�нˮ��
1000��2000��Ա����Ϣ
s_emp,s_dept,s_region
selects_emp.last_name,s_emp.salary
froms_emp,s_dept,s_region
wheres_emp.salarybetween1000
and2000
ands_dept.name='Sales'
ands_region.name='Europe'
ands_emp.dept_id=s_dept.id
ands_dept.region_id=s_region.id
��ѯ����������5λ���ò���Ա����
нˮ������1500��
����Ա����нˮ��������
selecte.last_name,e.salary
froms_empe,s_deptd
wherelength(d.name)=5
ande.salary!
=1500
ande.dept_id=d.id
orderbye.salarydesc;
�������ӣ�������������
���Ⱥ�֮���������ӷ�ʽ
�磺between..and,>��
createtables_grade(
idnumber(7)primarykey,
namevarchar2(20),
minsalnumber(7),
maxsalnumber(7));
insertintos_grade
values(1,'����',0,1000);
insertintos_grade
values(2,'����',1000,2000);
insertintos_grade
values(3,'����'2000,3000);
commit;
��ѯԱ���Ĺ��ʵĵȼ�������
selectg.name,e.last_name,e.salary
froms_empe,s_gradeg
wheree.salarybetweeng.minsal
andg.maxsal
������Ϊnull,
�����ӣ�
��������
select..
fromtable1,table2
wheretable1.colum
=table2.colum(+)
....
��������
select..
fromtable1,table2
wheretable1.colum(+)
=table2.colum
....
��ѯ����Ա�����ڲ��ŵ����ƣ�����
��Ҫ�����в��Ÿ���ѯ����
selecte.last_name,d.name
froms_empe,s_deptd
wheree.dept_id(+)=d.id
selecte.last_name,d.name
froms_emperightjoins_deptd
one.dept_id=d.id
insertintos_emp
values(999,'briup',null,
null,null,null,null,null,
null,null,null);
��ѯԱ�����ڲ��ŵ���Ϣ��
����û�в��źŵ�Ա��
selectd.name,e.last_name
froms_empe,s_deptd
wheree.dept_id=d.id(+)
����sql���
selectd.name,e.last_name
froms_empeleftjoins_deptd
one.dept_id=d.id
��ѯԱ�����ڲ��ŵ���Ϣ��
û�в��źŵ�Ա��
���еIJ��Ŷ���ѯ����
fulljoin...on
selectd.name,e.last_name
froms_empefulljoins_deptd
one.dept_id=d.id
����sql��䣺
fulljoin....on...
leftjoin...on...
rightjoin....on...
�����ӣ���ͬһ�ŵ������ű���ʹ��
��ѯԱ�����ϼ�����Ϣ
selectmanger.last_name,manger.id
froms_empworker,s_empmanger
whereworker.manager_id=manger.id(+)
��������
union:
�����½��ȡ������
ȥ�����ظ��ļ�¼
���ظ���ֻ��ʾһ�Σ�
unionall�������½��
ȫ����ʾ
minus��ȡ�A-B
intersect��ȡ����
rownum����¼�к�
ֻ����1
����С���κ�������
���ܴ����κ�������
selectlast_name,salary
froms_emp
whererownum<=6
minus
selectlast_name,salary
froms_emp
whererownum<=2
��ѯԱ�����е���������������¼
rowid:
���ÿ����¼�ڴ��̵�λ��
selectrowid,last_name
froms_emp;
�����£��麯��
��һ�����ݴ�����֮��
һ����¼��ijһ����ȵ�ֵ
��������
avg()
sum()
max()
min()
count()����������������������������
��ѯ����Ա����ƽ�����ʣ���߹���
����ʣ������ж��ٸ�Ա��
selectavg(salary),max(salary)
min(salary),count(*)
froms_emp;
��ѯÿ�����ŵ�ƽ������
selectavg(salary),dept_id
froms_emp
groupbydept_id
orderbyavg(salary)desc;
��ϰ���鿴�������ŵ���߹���
selectmax(salary),dept_id
froms_emp
groupbydept_id
�鿴�������ŵ�Ա����
selectcount(*),dept_id,
last_name
froms_emp
groupbydept_id
ע�⣺�����select�г��ֵ���
������һ�в��������麯����
�ͱ��������groupby
��ѯ�������Ÿ���ְ�Ƶ�ƽ��
нˮ�����нˮ,����ƽ��нˮ
����2000�IJ���id��
selectavg(salary),max(salary)
title,dept_id
froms_emp
havingavg(salary)>500
groupbydept_id,title
orderbyavg(salary);
��ѯ(where--groupby)-having-orderby
�Է��������й���ʹ��having
���鲻�ܳ���where�Ӿ���
��ѯtitle�в�����vp�ַ�����
ÿ��ְλ��ƽ��нˮ������нˮ����
�������У�����ÿ��ְλ����нˮ
����5000
selectavg(salary),title
froms_emp
wherelower(title)
notlike'%vp%'
groupbytitle
havingsum(salary)>5000
orderbyavg(salary)desc;
�����£��Ӳ�ѯ
һ��sql�����Ƕ����һ����
����sql���
�Ӳ�ѯ�Ľṹ��
�Ӳ�ѯ�������һ��
�Ƚ�ֵ��ȷ������Ҫ����
һ��select���ִ�к�
���ܵõ���ʹ���Ӳ�ѯ
select...
from...
wherecolumName������
��
select..
from..
where..
groupby..
having...
orderby..
��
groupby..
having...
orderby..
��ѯ��Ngao��ͬһ�����ŵ�
Ա��id,name
��һ������������
s_emp
�ڶ�������ѯNgao���ڵIJ���
selectdept_id
froms_emp
wherelast_name='Ngao'
��������Ƕ��
selectid,last_name,dept_id
froms_emp
wheredept_id=(
selectdept_id
froms_emp
wherelast_name='Ngao'
);
�鿴���ʴ���ChangԱ�����ʵ�
����Ա����id�����֡�
selectlast_name,id
froms_emp
wheresalary>(
selectsalary
froms_emp
wherelast_name='Chang'
);
�鿴ְλ���ƺ�����ΪChang��Ա��
һ��������Ա��id������
selectlast_name,id
froms_emp
wheretitle=(
selecttitle
froms_emp
wherelast_name='Chang'
)
�鿴Ա������С��ƽ�����ʵ���
��Ա����id������
selectlast_name,id
froms_emp
wheresalary<(
selectavg(salary)
froms_emp
);
�鿴���ź�����ΪChang�IJ�����ͬ
��������IDΪ2�IJ�����Ϣ
selectid,name
froms_dept
whereidin(
selectdept_id
froms_emp
wherelast_name='Chang'
orregion_id=2
);
��ѯԱ���Ĺ��ʣ����ǵĹ�����41��
��������ʺ������֮��
selectsalary,last_name
froms_emp
wheresalarybetween(
selectmin(salary)
froms_emp
wheredept_id=41
)
and(
selectmax(salary)
froms_emp
wheredept_id=41
)
�鿴����ƽ�����ʴ���32�Ų���ƽ��
���ʵIJ���id
selectdept_id,avg(salary)
froms_emp
groupbydept_id
havingavg(salary)>(
selectavg(salary)
froms_emp
wheredept_id=32
);
��ѯ���ʴ���smith���ڲ���ƽ����
�ʵ�Ա����
selectid,last_name
froms_emp
wheresalary>(
selectavg(salary)
froms_emp
wheredept_id=(
selectdept_id
froms_emp
wherelast_name='Smith'
)
)
�������Ӳ�ѯ�����������from
��select����ѯ�����Ľ����
����һ�ű�Ƕ������һ
��select�����
�鿴����ƽ��������ߵIJ���id
selectdept_id
from(selectdept_id,
avg(salary)dept_avg_salary
froms_emp
groupbydept_id)
dept_avg_salary_tb
wheredept_avg_salary=(
selectmax(dept_avg_salary)
from(selectdept_id,
avg(salary)dept_avg_salary
froms_emp
groupbydept_id)
dept_avg_salary_tb
);
1:
selectdept_id,
avg(salary)dept_avg_salary
froms_emp
groupbydept_id
��ϰ��
1.�鿴н�ʴ���ChangԱ��н�ʵ�Ա����Ϣ
selectid,last_name,salary
froms_emp
wheresalary>(
selectsalary
froms_emp
wherelast_name='Chang'
);
2.�鿴н�ʴ���ChangԱ��н�ʻ�����
�ڲ�����3�������µ�Ա������Ϣ
selecte.id,e.last_name,e.salary
froms_empe,s_deptd
wheree.salary>(
selectsalary
froms_emp
wherelast_name='Chang'
)
ande.dept_id=d.id
ord.region_id=3
3.�鿴н�ʴ���Chang��������ƽ����
�ʵ�Ա����Ϣ
selectid,last_name,salary
froms_emp
wheresalary>(
selectavg(salary)
froms_emp
wheredept_idin(
selectid
froms_dept
whereregion_idin(
selectd.region_id
froms_empe,s_deptd
wheree.dept_id=d.id
ande.salary>(
selectsalary
froms_emp
wherelast_name='Chang'
)
)
)
);
4.�鿴н�ʸ���ChangԱ������н�ʵ�
Ա����Ϣ
selectid,last_name
froms_emp
wheresalary>(selectsalary
froms_emp
whereid=(select
manager_id
froms_emp
wherelast_name='Chang')
)
5.�鿴н�ʴ���ChangԱ������ľ���
�������������ʵ�Ա������Ϣ
selectid,last_name,salary
froms_emp
wheresalary>(
selectmin(salary)
froms_empe1,s_deptd1
wheree1.dept_id=d1.id
andd1.region_id=(
selectd.region_id
froms_empe,s_deptd
wheree.dept_id=d.id
ande.id=(
selectmanager_id
froms_emp
whereid=(
selectmanager_id
froms_emp
wherelast_name='Chang'
)
)
)
)
6.�鿴�ͻ�����Ա���й��ʴ���Chang
Ա���Ĺ��ʵ�Ա����Ϣ
//1)ChangԱ���Ĺ���
selectsalary
froms_emp
wherelast_name='Chang'
//2)�ͻ�����Ա��s_customer
sales_req_id----s_empid
selectsales_req_id
froms_customer
//3)Ƕ��
selectid,last_name,salary
froms_emp
whereidin(selectsales_rep_id
froms_customer)
andsalary>(selectsalary
froms_emp
wherelast_name='Chang');
SELECT id,last_name,salary
FROM s_emp
WHERE dept_id=&department_number;
�ڰ��£����ݽ�ģ�����ݿ�����
�����������
��Ҫ�����
coding
testing
����
�ٲ�ģʽ
����--��Ҫ�����(ERģ��)
--���ʵ��ͼ--����
��ϵ�����ݿ��еĹ�ϵ��
һ��һ���ɷ������
һ�Զࣺ�ɻ��ͳ˿�
��Զࣺÿһ���˶��кܶ��ּ���
ÿһ�ּ������ܶ�����
����
ʵ�ߺ����ߣ�
maybe,mustbe
������Ͷ�����ϸ��
�������кܶ��������ϸ
���������Ե�Լ����ʵ��������
������������
�Զ����������check
�����������
������ݿ��ʱ��
ʵ�壺�����д��ڵĶ���
���ԣ������ٷ�
��ϵ��
#����������
*���ǿ�
o:
��������ģ�û���κι涨
����������
orderitem
idid
11
22
33
44
55
11
12
13
24
11
12
13
21
22
����1��1��ϵ����������κ�һ��������
����1�Զ��ϵ��������ڶ���ⷽ
���ڶ�Զ����ֹ�ϵ
��������һ�Զ�Ĺ�ϵ
��һ���ű�
teacherstudent
idnameidname
teacher_student
teacher_id----teacher(id)
student_id-----student(id)
�ھ���creatingtable
CREATETABLE[schema.]table
(columndatatype
[DEFAULTexpr]
[column_constraint],
...
[table_constraint]);
[schema.]:
��ֵ�����û���
���û��������ͰѸñ������
���¼ʱ����û���
DEFAULTexpr�������������ݵ����ݣ�
����û�д����κε�ֵ���������ݿ��
ֵ����expr
createtablestudent(
idnumber(7)primarykey,
namevarchar2(20)
notnull,
agevarchar2(5)default0,
gendervarchar2(5),
adddressvarchar2(50),
constraintstudent_id_pk
primarykey(id,name),
constarintstudent_gender_nn
check(gender
in('male','female'))
);
dropstudent;
SYS_C...
selectconstraint_name
fromuser_constraints;
ȡ�����Ĺ涨��
1����������ĸ��ͷ
2������1��30�ַ�֮��
3������ĸ�����֣�_,$,#���
4����ͬһ�û��£����ܳ���ͬ���ı�
5������oracle�еı�����
Լ�������Լ��
�м�Լ��
�����������������������Ψһ����
ʹ�����ǵı��Լ��
�ǿ�notnull����ʹ���м�Լ��
���������������ʹ��������Լ����
����һ��
����Լ����primarykey
���Լ����foreginkey
�ǿ�Լ����notnull
ѡ����Լ����check
Ψһ��Լ����unique
�������ͣ�
�������ͣ�number
number(7):
��7Ϊ��Ч��0000000-9999999
number(5,2):
��5Ϊ��Ч����
����2λС��
���ֵ999.99
�ַ����ͣ�varchar,varchar2:
�ɱ䳤��
���ַ���
char�����ɱ䳤�ȵ��ַ���
varchar2(10)
char(10)
hello
���嶨�����ַ�����ʹ��char
char(18��
clob�����Ŀռ�Ϊ2G
�������ͣ�date
���������ͣ�blob
order(id,name)
item(id,order_id,name);
createtableorder(
idnumber(7),
id1number(7),
namevarchar2(20)notnull,
constraintorder_pk2
primarykey(id,id1)
)
createtableitem(
idnumber(7),
namevarchar2(30),
id1number(7),
order_idnumber(7),
constraintitem_pk2
primarykey(id,order_id,id1),
constraintitem_fk2
foreignkey(order_id,id1)
referencesorder(id,id1)
)
createtabletest(
idnumber(7)primarykey,
namevarchar2(20)notnull,
agenumber(5)default0,
gendervarchar2(10)check
(genderin('male','female')),
phonechar(11)unique,
addressvarchar2(30)
)
����Լ����
idnumber(7)constraint
test_id_pkprimarykey,
�������м�Լ���ĸ�ʽ��
columntypedateconstraint
constraintNameconstraintType
�����ı��Լ���ĸ�ʽ:
constraintconstraintName
constraintType(column)
constrainttest_id_pk
primarykey(id),
�ǿ�Լ����notnull
�ǿյ��м�Լ���ĸ�ʽ��
columndatetypeconstraint
constraintNamenotnull
�磺
namevarchar2(20)constraint
test_name_nnnotnull,
ѡ����Լ����check
ѡ����Լ�����м�Լ��
columndatetypeconstraint
constraintNamecheck(
columnin(list)
)
�磺
gendervarchar2(10)constraint
test_gender_ckcheck(
genderin('male',
'female')
)
ѡ����Լ���ı��Լ���ĸ�ʽ
constraintconstraintName
columncheck(columnin(list))
Ψһ��Լ����unique
Ψһ��Լ�����м�Լ���ĸ�ʽ:
columndateTypeconstraint
constraintNameunique
�磺phonechar(11)constarint
test_phone_ukunique
Ψһ��Լ���ı��Լ���ĸ�ʽ:
constraintconstraintName
unique(column)
�磺constrainttest_phone_uk
unique(phone)
���Լ����foreignkey
���Լ�����м�Լ���ĸ�ʽ:
columndateTypeconstraint
constraintNamereferences
pktableName(pkcolumn)
���Լ���ı��Լ���ĸ�ʽ:
constraintconstraintNameforeign
key(column)references
pktableName(pkcolumn)
��������ĸ�ʽ��
constraintconstraintNameforeign
key(column1,column2...)
references
pktableName
(pkcolumn1,pkcolumn2...)
ע�⣺�����������������һ�ŵ�����
������
���������ĸ�ʽ��
constraintconstraintNameprimary
key(column1,column2...)
����Ψһ�ĸ�ʽ��
constraintconstraintNameunique
(column1,column2...)
ѧ�����id,name,age,gender,address
phone,classId,course_id��
��ʦ���id,name,salary,age��
�γ̱��id,name,time,teacher_id��
createtablestudent(
idnumber(7)primarykey,
namevarchar2(10)notnull,
agenumber(5)default0,
gendervarchar2(10)check(
genderin('male',
'female')
),
addressvarchar2(20),
phonechar(11)unique,
classIdnumber(5),
)
createtablecourse(
idnumber(7)primarykey,
namevarchar2(20)notnull
)
createtables_c(
idnumber(7),
student_idnumber(7)
constraints_c_id1_fk
referencesstudent(id),
couser_idnumber(7)
constraints_c_id2_fk
referencescourse(id),
constraints_c_pk3
primarykey(id,student_id,
couser_id)
)
selecttable_namefromuser_tables
selectcount(*)fromdictionary;
626��
selectobject_name
fromuser_objects
whereobject_type='TABLE'
descuser_objects;
��ѯ���ݶ�������ͣ�
selectdistinctobject_type
fromuser_objects;
�鿴Լ����
selectconstraint_name
fromuser_constraints;
�鿴Լ��������һ�У�user_cons_columns
SELECT constraint_name,column_name
FROM user_cons_columns
WHERE table_name='S_EMP';
��ʮһ�£�DML����
insert:
insertinto
tableName[(column1,column2..)]
values(value1,value2..)
createtableinsert_test(
idnumber(7)primarykey,
namevarchar2(20)notnull,
agenumber(5)default0
)
//����һ����¼
insertintoinsert_test(id,name)values(
2,'test2');
ע�⣺����Լ�����ǿ�Ψһ
���Լ��
createtableinsert_test2(
idnumber(7)primarykey,
test1_idnumber(7)
constrainttest2_id_fk
referencesinsert_test(id)
);
insertintoinsert_test2
values(2,3);
createtabletable1
as
selectid,last_name,salary,dept_id
froms_emp
wheredept_id=42;
insertintotable1
selectid,last_name,salary,dept_id
froms_emp
wheredept_id=41;
����update:
updatetable1setsalary=5000
wheredept_id=41;
updatetable1setid=2
wherelast_name='Ngao'
(1,null)
(2,1)
updateinsert_test2setid=1
wheretest1_id=1;
ע�⣺�ĵ�ʱ��ע������Լ�������Լ��
updateinsert_test2settest1_id=5
whereid=1;
updateinsert_testset
name='briup',age=20
whereid=1;
ɾ��delete
delete[from]tableName
[wherecolumn=value]
deletetable1
whereid=1;
delete,truncate:
��ͬ�㣺����ɾ�����е����ݣ���ɾ��
��Ľṹ
��ͬ�㣺delete���Իع�,DML
truncate�����Իع�,DDL
truncateЧ�ʸ�
droptabletableName:
ɾ�����е����ݺ�
��ṹ
�����Իع���
commit;
insertintoinsert_test2
values(5,2);
DML���ԣ������Զ��ύ
����
ΪʲôҪʹ������
��Աע���
try{
//�ύ��ʽ�ֶ���
�����û���
���µȼ���
���»��ֱ�
}catch(Exceptione){
//�ع�����
}
��
��Աע������³ɹ���
����������
1��sql*plus����
2��һ����������ʹ�������
һ������Ŀ�ʼ
����Ľ�����
1��sql*plus�ر�
2��DDL��DCL���Ծ��ύ����
3��exit,Errors,systemcrash
�����Ĵ����ԣ�
ԭ���ԣ�Ҫôһ���Գɹ���
Ҫôʧ��
һ���ԣ�����ǰ������һ��
�����ԣ��������ʵ������Dz���
������������һЩ��Ϣ
�־��ԣ����ݱ��浽���ݿ���
commit;
insertintoinsert_test2
values(9,2);
savepointa;
insertintoinsert_test2
values(10,2);
savepointb;
insertintoinsert_test2
values(11,2);
rollbacktob
select*frominsert_test2
commit;
ע�⣺�����ύ֮���Dz��ܻع�
rollbacktoa;//����
truncate��delete������
undo
��ʽ���ύ
DML����
ΪʲҪʹ�����
��Աע��{
}
��ʮ���£�altertablesandcontraints
ALTERTABLEtable
ADD(columndatatype
[DEFAULTexpr][NOTNULL]
[,columndatatype]...);
1:
����Լ����ʱ��ֻ�����ӷǿ�Լ��
�������������ַǿ�Լ����ʱ����
������û�����ݵ�
altertableinsert_test2
add(namevarchar2(20));
///����һ��age����
altertableinsert_test2
add(agenumber(5));
ɾ��ijһ���ֶΣ�
altertabletableName
dropcolumncolumnName
//ɾ��age����
altertableinsert_test2
dropcolumnage
//ɾ��name����
altertableinsert_test2
dropcolumnname
�ĵ�����
altertabletableName
modify(columnNamedatatype
[defaultexpr][notnull])
//��namenotnull
altertableinsert_test2
modify(namevarchar2(20)notnull)
����Լ��
ALTERTABLE tableName
ADD[CONSTRAINTconstraint]
type(column);
//name��ΪΨһ��Լ��
altertableinsert_test2
addconstrainttest_name_uk
unique(name)
//ɾ��Լ��
altertableinsert_test2
dropconstrainttest_name_uk
//ʹԼ��ʧЧdisable
altertableinsert_test2
disableconstrainttest_name_uk
//ʹԼ����Чenable
altertableinsert_test2
enableconstrainttest_name_uk
ɾ�����
DROPTABLEtable
[CASCADECONSTRAINTS];
��������rename
�����������
�Զ�����
renameoldNametonewName
//insert_test2test3
renameinsert_test2totest3
��������
altertabletableName
renamecolumncolumnName
tonewcolumnName
//��insert_test2��name��Ϊlast_name
altertableinsert_test2
renamecolumnname
tolast_name
ɾ����
TRUNCATETABLEs_item;
����ע�ͣ�
COMMENTONTABLEinsert_test2
IS'testInformation';
��ѯ�û����ӵ�ע��
selectcomments
fromUSER_TAB_COMMENTS
wheretable_name='INSERT_TEST2';
��ʮ����CreatingSequences
���У���������������ֵ
oracle�����еġ�
CREATESEQUENCEname
[INCREMENTBYn]
[STARTWITHn]
[{MAXVALUEn|NOMAXVALUE}]
[{MINVALUEn|NOMINVALUE}]
[{CYCLE|NOCYCLE}]
[{CACHEn|NOCACHE}]
INCREMENTBYn������,������n����
startwithn:
���еĿ�ʼֵn
maxvaluen:
���ֵ
nomaxvalue:
û�����ֵ
minvaluen:
��Сֵ
nominvalue:
û����Сֵ
cycle/nocycle:
�Ƿ�ѭ��
cache/nocache:
�Ƿ�ʹ�û�����
createsequences1
startwith10
incrementby2
nextval:
ȡ���е���һ��ֵ
currval:
ȡ���еĵ�ǰֵ
selects1.nextvalfromdual;
��ִ���������
selects1.currvalfromdual;
10,12,14.......
������
ALTERSEQUENCEsequence
[INCREMENTBYn]
[{MAXVALUEn|NOMAXVALUE}]
[{MINVALUEn|NOMINVALUE}]
[{CYCLE|NOCYCLE}]
[{CACHEn|NOCACHE}]
altersequences1
incrementby10
������ע�ⲻ�������еĿ�ʼֵ
ʹ�����У�
insertintoinsert_test2
values(s1.nextval,1,'test');
Hilo������id
����������id
dba�û������û�һ��
createsequence��Ȩ��
ɾ�����У�
dropsequencesequenceName;
createtabletitle(
idnumber(7)primarykey,
titlevarchar2(20)notnull,
descriptionvarchar2(20)
notnull,
)
createtabletitle_copy(
idnumber(7),
statusvarchar2(20)notnull,
title_idnumber(7)notnull,
foreignkey(title_id)
referencestitle(id),
primarykey(id,title_id)
)
createtablerental(
book_datedate,
member_idnumber(7)notnull
foreginkey(member_id)
referencesmember(id),
title_copy_id1number(7)
notnull,
title_copy_id2number(7)
notnull,
foreignkey(title_copy_id1,
title_copy_id2)references
title_copy(id,title_id),
primarykey(book_date,
title_copy_id1,title_copy_id2)
)
40%�����õ�
60%����
��ͼ
���Ӽ�����Ч��
���Ʒ��ʵ�Ȩ�ޣ�����
���ʵ�--�ŷ�
����һ����ͼ����Ա�����ѯ�����ź�41
��Ա����id,last_name,salary
createviewview1
as
selectid,last_name,salary
froms_emp
wheredept_id=41;
connsystem/����
showuser
grantcreateviewto�û���
conn�û���/����
createorreplaceviewview1
as
selectid,last_name,salary,dept_id
froms_emp
wheredept_id=41
withreadonly;
select*fromview1;
deletefromview1
wherelast_name='Ngao';
createforceviewview2
as
select*
froms_emp1;
descview2;
selectview_namefromuser_views;
select*fromview1;
insertintoview1values(9998,'briup1'
,9800,42);
selectlast_name
froms_emp
whereid=9999;
createviewview3
as
selectid,last_namename
froms_emp
wheredept_id=41;
descview3;
������ͼ������
ÿ�����ŵ�����ʣ���߹���
��ƽ������
createorreplaceviewview4
as
selectdept_id,min(salary)m,
max(salary)a,avg(salary)v
froms_emp
groupbydept_id
orderbyv
droptabletableName
dropviewviewName
dropviewview1;
s_deptname
������ͼ��
������߹��ʣ�����ʣ�ƽ�����ʣ���
����ͬ�������Ƶ�������
���ղ������Ʒ����ѯ
����ƽ�����ʽ�������
createorreplaceviewview1
as
selectmin(e.salary)m,max(e.salary)b,
avg(e.salary)a,count(*)c
froms_empe,s_deptd
wheree.dept_id=d.id
groupbyd.name
orderbyavg(e.salary)desc
rowid
B*tree
id,last_name
createindexlast_name_index
ons_emp(id,last_name)
selectindex_namefromuser_indexes
SELECT ic.index_name,ic.column_name,
ic.column_positioncol_pos,
ix.uniqueness
FROM user_indexesix,
user_ind_columnsic
WHERE ic.index_name=ix.index_name
AND ic.table_name='S_EMP';
andic.index_name='LAST_NAME_INDEX'
dropindexlast_name_index
createdatabasename
usename
createtable...
XE
createtable
createview
createindex
ϵͳȨ�ޣ����ӵ����ݿ⣬���������
Ȩ��
����Ȩ�ޣ����������Ȩ��
createsession
createtable
createview
.....
��ɫ�������һЩȨ����ɫ
ƽ��
�ʵۣ�
connect
resource
dba
�����룺
��ǰ�û��ĵ�ǰ�û�������
password
����dbaȨ���û�������ÿ���û�
������
connsystem/system
alteruserbriup1identifiedbybriup
identifiedby���������Ҫ�ĵ�������
connbriup1/briup1
connbriup1/briup
conn
grantupdate(name),insert
ons_dept
tobriup1
����Ȩ�ޣ�
revokeinsert
ons_dept
frombriup1;
��ǰ�û�briup����s_dept
�û�briup1,briup��select
s_dept����Ȩ��briup1
briup1�ְ�select��s_dept
�����û�briup2
grantselect
ons_dept
tobriup1
withgrantoption;
��ǰ�û���select����
briup2����select��Ȩ�ޣ�
ʲôҪʹ�������������
�û�ע��ı�
id,name,phone......
1,zhangsan,18923042434
2,lisi,23987900083
3,terry,88993430998
������������ݿ��еĶ���
���ֱ�
id,sorce,user_id
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- oracle 学习 笔记
![提示](https://static.bdocx.com/images/bang_tan.gif)