参考答案
由关系、数据、数据之间的约束三者所组成的数据模型则称为RDBMS,即关系型数据库管理系统。
A.表是二维的, 由行和列组成。
B.表的行(Row)是横排数据,也被称作字段(Field)。
C.表的列(Column)是纵列数据,也被称作记录(Record)。
D.表是关系数据库的基本存储结构,一个关系数据库由多个数据表(Table)组成。
参考答案
本题正确答案为AD。
B选项说法不正确,表的行(Row)是横排数据,也被称作记录(Record)。
C选项说法不正确,表的列(Column)是纵列数据,也被称作字段(Field)。
参考答案
主流的数据库及其厂商如下:
1)Oracle数据库是著名的Oracle(甲骨文)公司的数据库产品,Oracle数据库是世界上第一个商品化的关系型数据库管理系统;Oracle数据库采用标准SQL(结构化查询语言),支持多种数据类型,提供面向对象的数据支持,具有第四代语言开发工具,支持UNIX、WINDOWS、OS/2等多种平台;Oracle公司的产品丰富,包括Oracle服务器、 Oracle开发工具和Oracle应用软件,其中最著名的就是Oracle数据库。
2)DB2是IBM公司的关系型数据库管理系统。DB2有很多不同的版本, 可以运行在从掌上产品到大型机不同的终端机器上;DB2 Universal Database Personal Edition和DB2 Universal Database Workgroup Edition分别是单用户和多用户系统, 可以运行在OS/2和Windows上;DB2是Oracle的主要竞争对手。
3)Sybase是美国Sybase公司的关系型数据库系统。Sybase是较早采用C/S技术的数据库厂商;典型的UNIX或Windows NT平台上客户机/服务器环境下的大型数据库系统;Sybase通常与Sybase SQL Anywhere用于客户机/服务器环境,前者作为服务器数据库,后者为客户机数据库,采用该公司研制的PowerBuilder为开发工具,在国内大中型系统中具有广泛的应用;Sybase公司2010年被SAP收购。
4)Microsoft SQL Server是微软的产品,运行在Windows NT服务器上。Microsoft SQL Server的最初版本适用于中小企业,但是应用范围不断扩展,已经触及到大型、跨国企业的数据库管理。
5)MySQL是开放源码的小型关系型数据库管理系统。广泛应用在中小型网站中,成本低、规模较Oracle和DB2小;2008年1月16日,Sun收购MySQL。2009年4月20日,SUN被Oracle公司收购,所以MySQL现在属于Oracle公司。
参考答案
结构化查询语言(SQL)可分为:
1)数据定义语言(DDL):Data Definition Language
2)数据操纵语言(DML):Data Manipulation Language
3)事务控制语言(TCL):Transaction Control Language
4)数据查询语言(DQL):Data Query Language
5)数据控制语言(DCL):Data Control Language
A.在Oracle中,number表示数字类型。
B.“salary NUMBER(6,2)“表示salary列中的数据,整数位最大为4位,小数位最大位数是2位,即最大取值:9999.99。
C.“id NUMBER(4)“表示id列中的数据,整数位最大为4位,没有小数。
D.“fee NUMBER(7,2)“表示fee列中的数据,整数最大位数为7位,小数为2位。
参考答案
本题正确答案为ABC。
NUMBER表示数字类型,经常被定义成NUMBER(P,S)形式,其中,P表示数字的总位数;S表示小数点后面的位数,因此本题中的ABC选项说法正确,D选项说法错误。
A.char和varchar2都表示字符类型,无区别。
B.char表示固定长度的字符类型,而varchar2表示变长的字符类型。
C.“job VARCHAR2(100)”表示job列中最多可存储长度为100个字节的字符串。根据其中保存的数据长度,占用的空间是变化的,最大占用空间为100个字节。
D.“ename CHAR(20)”表示ename列中最多可存储20个字节的字符串,并且占用的空间是固定的20个字节。
参考答案
本题正确答案为BCD。
CHAR表示固定长度的字符类型。经常被定义成CHAR(N)形式, N表示占用的字节数最大长度是2000字节。例如在表Emp中的ename列的定义如下:
ename CHAR(20);
表示Ename列中最多可存储20个字节的字符串,并且占用的空间是固定的20个字节。
VARCHAR2表示变长的字符类型。定义格式是VARCHAR2(N), N表示最多可占用的字节数,最大长度是4000字节。在表Emp中的job列的定义如下:
job VARCHAR2(100);
表示job列中最多可存储长度为100个字节的字符串。根据其中保存的数据长度,占用的空间是变化的,最大占用空间为100个字节。
已知创建student表的SQL语句如下:
CREATE TABLE student( id NUMBER(4), name VARCHAR2(20), gender CHAR(1), birth DATE );
下列对student表实施插入的SQL语句正确的是:()。
A.insert into student(id,name,birth)
values(1001,'smith','1989-01-12');
B.英文环境可以采用如下插入语句实施插入:
insert into student(id,name,birth)
values(1001,'smith','12-JAN-89');
C.中文环境可以采用如下插入语句实施插入:
insert into student(id,name,birth)
values(1001,'smith','12-1月-89');
D.insert into student(id,name,birth)
values(1001,'smith',to_date('1989-01-12','yyyy-mm-dd'));
参考答案
本题正确答案为:BCD
如果插入的列有日期字段,需要考虑日期的格式,默认的日期格式‘DD-MON-RR’,中文系统和英文系统略有不同,例如B选项和C选项的用法。
可以自定义日期格式,用TO_DATE函数转换为日期类型的数据,例如D选项的用法。
帐务帐户表的信息如表-1所示:
表-1 帐务帐户表信息
请根据上述表信息创建账务账户表Account。
参考答案
创建账务账户表的SQL如下所示:
create table ACCOUNT ( ID NUMBER(9) not null, RECOMMENDER_ID NUMBER(9), LOGIN_NAME VARCHAR2(30) not null, LOGIN_PASSWD VARCHAR2(8) not null, STATUS CHAR(1), CREATE_DATE DATE default SYSDATE, PAUSE_DATE DATE, CLOSE_DATE DATE, REAL_NAME VARCHAR2(20) not null, IDCARD_NO CHAR(18) not null, BIRTHDATE DATE, GENDER CHAR(1), OCCUPATION VARCHAR2(50), TELEPHONE VARCHAR2(15) not null, EMAIL VARCHAR2(50), MAILADDRESS VARCHAR2(50), ZIPCODE CHAR(6), QQ VARCHAR2(15), LAST_LOGIN_TIME DATE, LAST_LOGIN_IP VARCHAR2(15) );
修改账务账户表,详细要求如下:
1)修改account表的表名为t_account;
2)向t_account表增加一列bak,其数据类型为varchar2,长度为50;
3)修改t_account表中的bak列的长度为40,并增加默认值的设置,默认值为“login”;
4)删除t_account表中的bak列。
参考答案
实现此案例需要按照如下步骤进行。
步骤一:修改表名
将account表的表名修改为t_account,使用如下SQL语句:
RENAME account TO t_account;
步骤二:增加列
给t_account表增加一列bak,其数据类型为varchar2,长度为50,使用的SQL语句如下:
ALTER TABLE t_account ADD (bak varchar2(50));
步骤三:修改列
修改t_account表中的bak列的长度为40,并增加默认值的设置,默认值为“login”,使用的SQL语句如下:
ALTER TABLE t_account MODIFY(bak VARCHAR2(40) DEFAULT 'login' );
步骤四:删除列
删除表t_account中的bak列,使用的SQL语句如下:
ALTER TABLE t_account DROP (bak);
向t_account表中插入一条记录,该条记录的数据如表-2所示。
表- 2
参考答案
插入数据的SQL语句如下:
--中文环境 INSERT INTO T_ACCOUNT(ID,LOGIN_NAME,LOGIN_PASSWD,CREATE_DATE, REAL_NAME,IDCARD_NO,TELEPHONE) VALUES(1,'shiyl','256528', '28-1月-08','shiyuanli','410381194302256523',13669351234); --英文环境 INSERT INTO T_ACCOUNT(ID,LOGIN_NAME,LOGIN_PASSWD,CREATE_DATE, REAL_NAME,IDCARD_NO,TELEPHONE) VALUES(1,'shiyl','256528', '28-JAN-08','shiyuanli','410381194302256523',13669351234);
将账务账户表ID为1的账务账户的密码更改为801206。
参考答案
更新数据的SQL语句如下:
update t_account set login_passwd='801206' where id=1;
删除账务账户表中ID为1的账务账户信息。
参考答案
删除数据的SQL语句如下:
delete from t_account where id=1;
创建职员表 emp,表结构如表-3所示:
表-3职员表emp 信息
创建部门表 dept,表结构如表-4所示:
表-4 部门表 dept 信息
参考答案
参考答案:
创建dept表的代码如下:
CREATE TABLE dept (deptno NUMBER(2), dname VARCHAR2(14) , loc VARCHAR2(13) ) ;
创建emp表的代码如下:
CREATE TABLE emp( empno NUMBER(4), ename VARCHAR2(10), job VARCHAR2(9), mgr NUMBER(4), hiredate DATE, sal NUMBER(7,2), comm NUMBER(7,2) );
为职员表 emp插入示例数据,示例数据如图-1所示:
图-1
为部门表 dept插入示例数据,示例数据如图-2所示:
图-2
参考答案
为dept表插入示例数据的代码如下:
INSERT INTO dept VALUES (10,'ACCOUNTING','NEW YORK'); INSERT INTO dept VALUES (20,'RESEARCH','DALLAS'); INSERT INTO dept VALUES (30,'SALES','CHICAGO'); INSERT INTO dept VALUES (40,'OPERATIONS','BOSTON');
为emp表插入示例数据的代码如下:
INSERT INTO emp VALUES(7369,'SMITH','CLERK',7902,to_date('17-12-1980','dd-mm-yyyy'),800,NULL,20); INSERT INTO emp VALUES(7499,'ALLEN','SALESMAN',7698,to_date('20-2-1981','dd-mm-yyyy'),1600,300,30); INSERT INTO emp VALUES(7521,'WARD','SALESMAN',7698,to_date('22-2-1981','dd-mm-yyyy'),1250,500,30); INSERT INTO emp VALUES(7566,'JONES','MANAGER',7839,to_date('2-4-1981','dd-mm-yyyy'),2975,NULL,20); INSERT INTO emp VALUES(7654,'MARTIN','SALESMAN',7698,to_date('28-9-1981','dd-mm-yyyy'),1250,1400,30); INSERT INTO emp VALUES(7698,'BLAKE','MANAGER',7839,to_date('1-5-1981','dd-mm-yyyy'),2850,NULL,30); INSERT INTO emp VALUES(7782,'CLARK','MANAGER',7839,to_date('9-6-1981','dd-mm-yyyy'),2450,NULL,10); INSERT INTO emp VALUES(7788,'SCOTT','ANALYST',7566,to_date('19-4-87','dd-mm-yyyy'),3000,NULL,20); INSERT INTO emp VALUES(7839,'KING','PRESIDENT',NULL,to_date('17-11-1981','dd-mm-yyyy'),5000,NULL,10); INSERT INTO emp VALUES(7844,'TURNER','SALESMAN',7698,to_date('8-9-1981','dd-mm-yyyy'),1500,0,30); INSERT INTO emp VALUES(7876,'ADAMS','CLERK',7788,to_date('23-5-87','dd-mm-yyyy'),1100,NULL,20); INSERT INTO emp VALUES(7900,'JAMES','CLERK',7698,to_date('3-12-1981','dd-mm-yyyy'),950,NULL,30); INSERT INTO emp VALUES(7902,'FORD','ANALYST',7566,to_date('3-12-1981','dd-mm-yyyy'),3000,NULL,20); INSERT INTO emp VALUES(7934,'MILLER','CLERK',7782,to_date('23-1-1982','dd-mm-yyyy'),1300,NULL,10);