常用SQL语句词典
2007-08-02 10:39
447 查看
Q0.创建用户
【前提】
你必须有CREATEUSER系统权限。当你使用CREATEUSER语句创建一个新用户后,该用户的权
限是空的,要登录到ORACLE该用户必须有CREATESESSION系统权限。因此在创建用户之后
,你至少应该授予用户CREATESESSION权限。
【示例】
创建一个用户的例子
如果你创建一个新用户使用PASSWORDEXPIRE项,在尝试登陆ORACLE之前该用户的密码必须
改变。你可以创建该用户使用以下语句:
CREATEUSERsidney
IDENTIFIEDBYwelcome
DEFAULTTABLESPACEcases_ts
QUOTA10MONcases_ts
TEMPORARYTABLESPACEtemp_ts
QUOTA5MONsystem
PROFILEengineer
PASSWORDEXPIRE;
该用户有以下特征:
密码:welcome
缺省表空间:cases_ts,有10M的使用权。
临时表空间:temp_ts
在系统表空间SYSTEM有5M的使用权。
使用数据库资源定义在配置文件engineer中。
一个过期密码,在登陆ORACLE之前该用户的密码必须改变。
【关键字和参数】
user
标识要被创建的用户名称。
IDENTIFIED
IDENTIFIED项让你指出ORACLE如何鉴别该用户。
BYpassword
BYpassword项让你创建一个本地用户并指出该用户必须使用指定密码登录ORACLE。
密码只包含单字节字符。
DEFAULTTABLESPACE
指出所创用户的缺省表空间。如果你忽略该项,缺省值是SYSTEM表空间。
TEMPORARYTABLESPACE
指出所创用户的临时表空间。如果你忽略该项,缺省值是SYSTEM表空间。
QUOTA
使用QUOTA项指定允许用户使用的表空间大小,以K或M为单位的整数值。
一个用户可以拥有多个表空间的多个QUOTA值。
UNLIMITED
允许用户无限制的使用表空间。
PROFILE
指你想给用户分配哪个配置文件。配置文件限制用户使用数据库的资源量。如果忽略该
项,ORACLE为用户指定缺省配置文件。
PASSWORDEXPIRE
指定用户密码的过期。这个设置迫使用户(或DBA)在登录到ORACLE之前必须修改密码
。
Q1.怎样创建表?
A.CREATETABLEROYAL_MTABLE
(
RM_INT_FIELDINTEGER,
RM_STR_FIELDVARCHAR2(64)
)
CREATETABLEROYAL_DTABLE
(
RD_INT_FIELDINTEGER,
RD_STR_FIELDVARCHAR2(32)
)
Q2.怎样删除表?
A.DROPTABLEROYAL_DTABLE;
Q3.怎样创建视图?
A.CREATEORREPLACEVIEWROYAL_MDVIEWAS
SELECTT1.RM_STR_FIELDASF1,T2.RD_STR_FIELDASF2FROMROYAL_MTABLET1,ROYAL_DTABLET2
WHERET1.RM_INT_FIELD=T2.RM_INT_FIELD
Q4.怎样删除视图?
A.DROPVIEWROYAL_MDVIEW;
Q5.怎样给表添加字段?
A.ALTERTABLEROYAL_DTABLEADDRM_INT_FIELDINTEGER;
Q6.怎样删除表中某个字段?
A.ALTERTABLEROYAL_DTABLEDROPCOLUMNRM_INT_FIELD;
Q7.怎样给某个字段添加约束?
A.ALTERTABLEROYAL_MTABLEMODIFYRM_STR_FIELDNOTNULL;
Q8.怎样去除某个字段上的约束?
A.ALTERTABLEROYAL_MTABLEMODIFYRM_STR_FIELDNULL;
Q9.怎样给表加上主键?
A.ALTERTABLEROYAL_MTABLEADDCONSTRAINTPK_ROYAL_MTABLEPRIMARYKEY(RM_INT_FIELD);
Q10.怎样删除表的主键?
A.ALTERTABLEROYAL_MTABLEDROPCONSTRAINTPK_ROYAL_MTABLECASCADE;
Q11.怎样给表添加一个外键?
A.ALTERTABLEROYAL_DTABLEADDCONSTRAINTFK_ROYAL_DTABLEFOREIGNKEY(RM_INT_FIELD)REFERENCESROYAL_MTABLE(RM_INT_FIELD)ONDELETECASCADE;
Q12.怎样删除表的一个外键?
A.ALTERTABLEROYAL_DTABLEDROPCONSTRAINTFK_ROYAL_DTABLE;
Q13.怎样给字段加上CHECK?
A.ALTERTABLEROYAL_MTABLEADDCONSTRAINTCHK_RM_STR_FIELDCHECK(RM_STR_FIELDIN('Y','N'));
Q14.怎样去掉字段上的CHECK?
A.ALTERTABLEROYAL_MTABLEDROPCONSTRAINTCHK_RM_STR_FIELD;
Q15.怎样给字段设置默认值?
A.ALTERTABLEROYAL_DTABLEMODIFYRD_STR_FIELDDEFAULT'ROYAL';
Q16.怎样移去字段的默认值?
A.ALTERTABLEROYAL_DTABLEMODIFYRD_STR_FIELDDEFAULTNULL;
Q17.怎样创建索引?
A.CREATEUNIQUEINDEXIDX_ROYAL_DTABLEONROYAL_DTABLE(RM_INT_FIELD);
Q18.怎样删除索引?
A.DROPINDEXIDX_ROYAL_DTABLE;
Q19.怎样创建用户?
A.CREATEUSERTESTUSERIDENTIFIEDEXTERNALLYDEFAULTTABLESPACEUSERSTEMPORARYTABLESPACETEMPPROFILEDEFAULT;
Q20.怎样删除用户?
A.DROPUSERTESTUSERCASCADE;
Q21.怎样将对象权限(objectprivileges)授予用户?
A.GRANTSELECT,INSERT,UPDATE,DELETE,ALTERONROYAL_MTABLETOTESTUSER;
GRANTINSERT,UPDATE,DELETEONROYAL_DTABLETOTESTUSER;
GRANTSELECT,ALTERONROYAL_DTABLETOTESTUSERWITHGRANTOPTION;
Q22.怎样从用户收回对象权限?
A.REVOKESELECT,INSERT,UPDATE,DELETE,ALTERONROYAL_DTABLEFROMTESTUSER;
Q23.怎样将角色权限(roleprivileges)授予用户?
A.GRANTCONNECTTOTESTUSERWITHADMINOPTION;
GRANTDBATOTESTUSER;
Q24.怎样从用户收回角色权限?
A.REVOKEDBAFROMTESTUSER;
Q25.怎样将系统权限(systemprivileges)授予用户?
A.GRANTALTERANYTABLETOTESTUSERWITHADMINOPTION;
Q26.怎样从用户收回系统权限?
A.REVOKEALTERANYTABLEFROMTESTUSER;
Q27.怎样创建序列?
A.CREATESEQUENCERM_INT_FIELD_SEQ
MINVALUE1
MAXVALUE999999999999999999999999999
STARTWITH1
INCREMENTBY1
CACHE10
ORDER;
Q28.怎样删除序列?
A.DROPSEQUENCERM_INT_FIELD_SEQ;
Q29.怎样获取序列值?
A.SELECTRM_INT_FIELD_SEQ.NEXTVALFROMDUAL;
Q30.怎样创建角色?
A.CREATEROLETESTROLE;
Q31.怎样删除角色?
A.DROPROLETESTROLE;
Q32.怎样将对象权限(objectprivileges)授予角色?
A.GRANTSELECT,INSERT,UPDATE,DELETE,ALTERONROYAL_MTABLETOTESTROLE;
Q33.怎样从角色收回对象权限?
A.REVOKESELECT,INSERT,UPDATE,DELETE,ALTERONROYAL_MTABLEFROMTESTROLE;
Q34.怎样将角色权限(roleprivileges)授予角色?
A.GRANTDBATOTESTROLE;
Q35.怎样从角色收回角色权限?
A.REVOKEDBAFROMTESTROLE;
Q36.怎样将系统权限(systemprivileges)授予角色?
A.GRANTCREATETABLETOTESTROLE;
Q37.怎样从角色收回系统权限?
A.REVOKECREATETABLEFROMTESTROLE;
Q38.不等于条件有哪几种写法?(茴香豆问题:))
A.SELECT*FROMROYAL_MTABLEWHERERM_STR_FIELD!='Y';
SELECT*FROMROYAL_MTABLEWHERERM_STR_FIELD^='Y';
SELECT*FROMROYAL_MTABLEWHERERM_STR_FIELD<>'Y';
Q39.like子句的用法?
A.SELECT*FROMROYAL_DTABLEWHERERD_STR_FIELDLIKE'%Y%';
SELECT*FROMROYAL_DTABLEWHERERD_STR_FIELDLIKE'_Y%';
Q40.请举出一个where子查询简单例子?
A.SELECT*FROMROYAL_DTABLEWHERERM_INT_FIELDIN(SELECTRM_INT_FIELDFROMROYAL_MTABLEWHERERM_STR_FIELDNOTIN('Y','B'));
Q41.Oracle常用字符串处理函数有哪些?
A.||连接两个字符串;LENGTH字符串长度;TRIM/LTRIM/RTRIM截断串左(右)指定字符串(包括空串);LOWER/UPPER将字符串转换为小/大写,等等。
例如:SELECTRM_INT_FIELD||'--'||RM_STR_FIELD||'YES'FROMROYAL_MTABLE;
Q42.Oracle支持哪些数字处理函数?
A.Oracle支持所有常用数字函数,包括(但不限于)+、-、*、/、ABS、COS、EXP、LN、LOG、MOD、POWER、ROUND、SIN、SINH、SQRT、TAN、TRUNC、AVG、COUNT、MAX、MIN、SUM、GREATEST、LEAST等等。
例如:
SELECTGREATEST(3,4,5)*4FROMDUAL;
SELECTPOWER(2,3)FROMDUAL;
Q43.怎样取得数据库服务器当前日期、时间?
A.SELECTSYSDATEFROMDUAL;
SELECTTO_CHAR(SYSDATE,'YYYY-MM-DDHH:MI:SS')FROMDUAL;
Q44.怎样将字符串转换为日期、时间格式?
A.SELECTTO_DATE('2002-11-27','YYYY-MM-DD')FROMDUAL;
SELECTTO_DATE('2002-11-2709:28:55','YYYY-MM-DDHH:MI:SS')FROMDUAL;
Q45.常用日期函数有哪些?
A.NEXT_DAYLAST_DAYADD_MONTHSMONTHS_BETWEEN等等。
例如:SELECTLAST_DAY(SYSDATE)FROMDUAL;
Q46.能给出一个DECODE函数用法的例子吗?
A.DECODE函数的格式为DECODE(value,if1,then1,if2,then2...,else)。假设表ROYAL_DTABLE中有如下数据:
RD_INT_FIELDRD_STR_FIELDRM_INT_FIELD
--------------------------------------
1royal1
2bill2
3joy1
请观察如下SQL语句输出结果。
SELECTDECODE(RD_STR_FIELD,'royal','royaltest','bill','billgates',RD_STR_FIELD)ASDCFROMROYAL_DTABLE;
DC
---------
royaltest
billgates
joy
Q47.能给出一个groupby、having和orderby用法的例子吗?
A.SQL>SELECT*FROMROYAL_MTABLE;
RM_INT_FIELDRM_STR_FIELD
-------------------------
1Y
2N
3Y
SQL>SELECT*FROMROYAL_DTABLE;
RD_INT_FIELDRD_STR_FIELDRM_INT_FIELD
--------------------------------------
1royal1
2bill2
3joy1
SQL>SELECTRM_INT_FIELD,SUM(RD_INT_FIELD)FROMROYAL_DTABLEGROUPBYRM_INT_FIELDHAVINGSUM(RD_INT_FIELD)>=2ORDERBYSUM(RD_INT_FIELD)ASC;
RM_INT_FIELDSUM(RD_INT_FIELD)
------------------------------
22
14
Q48.Oracle有哪些常用数据字典?
A.USER_TABLES(TABS)、USER_TAB_COLUMNS(COLS)、USER_VIEWS、USER_SEQUENCES(SEQ)、USER_CONSTRAINTS、USER_CONS_COLUMNS、USER_TAB_COMMENTS、USER_COL_COMMENTS、USER_INDEXES(IND)、USER_IND_COLUMNS、USER_USERS、DBA_USERS、ALL_USERS、USER_TABLESPACES等等。
例如:SELECT*FROMUSER_CONSTRAINTSWHERECONSTRAINT_NAME='FK_ROYAL_DTABLE';
Q49.怎样将日期、时间插入date型字段中?
A.INSERTINTOROYAL_MTABLE(RM_INT_FIELD,RM_STR_FIELD,RM_DATE_FIELD)VALUES(9,'Y',TO_DATE('2002-05-23','YYYY-MM-DD'));
INSERTINTOROYAL_MTABLE(RM_INT_FIELD,RM_STR_FIELD,RM_DATE_FIELD)VALUES(10,'Y',TO_DATE('2002-10-108:23:33','YYYY-MM-DDHH:MI:SS'));
Q50.能介绍一下connectby的用法吗?
A.connectby子句提供了遍历“树”的手段。
假设有这样一个表:CREATETABLEROYAL_TREETABLE(IDINTEGER,PARENT_IDINTEGER,NAMEVARCHAR2(32));
表中有如下数据:
IDPARENT_IDNAME
-----------------
21AAA
31BBB
42CCC
52DDD
64EEE
87GGG
假如我们现在需要从NAME='EEE'的记录开始,向上查找所有有父子关系的记录,可执行如下SQL语句:
SELECT*FROMROYAL_TREETABLESTARTWITHNAME='EEE'CONNECTBYID=PRIORPARENT_ID;
IDPARENT_IDNAME
-----------------
64EEE
42CCC
21AAA
【前提】
你必须有CREATEUSER系统权限。当你使用CREATEUSER语句创建一个新用户后,该用户的权
限是空的,要登录到ORACLE该用户必须有CREATESESSION系统权限。因此在创建用户之后
,你至少应该授予用户CREATESESSION权限。
【示例】
创建一个用户的例子
如果你创建一个新用户使用PASSWORDEXPIRE项,在尝试登陆ORACLE之前该用户的密码必须
改变。你可以创建该用户使用以下语句:
CREATEUSERsidney
IDENTIFIEDBYwelcome
DEFAULTTABLESPACEcases_ts
QUOTA10MONcases_ts
TEMPORARYTABLESPACEtemp_ts
QUOTA5MONsystem
PROFILEengineer
PASSWORDEXPIRE;
该用户有以下特征:
密码:welcome
缺省表空间:cases_ts,有10M的使用权。
临时表空间:temp_ts
在系统表空间SYSTEM有5M的使用权。
使用数据库资源定义在配置文件engineer中。
一个过期密码,在登陆ORACLE之前该用户的密码必须改变。
【关键字和参数】
user
标识要被创建的用户名称。
IDENTIFIED
IDENTIFIED项让你指出ORACLE如何鉴别该用户。
BYpassword
BYpassword项让你创建一个本地用户并指出该用户必须使用指定密码登录ORACLE。
密码只包含单字节字符。
DEFAULTTABLESPACE
指出所创用户的缺省表空间。如果你忽略该项,缺省值是SYSTEM表空间。
TEMPORARYTABLESPACE
指出所创用户的临时表空间。如果你忽略该项,缺省值是SYSTEM表空间。
QUOTA
使用QUOTA项指定允许用户使用的表空间大小,以K或M为单位的整数值。
一个用户可以拥有多个表空间的多个QUOTA值。
UNLIMITED
允许用户无限制的使用表空间。
PROFILE
指你想给用户分配哪个配置文件。配置文件限制用户使用数据库的资源量。如果忽略该
项,ORACLE为用户指定缺省配置文件。
PASSWORDEXPIRE
指定用户密码的过期。这个设置迫使用户(或DBA)在登录到ORACLE之前必须修改密码
。
Q1.怎样创建表?
A.CREATETABLEROYAL_MTABLE
(
RM_INT_FIELDINTEGER,
RM_STR_FIELDVARCHAR2(64)
)
CREATETABLEROYAL_DTABLE
(
RD_INT_FIELDINTEGER,
RD_STR_FIELDVARCHAR2(32)
)
Q2.怎样删除表?
A.DROPTABLEROYAL_DTABLE;
Q3.怎样创建视图?
A.CREATEORREPLACEVIEWROYAL_MDVIEWAS
SELECTT1.RM_STR_FIELDASF1,T2.RD_STR_FIELDASF2FROMROYAL_MTABLET1,ROYAL_DTABLET2
WHERET1.RM_INT_FIELD=T2.RM_INT_FIELD
Q4.怎样删除视图?
A.DROPVIEWROYAL_MDVIEW;
Q5.怎样给表添加字段?
A.ALTERTABLEROYAL_DTABLEADDRM_INT_FIELDINTEGER;
Q6.怎样删除表中某个字段?
A.ALTERTABLEROYAL_DTABLEDROPCOLUMNRM_INT_FIELD;
Q7.怎样给某个字段添加约束?
A.ALTERTABLEROYAL_MTABLEMODIFYRM_STR_FIELDNOTNULL;
Q8.怎样去除某个字段上的约束?
A.ALTERTABLEROYAL_MTABLEMODIFYRM_STR_FIELDNULL;
Q9.怎样给表加上主键?
A.ALTERTABLEROYAL_MTABLEADDCONSTRAINTPK_ROYAL_MTABLEPRIMARYKEY(RM_INT_FIELD);
Q10.怎样删除表的主键?
A.ALTERTABLEROYAL_MTABLEDROPCONSTRAINTPK_ROYAL_MTABLECASCADE;
Q11.怎样给表添加一个外键?
A.ALTERTABLEROYAL_DTABLEADDCONSTRAINTFK_ROYAL_DTABLEFOREIGNKEY(RM_INT_FIELD)REFERENCESROYAL_MTABLE(RM_INT_FIELD)ONDELETECASCADE;
Q12.怎样删除表的一个外键?
A.ALTERTABLEROYAL_DTABLEDROPCONSTRAINTFK_ROYAL_DTABLE;
Q13.怎样给字段加上CHECK?
A.ALTERTABLEROYAL_MTABLEADDCONSTRAINTCHK_RM_STR_FIELDCHECK(RM_STR_FIELDIN('Y','N'));
Q14.怎样去掉字段上的CHECK?
A.ALTERTABLEROYAL_MTABLEDROPCONSTRAINTCHK_RM_STR_FIELD;
Q15.怎样给字段设置默认值?
A.ALTERTABLEROYAL_DTABLEMODIFYRD_STR_FIELDDEFAULT'ROYAL';
Q16.怎样移去字段的默认值?
A.ALTERTABLEROYAL_DTABLEMODIFYRD_STR_FIELDDEFAULTNULL;
Q17.怎样创建索引?
A.CREATEUNIQUEINDEXIDX_ROYAL_DTABLEONROYAL_DTABLE(RM_INT_FIELD);
Q18.怎样删除索引?
A.DROPINDEXIDX_ROYAL_DTABLE;
Q19.怎样创建用户?
A.CREATEUSERTESTUSERIDENTIFIEDEXTERNALLYDEFAULTTABLESPACEUSERSTEMPORARYTABLESPACETEMPPROFILEDEFAULT;
Q20.怎样删除用户?
A.DROPUSERTESTUSERCASCADE;
Q21.怎样将对象权限(objectprivileges)授予用户?
A.GRANTSELECT,INSERT,UPDATE,DELETE,ALTERONROYAL_MTABLETOTESTUSER;
GRANTINSERT,UPDATE,DELETEONROYAL_DTABLETOTESTUSER;
GRANTSELECT,ALTERONROYAL_DTABLETOTESTUSERWITHGRANTOPTION;
Q22.怎样从用户收回对象权限?
A.REVOKESELECT,INSERT,UPDATE,DELETE,ALTERONROYAL_DTABLEFROMTESTUSER;
Q23.怎样将角色权限(roleprivileges)授予用户?
A.GRANTCONNECTTOTESTUSERWITHADMINOPTION;
GRANTDBATOTESTUSER;
Q24.怎样从用户收回角色权限?
A.REVOKEDBAFROMTESTUSER;
Q25.怎样将系统权限(systemprivileges)授予用户?
A.GRANTALTERANYTABLETOTESTUSERWITHADMINOPTION;
Q26.怎样从用户收回系统权限?
A.REVOKEALTERANYTABLEFROMTESTUSER;
Q27.怎样创建序列?
A.CREATESEQUENCERM_INT_FIELD_SEQ
MINVALUE1
MAXVALUE999999999999999999999999999
STARTWITH1
INCREMENTBY1
CACHE10
ORDER;
Q28.怎样删除序列?
A.DROPSEQUENCERM_INT_FIELD_SEQ;
Q29.怎样获取序列值?
A.SELECTRM_INT_FIELD_SEQ.NEXTVALFROMDUAL;
Q30.怎样创建角色?
A.CREATEROLETESTROLE;
Q31.怎样删除角色?
A.DROPROLETESTROLE;
Q32.怎样将对象权限(objectprivileges)授予角色?
A.GRANTSELECT,INSERT,UPDATE,DELETE,ALTERONROYAL_MTABLETOTESTROLE;
Q33.怎样从角色收回对象权限?
A.REVOKESELECT,INSERT,UPDATE,DELETE,ALTERONROYAL_MTABLEFROMTESTROLE;
Q34.怎样将角色权限(roleprivileges)授予角色?
A.GRANTDBATOTESTROLE;
Q35.怎样从角色收回角色权限?
A.REVOKEDBAFROMTESTROLE;
Q36.怎样将系统权限(systemprivileges)授予角色?
A.GRANTCREATETABLETOTESTROLE;
Q37.怎样从角色收回系统权限?
A.REVOKECREATETABLEFROMTESTROLE;
Q38.不等于条件有哪几种写法?(茴香豆问题:))
A.SELECT*FROMROYAL_MTABLEWHERERM_STR_FIELD!='Y';
SELECT*FROMROYAL_MTABLEWHERERM_STR_FIELD^='Y';
SELECT*FROMROYAL_MTABLEWHERERM_STR_FIELD<>'Y';
Q39.like子句的用法?
A.SELECT*FROMROYAL_DTABLEWHERERD_STR_FIELDLIKE'%Y%';
SELECT*FROMROYAL_DTABLEWHERERD_STR_FIELDLIKE'_Y%';
Q40.请举出一个where子查询简单例子?
A.SELECT*FROMROYAL_DTABLEWHERERM_INT_FIELDIN(SELECTRM_INT_FIELDFROMROYAL_MTABLEWHERERM_STR_FIELDNOTIN('Y','B'));
Q41.Oracle常用字符串处理函数有哪些?
A.||连接两个字符串;LENGTH字符串长度;TRIM/LTRIM/RTRIM截断串左(右)指定字符串(包括空串);LOWER/UPPER将字符串转换为小/大写,等等。
例如:SELECTRM_INT_FIELD||'--'||RM_STR_FIELD||'YES'FROMROYAL_MTABLE;
Q42.Oracle支持哪些数字处理函数?
A.Oracle支持所有常用数字函数,包括(但不限于)+、-、*、/、ABS、COS、EXP、LN、LOG、MOD、POWER、ROUND、SIN、SINH、SQRT、TAN、TRUNC、AVG、COUNT、MAX、MIN、SUM、GREATEST、LEAST等等。
例如:
SELECTGREATEST(3,4,5)*4FROMDUAL;
SELECTPOWER(2,3)FROMDUAL;
Q43.怎样取得数据库服务器当前日期、时间?
A.SELECTSYSDATEFROMDUAL;
SELECTTO_CHAR(SYSDATE,'YYYY-MM-DDHH:MI:SS')FROMDUAL;
Q44.怎样将字符串转换为日期、时间格式?
A.SELECTTO_DATE('2002-11-27','YYYY-MM-DD')FROMDUAL;
SELECTTO_DATE('2002-11-2709:28:55','YYYY-MM-DDHH:MI:SS')FROMDUAL;
Q45.常用日期函数有哪些?
A.NEXT_DAYLAST_DAYADD_MONTHSMONTHS_BETWEEN等等。
例如:SELECTLAST_DAY(SYSDATE)FROMDUAL;
Q46.能给出一个DECODE函数用法的例子吗?
A.DECODE函数的格式为DECODE(value,if1,then1,if2,then2...,else)。假设表ROYAL_DTABLE中有如下数据:
RD_INT_FIELDRD_STR_FIELDRM_INT_FIELD
--------------------------------------
1royal1
2bill2
3joy1
请观察如下SQL语句输出结果。
SELECTDECODE(RD_STR_FIELD,'royal','royaltest','bill','billgates',RD_STR_FIELD)ASDCFROMROYAL_DTABLE;
DC
---------
royaltest
billgates
joy
Q47.能给出一个groupby、having和orderby用法的例子吗?
A.SQL>SELECT*FROMROYAL_MTABLE;
RM_INT_FIELDRM_STR_FIELD
-------------------------
1Y
2N
3Y
SQL>SELECT*FROMROYAL_DTABLE;
RD_INT_FIELDRD_STR_FIELDRM_INT_FIELD
--------------------------------------
1royal1
2bill2
3joy1
SQL>SELECTRM_INT_FIELD,SUM(RD_INT_FIELD)FROMROYAL_DTABLEGROUPBYRM_INT_FIELDHAVINGSUM(RD_INT_FIELD)>=2ORDERBYSUM(RD_INT_FIELD)ASC;
RM_INT_FIELDSUM(RD_INT_FIELD)
------------------------------
22
14
Q48.Oracle有哪些常用数据字典?
A.USER_TABLES(TABS)、USER_TAB_COLUMNS(COLS)、USER_VIEWS、USER_SEQUENCES(SEQ)、USER_CONSTRAINTS、USER_CONS_COLUMNS、USER_TAB_COMMENTS、USER_COL_COMMENTS、USER_INDEXES(IND)、USER_IND_COLUMNS、USER_USERS、DBA_USERS、ALL_USERS、USER_TABLESPACES等等。
例如:SELECT*FROMUSER_CONSTRAINTSWHERECONSTRAINT_NAME='FK_ROYAL_DTABLE';
Q49.怎样将日期、时间插入date型字段中?
A.INSERTINTOROYAL_MTABLE(RM_INT_FIELD,RM_STR_FIELD,RM_DATE_FIELD)VALUES(9,'Y',TO_DATE('2002-05-23','YYYY-MM-DD'));
INSERTINTOROYAL_MTABLE(RM_INT_FIELD,RM_STR_FIELD,RM_DATE_FIELD)VALUES(10,'Y',TO_DATE('2002-10-108:23:33','YYYY-MM-DDHH:MI:SS'));
Q50.能介绍一下connectby的用法吗?
A.connectby子句提供了遍历“树”的手段。
假设有这样一个表:CREATETABLEROYAL_TREETABLE(IDINTEGER,PARENT_IDINTEGER,NAMEVARCHAR2(32));
表中有如下数据:
IDPARENT_IDNAME
-----------------
21AAA
31BBB
42CCC
52DDD
64EEE
87GGG
假如我们现在需要从NAME='EEE'的记录开始,向上查找所有有父子关系的记录,可执行如下SQL语句:
SELECT*FROMROYAL_TREETABLESTARTWITHNAME='EEE'CONNECTBYID=PRIORPARENT_ID;
IDPARENT_IDNAME
-----------------
64EEE
42CCC
21AAA