1. 什么是数据?数据有什么特征?数据和信息有什么关系?
答:数据是用于载荷信息的物理符号。
数据的特征:1数据有“型”和“值”之分;2数据受数据类型和取值范围的约束;3数据有定性表示和定量表示之分;4数据应具有载体和多种表现形式。
数据与信息的关系为:数据是信息的一种表现形式,数据通过能书写的信息编码表示信息。信息有多种表现形式,他通过手势,眼神,声音或图形等方式表达,但数据是信息的最佳表现形式。由于数据能够书写,因而他能够被记录,存储和处理,从中挖掘出更深层的信息。但数据不等于信息,数据知识信息表达方式中的一种。正确的数据可表达信息,而虚假错误的数据所表达的是谬误,不是信息。
2. 数据库系统阶段的数据管理有什么特点?
答:数据库系统阶段的数据管理有5方面的特点:1采用复杂的数据模型表示数据结构。2有较高的数据独立性。3数据库系统为用户提供了方便的用户接口。4系统提供有数据库的恢复,并发控制,数据完整性和数据安全性的数据控制功能,以保证数据库中的数据是安全,正确和可靠的。5对数据的操作不一定已记录为单位,也可以以数据项为单元,从而增加了系统的灵活性。
2.试述数据库系统的三级模式结构及每级模式的作用
答:(1)逻辑模式,它是对数据库中的数据的整体逻辑结构的特征描述,是系统为了减少数据冗余,实现数据共享的目标并对素有用户的数据进行综合抽象而得到的统一全局数据视图
(2)外模式,也称子模式,它是对各个用户或程序所涉及到得数据的逻辑几条狗和数据特征的描述。
(3)内模式,也叫存储模式是对数据库的内部表示或底层描述 。
3.描述数据库系统中二级映像技术及作用
答:是指外模式与模式之间的映像,模式与内模式之间的映像技术,二级映像 不仅在三级数据模式之间建立了联系,同时也保证了数据的独立性。
a外模式/模式之间的映像:定义并保证了外模式与数据模式之间的对应关系,使得用户能够按子模式进行程序设计,同时也保证了数据的逻辑独立性。
b模式/内模式的映像:定义并保证了数据的逻辑模式与内模式之间的对应关系,使用户或程序能够按数据的逻辑结构适用数据,还提供了内模式变化而程序不变化的方法,保证数据物理独立性。
4.叙述数据模型的概念,数据模型的作用和数据模型的3个要素
答:数据模型是一组严格定义饿概念集合。这些概念精确得描述了系统的数据结构,数据操作和数据完整性约束条件。其作用是用各种数据模型数据结构表四各类实体以及实体间的联系。3要素分别为:数据结构,数据操作,完整性约束条件
5.关系模型的特特点和3个组成部分
答:关系数据模型的特点有a.关系模型建立在严格的数学基础上b关系模型的概念单一,容易理解c关系模型的存取路径对用户隐蔽d关系模型中俄数据联系时考数据冗余实现的 3要素分别为:关系数据机构,关系操作,关系的完整性
6.定义并解释下列术语,说明他们之间的联系和区别
(1)主码 候选码 外码
(2)笛卡尔积 关系 元组 属性 域
(3)关系 关系模式 关系数据库
(1)1主码和候选码:若关系中的某一属性组的只能唯一标识一个元组,则称该属性组位候选码。当一个关系有多个候选码时,应选定其中的一个候选码为主码,而如果关系只有一个候选码,这个唯一的候选码就是主码。
2外码:设F是基本关系R的一个或一组属性,但不是关系R的主码。如果F与基本关系S的主码Ks相对应,则称F是基本关系R的外码。
(2)1笛卡尔积:D1,D2……Dn,这些域中可以有相同的部分,则D1,D2…..,Dn的笛卡尔积为:D1*D2*…..*Dn=
2关系:D1*D2*…Dn的子集称作在域D1,D2…Dn上的关系,表示为:R(D1,D2,…Dn)。其中,R表示关系的名字,n是关系的目。
3元组:笛卡尔积集合中的每一个元素(d1,d2…,dn)称为一个元组。
4属性:关系中的每一列称为一个属性。
5域:域为数据集合,属性值来源于域。
(3)1关系:关系式笛卡尔积的有限子集,所以关系也是一个二维表。
2关系模式:关系的描述称为关系模式。关系模式可以形式化的表示为:R(U,D,Dom,F)。其中:R为关系名,他是关系的形式化表示;U为组成该关系的属性集合;D为属性组U中属性所来自的域;Dom为属性向域的映像的集合;F为属性间数据的依赖关系集合。
3关系数据库:在某一应用领域中,所有实体集及实体之间联系所形成关系的集合就构成了一个关系数据库。
7.论述关系模型的完整性规则,在参照完整性中,为什么外码属性的值也可以为空,什么情况下才可为空?
答:关系模型完整性规则是对关系的某种约束条件。关系模型中有3类完整性约束:实体完整性,参照完整性,用户定义的完整性。
(1) 实体完整性规则:若属性A是基关系R的主属性,则属性A的值不能为空值,而不
仅是主码不能取空值。
(2) 参照完整性规则:若属性F是基本关系R的外码,它与基本关系S的主码K相对应,
则对于R中每个元组在F上必须取空值或者等于S中某个元组的主码值
(3) 用户定义完整性:针对某一具体关系数据库的约束条件,他反映某一具体应用所涉
及的数据必须满足的寓意要求
8说明视图和基本表的区别和联系
答;视图时根据子模式设计的关系,它是由一个或几个基本表(或已定义的视图)导出的虚表视图是从一个或几个基本表导出的表,它与基本表不同,是一个虚表。数据库中只存放视图的定义,而不存放视图的对应数据,这些数存放在视图的基本表中。所以基本表中的数据发生变化,从视图中查询出的数据也就随之改变了。视图一经定义就可以向基本表一样被查询,删除,也可以在一个视图之上在定义新的视图,但对视图的更新操作有限制。
9.SQL语言的特点
答: 它除了具有一般关系数据库语言的特点外还有以下特点:a。SQL具有自主式语言和嵌入式语言两种使用模式b。SQL具有语言简洁,易学易用的特点c。SQL支持三级数据模
式结构。
10书上P150页部分选择题10~19:BCACCBACBC
11简述SQL Sever20xx的4个最主要的数据库以及作用
答a。Master数据库,用于记录所有SQL Sever20xx系统级别的信息,这些信息用于控制用户数据库和数据操作
b.Msdb数据库,记录任务计划信息,时间处理信息,数据备份以及恢复信息和警告异常信息
c.Model数据库,为用户数据库提供样板
d.tempdb数据库,是一个共享功能工作空间,其他数据库都可以使用它。
12简述简述SQL Sever20xx的主要管理功能
答:主要包括(1)SQL服务器的安装吗,配置和管理(2)服务管理(3)数据库管理(4)数据库对象管理(5)数据管理(6)安全性管理(7)作业管理(8)集成操作
1、 SQL服务器的安装,配置和管理:为了使用SQL服务器,必须先对它进行安装和配置。
当系统中有多台SQL服务器时,还需要将它们连接,使他们协同工作。
2、 服务管理:在SQL客户机安装相应的软件并正确配置他们。
3、 数据库管理:包括数据库的创建、修改、删除一级备份和恢复。
4、 数据库的对象管理:管理数据库中的表、视图、存储过程、触发器、规则、默认值等。
5、 数据管理:实现记录的添加,删除和修改以及数据的传递与复制等。
6、 安全性管理:包括用户管理和权限管理两方面的内容。
7、 作业管理:包括警报管理、操作员管理和任务管理。
8、 集成操作:SQL Sever与电子邮件系统和WEB服务器的交互操作。
13简述简述SQL Sever20xx提供的主要管理工具和功能
答:(1)查询分析器,主要编辑transact-SQL ,将其发送大服务器,并将机型结果及分析显示出来或进行存储
(2)导入导出数据,是使SQL Sever与任何OLE DB,ODBC,JDBC或文本文件等多种不同类型的数据库之间实现数据传递
(3)服务管理器,用于开启,暂停和停止SQL服务工作,也可以通过它设置服务是否自动启动。
(4)客户机网络连接工具和服务器网络连接工具,用于设置本机作为服务器或客户机所使用的默认网络连接,并可为不支持默认网络库德SQL服务器设置连接方式
(5)练级丛书,shi简述SQL Sever20xx为用户提供在线帮助功能
(6)企业管理器,通过企业管理器,可以实现对管理对象的定义,改动,删除等操作
(7)时间探查器,用于监视与分析简述SQL Sever20xx活动,简述SQL Sever20xx网络进出流量或发出在简述SQL Sever20xx上的事
(8)在IIS中配置SQL XML支持,在英特网信息服务器中定义一个与简述SQL Sever20xx相关的虚拟目录
(9)分析管理器,一个提供用户界面以访问分析服务器以及其元数据知识库的控制台应用程序
(10)英语查询工具,对数据库专业知识差,但英语水平高的用户给以查询
第二篇:数据库总结
一:简单的SQL语句
1).select语句
1.查找表中所有数据
select * from 表名;如:select * from emp:
2.查找字段
select 字段1,字段2 from 表名 如:select empon,ename from emp;
3.包含算术表达式的select语句
A.对number类型数据可以使用算术操作符创建表达式(+、-、*/);
B.对date类型数据可以使用部分运算符创建表达式(+、-)。 如:select ename,sal*12 from emp;
4.包含连接表达式的select
使用方式:select ename || "work at" || job from emp;
5.空值的使用
A.包括空值的任何算术表达式都等于空;
B.包括空值的连接表达式等于与空字符串连接,也就是原来的字符串
6.字段别名
A.改变列的标题头显示;
B. 用于表示计算结果的含义,对于复杂的表达式尤为有用;
C.作为列的别名,被改语句的其他部分引用;
D.如果别名中使用特殊字符,或者是强制大小写敏感,或包含空格时,都需要加双引号
如:select ename “姓名”,sal “工资” from emp;
7.distinct--去掉重复值
注意:
A、distinct关键字一定是放在整个查询表的最前面;
B、作用范围--他后面的整个查询列表字段的组合。
8.带有限制条件的查询where
A、between、、、and、、、
select ename,sal from emp where sal between 1600 and 3000;
B、in
select * from emp where empno in(7788,7789,7790);
C、like
a--“%”可以表示零个或多个字符
b--"_"可表示一个字符
如:select * from emp where ename like ?_A%?;
D、null与not null
注:对于空值的等值比较,不能使用“=”
select * from emp where name is not null;
E、and、or、not
select * from emp where sal >1600 and job = 'CLERK';
SELECT * FROM EMP WHERE SAL > 1600 AND JOB = 'CLERK'; SELECT * FROM EMP WHERE JOB NOT IN ('CLERK','MANAGER'); 注意:优先级从高到低是:比较运算--not--and--or
9.对查询数据的排序
select * from emp order by ename;
注:A、asc:升序,默认;desc:降序
B、数字按照大小排序,日期按照时间的先后顺序排序,字符串按照字符的ASCII码进行排序
select * from emp order by ename ,sal desc;
注:ename为首先排序,sal为辅助排序
SQL中的函数
一、单行函数
1、字符类型函数(A-c)字符类,(D-J)字符处理类
A、LOWER 将字符串强制转换为小写
SELECT * FROM EMP WHERE LOWER(ename) = 'black';
B.UPPER 转换为大写
SELECT * FROM EMP WHERE UPPER(ename) = 'BLACK';
C.INITCAP 首字母大写
Select ename,Initcap(ename) from emp;
D.CONCAT 连接两个不同的列,CONCAt只能接受两个参数 Select CONCAT(EMPNO,ENAME) From EMP
Select CONCAT('A','B') From dual
E.SUBSTR 截取字符串,返回字串
select SUBSTR(ENAME,2) from EMP--从第2个位置截到末尾 select SUBSTR(ENAME,2,3) from EMP--从第2个位置截取3个 F.LENGTH 字符串长度
select ename,length(ename) from emp;
G.INSTR 找到字串位置
select ename,instr(ename,'A') from emp;
H.LPAD/RPAD 字符串填充补位(左/右)
select LPAD(SAL,10,'*') from emp;--将sal显示为10位,不足的位置在左边补上*
select RPAD(SAL,10,'*') from emp;
I.TRIM 两边虑空
select trim(' a b c ') from dual;
使用ltrim和rtrim过滤一边的空格
select ltrim(' a b c ') from dual;
J.REPLACE 替换字符串字串
select ename, replace(ename,'A','*') from emp;
2.数字类型函数
A.round对数字进行四舍五入
select round(23.345,2) "小数后两位",round(23.345,0) "整数",round(23.345,-1) "十位" from dual;
B.trunc对数字执行截取
C.mod求模
select mod(102,3) from dual;
3.日期类型函数
A.MONTHS_BETWEEN计算两个日期之间相差的月份
select ename,hiredate,MONTHS_BETWEEN(sysdate,hiredate) from emp;
B.ADD_BETWEEN在制定日期上增加或者减去若干个月得到新的日期
select ename,hiredate,add_between(hiredate,3) from emp;
C.NEXT_DAY计算从指定日期开始遇到的第一个指定星期几的日期 select next_day(sysdate,'星期一') from dual;
D.LAST_DAY计算指定日期所在月份的最后一天的日期
select last_day(sysdate) from dual;
E.ROUND取得按年或者月或者日等四舍五入得到的新的日期 Select ROUND(Sysdate,'yyyy') From DUAL;
Select ROUND(Sysdate,'MM') From DUAL;
F.TRUNC取得按年或者月或者日等截取得到的新的日期
Select trunc(Sysdate,'yyyy') from dual;
4.转换函数
A.TO_CHAR --to_char(date,'fmt')
用法:转换数字为字符;转换日期为字符
注:必须用单引号括起来,并且是大小写敏感;可包含任何有效的日期格式;有一个fm元素去掉前面的零
Select TO_CHAR(SAL,'$999,999.00') From EMP
Select TO_CHAR(Sysdate,'"今天是"YYYY-MM-DD DAY HH24:MI:SS AM') From DUAL
B.TO_DATE将字符串转换为日期格式
select to_char('01-5月-04') from dual;
select to_char('20xx-3-21','YYYY-MM-DD') from dual;
C.TO_NUMBER将字符串转换为数字格式
select to_number('$123,456.00','$999,99.00') from dual;
5.其他函数
A.NVL(exp1,exp2)将空值转换为一个替换值(支持多种类型,但是两个
参数的类型必须匹配)
如:
NVL(comm,0),NVL(hiredate,'01-JAN-97'),NVL(job,'no job yet')
B.NVL2(exp1,exp2,exp3)
如果exp1不为null,返回exp2,为null,返回exp3
C.NULLIF(exp1,exp2)
比较两个两个表达式,如果相等返回空值,如果不相等返回第一个表达式
select ename,NULLIF(length(ename),5) from emp;
D.coalesce(exp1,exp2,...expn)
用来匹配多个字段的值,如果表达式1的值为null,显示表达式2的值,如果表达式2也为空,显示表达式3的值,依次类推
E.case条件表达式
Select job,
Case JOB
When 'CLERK' Then '店员'
When 'SALESMAN' Then '销售'
Else '临时工'
End
From emp;
F.decode函数
Select job,
decode(JOB,
'CLERK','店员' ,
'SALESMAN' ,'销售',
'临时工')
From emp;
二、分组函数
1.概念:对一组数据返回一个值;
2.常用的分组函数
A.AVG(字段)求平均值
select avg(sal) from emp;
B.COUNT(*)/COUNT(字段)统计记录数
注:a--count(*)求实所有符合条件的记录数;
b--count(字段)求出所有符合条件并且字段值不为空的记录数 select count(*) from emp;
select count(ename) from emp;
C.MAX(字段)求最大值
select max(sal) from emp;
D.MIN(字段)求最小值
select min(sal) from emp;
E.SUM(字段)求和
select sum(sal) from emp;
3.分组函数和distinct关键词的搭配
Select COUNT(Distinct SAL) From EMP
4.组函数与空值
select count(comm) from emp
空值不参与运算,直接被过滤掉
5.分组数据
group by子句
SELECT COUNT(*) FROM EMP GROUP BY DEPTNO
6.使用group by规则
A.group by后面的字段不必显示在select列表中
B.反之则不行
也就是说:select后面的字段必须在group by子句中出现
例外的是:
在组函数(count,max,min等)中出现的字段除外
7.关于group by条件分组的问题
A.group by可以和where来搭配
where只能在group by的前面
Select JOB From EMP Where SAL>20xx Group By JOB;
group by后面不能有where
B.where子句中不能包括组函数
条件的表达只能使用having来表示
Select DEPTNO,Max(SAL),Min(SAL) From EMP Group By DEPTNO Having Max(SAL)>20xx;
多表连接和子查询
一、多表连接
1、等值连接
select emp.ename,dept.dname from emp,dept where emp.deptno=dept.deptno 注:多个条件之间可以用and连接
2、非等值连接
elect e.*,g.grade From emp e,salgrade g Where e.sal Between g.losal And g.hisal
3.外连接:把不满足条件的数据也显示出来
Select * From EMP E,DEPT D Where E.DEPTNO=D.DEPTNO(+); Select * From EMP E,DEPT D Where E.DEPTNO(+)=D.DEPTNO;
4、自连接:从同一个表中联合查询
select e.ename,m.ename from emp e,emp m where e.mgr = m.mgr;
--SQL99
5.cross join--交叉连接
其结果是笛卡尔集,是没加任何条件所产生出来的数据集合 select * from emp cross join dept;
6.NATURAL JOIN--自然连接
默认情况下,以两个表中有相同名称的列来进行连接查询
7.using
select * from emp join dept using(deptno);
8.on--指定连接具体条件
select * from emp e join dept d on d.deptno = e.deptno and e.depno = 20;
9.left/right outer join on
返回表格中左/右边的行和右/左边的数值,如果没有搭配的行,则返回零
select * from emp e left/right join dept d on (d.deptno = e.deptno);
10.full outer join on
返回两个表格中所有的行,用零填满每一个空格.
select * from emp e full outer join dept d on (d.deptno = e.deptno);
二、子查询
1.语句内部的字句
select * from emp where sal>(select sal from emp where ename='BLEAK');
2.子查询的基本使用规则
A.出现在where条件中的子查询要用括号括起
B.子查询总是先于主语句运行
C.习惯上把子查询放在条件的右边
D.单行子查询使用单行操作符
E.多行子查询使用多行操作符
3.单行
select 字段 from 表 where 字段【=、>、>=、<、<=、<>】【单项(询) 4,多行
A.IN:与表中的任何一个值相等
select * from emp where deptno in(select deptno from emp where job = 'CLERK') and job <>'CLERK';
B.ALL:与子查询返回的任意一个值比较
>all :大于子查询数据中的最大值
<all:小于子查询数据中的最小值
C.ANY:与子查询返回的每一个值比较
>any:大于子查询数据中的最小值
<any:小于子查询数据中的最大值