数据库4
数据库第四章——数据库安全性
输入密码
SQL Server 2005密码复杂性策略: 1. 不得包含全部或部分(>=3)用户帐号名; 2. 长度至少6个字符; 3. 密码包含4类字符:英文大写字母、小写 字母、10个基本数字,非字母字符(!@等)
19
An Introduction to Database System
5
An Introduction to Database System
数据的安全性是指保护数据以防止因不合法的使用而 数据的安全性是指保护数据以防止因不合法的使用而 造成数据的泄露、更改和破坏。 造成数据的泄露、更改和破坏。这就要采取一定的安 全措施。 全措施。 数据库的安全性和计算机系统的安全性,包括计算机 数据库的安全性和计算机系统的安全性, 硬件、操作系统、网络系统等的安全性,是紧密联系、 硬件、操作系统、网络系统等的安全性,是紧密联系、 相互支持的。 相互支持的。
输入用户名 kk
输入密码
SQL Server 2000密码复杂性策略: 2000密码复杂性策略 密码复杂性策略: 1. 不得包含全部或部分(>=3)用户帐号名; 不得包含全部或部分(>=3)用户帐号名; 2. 长度至少6个字符; 长度至少6个字符; 3. 密码包含4类字符:英文大写字母、小写 密码包含4类字符:英文大写字母、 字母、10个基本数字 非字母字符(! 个基本数字, (!@ 字母、10个基本数字,非字母字符(!@等)
14
An Introduction to Database System
删除Windows NT认证模式登录账号
步骤如下: 步骤如下: 以系统管理员身份进入企业管理器,并展开目录树; (1) 以系统管理员身份进入企业管理器,并展开目录树; 在目录树的“登录名” 节点下, (2) 在目录树的“登录名” 节点下,选中待删除的名称 wfy\wfytest” “wfy\wfytest”
数据库系统自带的4个默认数据库
数据库系统⾃带的4个默认数据库⽆论是mysql版本还是mariadb版本都包含了4个默认的数据库rmation_schema介绍information_schema数据库是MySQL⾃带的,它提供了访问数据库元数据的⽅式。
元数据是关于数据的数据,如数据库名或表名,列的数据类型,或访问权限等。
information_schema 确切说是信息数据库。
其中保存着关于MySQL服务器所维护的所有其他数据库的信息。
如数据库名,数据库的表,表栏的数据类型与访问权限等。
在INFORMATION_SCHEMA中,有数个只读表。
它们实际上是视图,⽽不是基本表,因此我们⽆法看到与之相关的任何⽂件。
SCHEMATA表:提供了当前mysql实例中所有数据库的信息。
是show databases的结果取之此表。
TABLES表:提供了关于数据库中的表的信息(包括视图)。
详细表述了某个表属于哪个schema,表类型,表引擎,创建时间等信息。
是show tables from schemaname的结果取之此表。
COLUMNS表:提供了表中的列信息。
详细表述了某张表的所有列以及每个列的信息。
是show columns from schemaname.tablename的结果取之此表。
STATISTICS表:提供了关于表索引的信息。
是show index from schemaname.tablename的结果取之此表。
USER_PRIVILEGES(⽤户权限)表:给出了关于全程权限的信息。
该信息源⾃er授权表。
是⾮标准表。
SCHEMA_PRIVILEGES(⽅案权限)表:给出了关于⽅案(数据库)权限的信息。
该信息来⾃mysql.db授权表。
是⾮标准表。
2、mysql介绍核⼼数据库,类似于sql server中的master表,主要负责存储数据库的⽤户、权限设置、关键字等mysql⾃⼰需要使⽤的控制和管理信息。
不可以删除。
3. performance_schema介绍:性能优化的引擎: PERFORMANCE_SCHEMA这个功能默认是关闭的需要设置参数: performance_schema 才可以启动该功能,这个参数是静态参数,只能写在my.ini 中不能动态修改这⾥的数据表分为⼏类:1) setup table :设置表,配置监控选项。
《数据库第4章》课件
03
SQL语言基础
SQL语言概述
总结词
简洁、高效、标准化的特点
详细描述
SQL(Structured Query Language)是一种用于管理关系数据库的标准编程语言。它以简洁的语法 和高效的性能而著称,被广泛应用于数据查询、更新、管理以及数据库设计和维护。
SQL语言的数据定义功能
总结词
定义、修改、删除数据结构
关系数据库系统的特点
要点一
总结词
关系数据库系统具有数据完整性、标准化、安全性和并发 控制等特点。
要点二
详细描述
数据完整性是指关系数据库中的数据保持准确性和一致性 ,防止错误和无效数据的输入。标准化是指通过规范化的 表格结构和关系,减少数据冗余和保证数据一致性。安全 性是指对数据库的访问进行控制,确保数据的保密性和完 整性。并发控制则是在多用户同时访问数据库时,确保数 据的一致性和避免冲突。
安全对于保护企业资产、个人隐私以及国家安全等方面都具有重要意义
。
数据库的安全性控制
用户身份认证
通过用户名和密码等身份认证方式,确保只 有经过授权的用户才能访问数据库。
访问控制
根据用户的角色和权限,限制用户对数据库 的访问范围和操作权限。
数据加密
对敏感数据进行加密存储,以防止未经授权 的用户获取和利用。
05
数据库安全与保护
数据库安全概述
01
数据库安全定义
数据库安全是指通过采取各种安全措施和技术手段,确保数据库中的数
据不被未经授权的访问、使用、泄露、破坏、修改或销毁。
02
数据库安全威胁
数据库面临的安全威胁包括数据泄露、数据篡改、数据损坏、非授权访
问等。
03
7-4 数据库(四)
等值与非等值连接查询(第7章第4讲)
当用户的一个查询请求涉及到数据库的多个表时,必须按照一定的条件 把这些表连接在一起,以便能够共同提供用户需要的信息。用来连接两个表 的条件称为连接条件或连接谓词,其一般格式为:
[<表名1>.] <列名1> <比较运算符> [<表名2>.] <列名2> 其中,比较运算符主要有=、>、<、>=、<=、!=。此外,连接谓词还可以 使用下面形式:
>ANY
大于子查询结果中的某个值
<ANY
小于子查询结果中的某个值
>=ANY 大于等于子查询结果中的某个值
<=ANY 小于等于子查询结果中的某个值
=ANY
等于子查询结果中的某个值
!=ANY或<>ANY 不等于子查询结果中的某个值
>ALL
大于子查询结果中的所有值〈ALL 小于子查询结果 Nhomakorabea的所有值
>=ALL 大于等于子查询结果中的所有值
简单查询(第7章第4讲)
查询是根据用户的需要以一种可读的方式从数据库中提取数据。 简单查询是指仅涉及数据库中的一个表的查询。
SELECT语句中与简单查询有关的关键字是SELECT、FROM、WHERE 和ORDER BY子句。
① ② ③ FWORHDOEEMRR子E子B句Y句子句SEWLHE通CRTE过子使句用在与O简FR单DOEM的R子BS句YEL联子EC句合T可起语以来句,使中数从的据数语进据法行如库下中排:以序一后种输 有 出组 ,S织OERL的DEEC可RT 读B[Y的*缺格省|式的A提排LL取序|数设D据置IS。是TI简升NC单序T 的。列SO名ERLDlE,CRT列语BY名句的2的语] 语法法如如下下:: SELFERCOT[M[*表*名||1A[L,L|表|D名IDS2IT]SITNICNTC列T 名列1名,1列,名列2名]2] FROM表名1; FROWM在 H表E查名RE询1条[中件,的1表SE名|LE2表]CT达关式键1字[A之N后D 的|一OR串条列件项2 ,|是表查达询式输2]出;要显示的 部 指 在 如 记 件 OWOD降 SRRHEE内分 示 果 录 , 序DESLFERCE的。 表 没 的 他 排Z如 使 例 其RE]CR]T条列中 有 们 列FBB: 用 如 中=; 子RHY‘件王的的在之。OS,W::列句EHM1卫所所他间OMS选LE关名中R|ECER’有有们用D项键,L的1CE表EET子;值列两AAR字D|序CN达HSBT句就。都者BD之数号C列HY式B或是中,是与作之后H字。的值O1缺条,M查A为间的R全1列CL[操省件D,找L查 特表A部项[Z选作选来NAD,S询 别名显中DSHT项符项区CMB输 指,示可|FC中相加,分|R,出 定是出以OF反以表数ODMZ。 的要来写RDHR,连示据E条S=话查,列ST‘AD接按,件FCB王IL,询不的R];SL。升在2O卫缺T的的管名[M这I序W|,’省N数选有称HS条C排E表T列或是据T项无,RB语列选E达名D来A用重也子W句HL,项式2H=源L于复可句E是选相用2|R2表显。以中]将E2于项反数3。示只可D表3。消,字H4包星写以S=4除D2T5括号该E有B2的重S[中2重(列C多A3记复*表S所3复)在个C4录的用示有4数条|。5行于按。
数据库技术基础第四版课后习题答案
一.填空题1. 与文件管理系统相比较,数据库系统的特点主要有数据____________ 、数据___________ .数据____________ O结构化;共享性髙.冗余度低、易扩充:独立性髙2. 数据库系统提供了两个方面的映象功能,苴中,________ 使得数据库系统具有逻辑独立性,_____________ 使得数据库系统具有物理独立性。
外模式/模式映象;模式/内模式映像3. 数据库设计分为以下六个设计阶段:需求分析阶段,________________________ ,数拯库逻借设计阶段,___________________ ,数据库实施阶段,数据库运行和维护阶段。
概念结构设计阶段;数据库物理设计阶段4. 在数据库系统中最重要的软件是_______________ ,最重要的用户是 ___________________ .・数据库管理系统:数据库管理员。
二.选择题1. 目前数据库中最流行的数据库是(B )oA网状数据库B关系数据库C层次数据库D非关系模型数据库2. 元数据又可以叫做(B )oA用户数据B系统数据3. 描述数据库中全体数据的逻辑结构和特征的是(B ).A内模式B模式C外模式D存储模式4. DB的含义是(A)oA数据库B数据库管理系统C数据处理D数据库系统三.简答1. 试述数据库.数据库管理系统、数据库系统的概念。
解:数据库:数据库用于存储数据,数据分为用戸数据和系统数据。
数据库管理系统:数据库管理系统是一类重要的复杂的系统软件,由若干程序组成,主要包括数据库引擎,各种管理程序,开发工具等。
数据库管理系统完成对数据库的一切操作,同时提供而向应用的接口,供应用程序调用。
数据库系统:数据库系统由三部分组成:数据库、数据库管理系统,数据库应用2. 数据库系统的体系结构有哪几种,简述各自的特点。
解:目前数据库系统主要分为集中式、客户机/服务器、并行式和分布式等几种。
集中式数据库系统:DBMS.数据库和应用程序都在一台计算机上。
数据库第4章 SQL语言基础及数据定义功能
第4章SQL语言基础及数据定义功能用户使用数据库时需要对数据库进行各种各样的操作,如查询数据,添加、删除和修改数据,定义、修改数据模式等。
DBMS必须为用户提供相应的命令或语言,这就构成了用户和数据库的接口。
接口的好坏会直接影响用户对数据库的接受程度。
数据库所提供的语言一般局限于对数据库的操作,它不是完备的程序设计语言,也不能独立地用来编写应用程序。
SQL(Structured Query Language,结构化查询语言)是用户操作关系数据库的通用语言。
虽然叫结构化查询语言,而且查询操作确实是数据库中的主要操作,但并不是说SQL只支持查询操作,它实际上包含数据定义、数据查询、数据操作和数据控制等与数据库有关的全部功能。
SQL已经成为关系数据库的标准语言,所以现在所有的关系数据库管理系统都支持SQL。
本章将主要介绍SQL语言支持的数据类型以及定义基本表和索引的功能。
4.1 SQL语言概述SQL语言是操作关系数据库的标准语言,本节介绍SQL语言的发展过程、特点以及主要功能。
4.1.1 SQL语言的发展最早的SQL原型是IBM的研究人员在20世纪70年代开发的,该原型被命名为SEQUEL (Structured English QUEry Language)。
现在许多人仍将在这个原型之后推出的SQL语言发音为“sequel”,但根据ANSI SQL委员会的规定,其正式发音应该是“ess cue ell”。
随着SQL语言的颁布,各数据库厂商纷纷在其产品中引入并支持SQL语言,尽管绝大多数产品对SQL语言的支持大部分是相似的,但它们之间还是存在一定的差异,这些差异不利于初学者的学习。
因此,我们在本章介绍SQL时主要介绍标准的SQL语言,我们将其称为基本SQL。
从20世纪80年代以来,SQL就一直是关系数据库管理系统(RDBMS)的标准语言。
最早的SQL标准是1986年10月由美国ANSI(American National Standards Institute)颁布的。
数据库复习资料4
10、在关系模式 R(U,F)中,U=ABCDE,F={AB→C,BC→D,AD→E} 。R 的码是______, R 属于_________NF。 三、应用题 1、 已知:关系模式 R(U,F) U=ABCDEG F={A→B,C→G, E→A, CE→D} 求: (1)R 的候选码。 (2)R 最高属于哪级范式。 2、已知:关系模式 R(U,F) U=CTSNG F={C→T,CS→G, S→N} 求: (1)R 的候选码。 (2)R 最高属于哪级范式。 3、已知:关系模式 R(U,F) U=ABCDE F={A→BC,CD→E, E→N,B→D} 求: (1)R 的候选码。 (2)R 最高属于哪级范式 4、已知:关系模式 R(U,F) U=ABCD F={A→C,C→A, B→AC,D→AC} 求: (1)F 的最小函数依赖集。 (2)R 的候选码。 (3)R 最高属于哪级范式 (4)将模式 R 无损失连接分解为 BCNF (5)将模式 R 无损失连接且保持函数依赖分解为 3NF 5、已知:关系模式 R(U,F)中 U=ABCD F={A→C,C→A, B→AC,BD→A} 写出 F 的一切最小函数依赖集。 6、已知:关系模式 R(U,F)中 U=ABCDE F={A→D,E→D, D→B,BC→D, CD→A} 求: (1)F 的最小函数依赖集。 (2)R 的候选码。 (3)将 R 分解为 3NF。 7、已知:关系模式 R(U,F)中 U=ABCDEG F={BG→C,BD→E, DG→C,ADG→BC, AG→B, B→D} 求: (1)F 的最小函数依赖集。 (2)R 的候选码。 (3)R 最高属于哪级范式 (4)将模式 R 按规范化要求分解。 8、已知:关系模式 R(U,F)中 R=ABCDEG F={BE→G,BD→G, CDE→AB,CD→A, CE→G, BC→A,B→D,C→D}
数据库试题4
A. DELETEB. DROPC. CLEARD. REMOVE数据库复习试题1. 下列四项中,不属于数据库特点的是( C )。
A. 数据共享B.数据完整性C.数据冗余很高D.数据独立性高 2. 下列四项中,不属于 SQL2000实用程序的是(D )。
A. 企业管理器B.查询分析器C.服务管理器D.媒体播放器3.SQL Server 安装程序创建4个系统数据库,下列哪个不是( C )系统数据库。
A.masterB.modelC.pubD.msdb4. ( A )是位于用户与操作系统之间的一层数据管理软件,它属于系统软件,它为用 户或应用程序提供访问数据库的方法。
数据库在建立、使用和维护时由其统一管理、统 一控制。
A . DBMS B. DBC . DBS D. DBA5.在SQL 中,建立表用的命令是 (B )。
A.CREATE SCHEMAB.CREATE TABLEC.CREATE VIEWD.CREATE INDEX 6.SQL 语言中,条件年龄 BETWEEN 15 AND 35表示年龄在15至35之间,且(A )A.包括15岁和35岁B.不包括15岁和35岁C.包括15岁但不包括35岁D.包括35岁但不包括15岁 7. 下列四项中,不正确的提法是(C )。
A. SQL 语言是关系数据库的国际标准语言B. SQL 语言具有数据定义、查询、操纵和控制功能C. SQL 语言可以自动实现关系数据库规范化D. SQL 语言称为结构查询语言8. 在MS SQL Server 中,用来显示数据库信息的系统存储过程是(D )。
A. sp_dbhelpB. sp_dbC. sp_helpD. sp_helpdb9.SQL语言中,删除表中数据的命令是(A )。
10.SQL的视图是从(C )中导出的。
A.基本表B.视图C.基本表或视图D.数据11. 在查询分析器中执行SQL语句的快捷键是(C )。
A. F1B. F3 C . F5 D. F612. SQL语言中,删除一个表的命令是(B )A. DELETEB. DROPC. CLEARD. REMOVE13. 哪个关键字用于测试跟随的子查询中的行是否存在( B )。
数据库第4章习题参考答案
第4章习题解答1.选择题(1)在SELECT语句中,需显示的内容使用“*”,则表示()。
BA.选择任何属性B.选择所有属性C.选择所有元组D.选择主键(2)查询时要去掉重复的元组,则在SELECT语句中使用()。
DA.All B.UNION C.LIKE D.DISTINCT (3)在SELECT语句中使用GROUP BY NO时,NO必须()。
CA.在WHERE子句中出现B.在FROM子句出现C.在SELECT子句中出现D.在HAVING子句中出现(4)使用SELECT语句进行分组检索时,为了去掉不满足条件的分组,应当()。
BA.使用WHERE子句B.在GROUP BY后面使用HAVING子句C.先使用WHERE子句,再使用HA VING子句D.先使用HA VING子句,再使用WHERE子句(5)在SQL语句中,与表达式“仓库号Not In("wh1","wh2")”功能相同的表达式是()。
DA.仓库号="wh1" And 仓库号="wh2" B.仓库号<>"wh1" Or 仓库号<>"wh2"C.仓库号<>"wh1" Or 仓库号="wh2" D.仓库号<>"wh1" And 仓库号<>"wh2"第6~10题使用如下3个表:部门:部门号Char (8),部门名Char (12),负责人Char (6),电话Char (16)职工:部门号Char (8),职工号C har(10),姓名Char (8),性别Char (2),出生日期Datetime工资:职工号Char (10),基本工资Numeric (8,2),津贴Numeric (8,2),奖金Numeric (8,2),扣除Numeric (8,2)(6)查询职工实发工资的正确命令是()。
数据库 分类表 4级
数据库分类表 4级数据库分类表是一种用于分类和组织数据库中数据的重要工具。
它可以帮助用户更好地理解和使用数据库中的数据,同时也可以提高数据检索和查询的效率。
数据库分类表通常根据数据类型、数据来源、数据属性等因素进行分类。
通过对数据进行分类,可以更好地管理数据,方便用户在需要时快速查找和获取所需数据。
在很多情况下,数据库分类表采用层次结构的形式,将数据按照一定的顺序进行排列,使得用户可以根据分类表的结构逐级查找所需数据。
此外,数据库分类表还可以采用标签、关键词等方式进行分类和组织,方便用户快速定位所需数据。
标题:数据库分类表的应用场景正文:数据库分类表在很多应用场景中都发挥着重要的作用。
例如,在企业管理系统中,数据库分类表可以帮助企业更好地管理客户信息、产品信息、销售数据等重要数据。
在医疗领域,数据库分类表可以帮助医生更好地管理患者的病例信息、医疗记录等。
在教育领域,数据库分类表可以帮助教师更好地管理学生信息、课程安排等。
此外,数据库分类表还可以用于数据仓库、数据挖掘、数据分析等领域,帮助用户更好地管理和分析大数据。
总之,数据库分类表是一种非常实用的工具,可以帮助用户更好地管理和利用数据。
标题:数据库分类表的未来发展正文:随着数据量的不断增加和技术的不断发展,数据库分类表在未来将会继续发挥重要的作用。
未来,数据库分类表可能会更加智能化、自动化,通过机器学习和人工智能技术,更好地适应大数据时代的需要。
此外,数据库分类表还可能会更加灵活和可定制化,允许用户根据自身需求对数据进行更加精细的分类和组织。
另外,随着云计算和大数据技术的发展,数据库分类表也可能会更加注重安全性和隐私保护,确保用户的数据安全和隐私不被泄露。
总之,未来数据库分类表将会不断发展,更好地满足用户的需求,成为数据管理和利用的重要工具。
数据库第四范式
数据库第四范式第四范式是数据库设计中的一种规范,它强调了数据表中存在的多个关系之间的独立性。
该规范建议将一张数据表中的多个属性拆分成多个独立的表,以避免数据冗余和数据不一致的发生。
本文将介绍数据库第四范式的概念、目的、实现方法和其对数据库性能的影响。
1.概念数据库第四范式又称偏函数依赖范式,是对第三范式的进一步完善和提高。
第四范式规定的是任何一个非主属性(即不属于关系主键)都不能由部分主属性函数决定。
否则就需要将该属性单独拆分出来,构成一个新的关系。
2.目的使用第四范式可以避免数据冗余和数据不一致的发生。
例如,当一张数据表中包含了多个实体的属性时,可能会导致某些数据在多个记录中出现,这样会占用过多的存储空间,并且更新数据时可能会导致数据不一致。
而将这些属性拆分到独立的数据表中,可以减少数据冗余,并使得每张表只包含一个实体的属性,从而提高数据的一致性和可靠性。
3.实现方法实现第四范式需要进行逐一分析和整理数据表中的属性,将其拆分成多个独立的数据表。
在这个过程中,需要特别注意以下两点:(1)确定主键:每个新的数据表都需要定义一个主键,以保证数据的唯一性。
主键可以由单个属性或多个属性构成。
(2)确保数据的完整性:当数据被拆分成多个数据表后,需要通过引入外键来保持数据表之间的联系。
在这个过程中,需要确保数据的完整性,即每条记录的外键值都对应被引用表的主键值。
4.对数据库性能的影响数据库第四范式可以提高数据表的一致性和可靠性,但它也会带来性能上的损失。
因为在使用第四范式后,需要通过联结操作来获取相关的数据,这可能会导致查询的速度变慢。
同时,数据表之间的关系越复杂,联结操作的次数也会越多,对性能的影响也会越大。
因此,在设计数据库时需要在保持数据一致性的前提下,尽量减少数据表之间的复杂关系,以提高数据库的查询速度和性能。
综上所述,数据库第四范式是一种遵循最小化数据冗余的规范,它可以提高数据表的一致性和可靠性,但也会带来性能上的损失。
数据库模拟题(4)
数据库第四次作业分组查询--习题要求by:邵永成1、查询病人表,要求显示最大年龄值、最小年龄值、平均年龄值select max(年龄) as 最大年龄,min(年龄) as 最小年龄,avg(年龄) as 平均年龄from 病人表2、查询病人表,要求统计在“太平洋保险公司”投保的病人数select count(保险公司名称) as 太平洋保险公司投保人数from 病人表where 保险公司名称='太平洋保险公司'3、查询一下病人表,要求统计有电话号码的病人数select count(电话号码) as 有电话号码的病人数from 病人表4、查询病人表,要求统计在各个保险公司投保的各自病人数。
(两种方法:group by与compute by)select 保险公司名称,count(病人编号) as 投保人数from 病人表group by 保险公司名称select 保险公司名称,病人编号 as 投保病人编号from 病人表order by 保险公司名称compute count(病人编号) by 保险公司名称5、查询病人表,要求统计投保人数2人以上(含2人)的保险公司名称与投保人数select 保险公司名称,count(病人编号) as 投保人数from 病人表group by 保险公司名称having count(*)>=26、查询病历表,要求统计一下病人编号为"Pat0002"的病人结算总金额。
(注:结算金额相同的只算一个记入总金额中)select sum(distinct 结算金额) as Pat0002病人相同值只计算一次结算总金额from 病历表where 病人编号='Pat0002'7、查询病历表,要求统计一下病人编号为"Pat0002"的病人结算总金额。
(注:结算金额相同的不记入总金额中)select 结算金额 as Pat0002病人相同值不计算结算总金额from 病历表where 病人编号='Pat0002'group by 结算金额having count(*)<2compute sum(结算金额)。
数据库第四版(王珊)答案
第2章关系数据库1 .试述关系模型的三个组成部分。
答:关系模型由关系数据结构、关系操作集合和关系完整性约束三部分组成。
2 .试述关系数据语言的特点和分类。
答:关系数据语言可以分为三类:关系代数语言。
关系演算语言:元组关系演算语言和域关系演算语言。
SQL:具有关系代数和关系演算双重特点的语言。
这些关系数据语言的共同特点是,语言具有完备的表达能力,是非过程化的集合操作语言,功能强,能够嵌入高级语言中使用。
4 .试述关系模型的完整性规则。
在参照完整性中,为什么外部码属性的值也可以为空?什么情况下才可以为空?答:实体完整性规则是指若属性A是基本关系R的主属性,则属性A不能取空值。
若属性(或属性组)F是基本关系R的外码,它与基本关系S的主码Ks相对应(基本关系R和S不一定是不同的关系),则对于R中每个元组在F上的值必须为:或者取空值(F的每个属性值均为空值);或者等于S中某个元组的主码值。
即属性F本身不是主属性,则可以取空值,否则不能取空值。
5.设有一个SPJ数据库,包括S,P,J,SPJ四个关系模式:1)求供应工程J1零件的供应商号码SNO:πSno(σSno=‘J1’(SPJ))2)求供应工程J1零件P1的供应商号码SNO:πSno(σSno=‘J1’∧Pno=‘P1‘(SPJ))3)求供应工程J1零件为红色的供应商号码SNO:πSno(σPno=‘P1‘(σCOLOR=’红‘(P)∞SPJ))4)求没有使用天津供应商生产的红色零件的工程号JNO:πJno(SPJ)- πJNO(σcity=‘天津’∧Color=‘红‘(S∞SPJ∞P)5)求至少用了供应商S1所供应的全部零件的工程号JNO:πJno,Pno(SPJ)÷πPno(σSno=‘S1‘(SPJ))6.试述等值连接与自然连接的区别和联系。
答:连接运算符是“=”的连接运算称为等值连接。
它是从关系R与S的广义笛卡尔积中选取A,B属性值相等的那些元组自然连接是一种特殊的等值连接,它要求两个关系中进行比较的分量必须是相同的属性组,并且在结果中把重复的属性列去掉。
数据库第4,5章
属性列
Table
视图
Table
基本表
Table
基本表
DataBase
例题
例1 把查询Student表权限授给用户U1。 SQL server 2000: GRANT SELECT GRANT SELECT ON TABLE Student ON Student TO U1; TO U1; 例 2 把对 Student 表和 Course 表的全部权限 授予用户U2和U3
第四章 数据控制
4 数据库安全性 4.1 计算机安全性概述 4.2 数据库安全性控制 4.3 视图机制
4.4 数据加密
4.5 统计数据库安全性
第四章 数据库安全性
数据库的一大特点是数据可以共享
但数据共享必然带来数据库的安全性问题
只能在DBMS的严格控制下共享,即只允许合
法用户访问允许他存取的数据
功能:从指定用户那里收回对指定对象的 指定权限
例题
例7 把用户U4在Student表上修改学生学号的权 限收回 REVOKE UPDATE(Sno) ON TABLE Student FROM U4; 例8 收回所有用户对表SC的查询权限 REVOKE SELECT ON TABLE SC FROM PUBLIC;
பைடு நூலகம்
例题(续)
例9 把用户U5对SC表的INSERT权限收回 REVOKE INSERT ON TABLE SC FROM U5; PS:系统不但收回 用户U5 对 SC表 的 INSERT 权限收回,而且收回由 U5 授权给 U6 以及由 U6 授权给 U7的Insert权限。
4.2.5 强制存取控制方法
必须预先对每个用户定义存取权限。
数据库第4章习题参考答案
第4章习题解答1.选择题(1)在SELECT语句中,需显示的内容使用“*”,则表示()。
BA.选择任何属性B.选择所有属性C.选择所有元组D.选择主键(2)查询时要去掉重复的元组,则在SELECT语句中使用()。
DA.All B.UNION C.LIKE D.DISTINCT (3)在SELECT语句中使用GROUP BY NO时,NO必须()。
CA.在WHERE子句中出现B.在FROM子句出现C.在SELECT子句中出现D.在HAVING子句中出现(4)使用SELECT语句进行分组检索时,为了去掉不满足条件的分组,应当()。
BA.使用WHERE子句B.在GROUP BY后面使用HAVING子句C.先使用WHERE子句,再使用HA VING子句D.先使用HA VING子句,再使用WHERE子句(5)在SQL语句中,与表达式“仓库号Not In("wh1","wh2")”功能相同的表达式是()。
DA.仓库号="wh1" And 仓库号="wh2" B.仓库号<>"wh1" Or 仓库号<>"wh2"C.仓库号<>"wh1" Or 仓库号="wh2" D.仓库号<>"wh1" And 仓库号<>"wh2"第6~10题使用如下3个表:部门:部门号Char (8),部门名Char (12),负责人Char (6),电话Char (16)职工:部门号Char (8),职工号C har(10),姓名Char (8),性别Char (2),出生日期Datetime工资:职工号Char (10),基本工资Numeric (8,2),津贴Numeric (8,2),奖金Numeric (8,2),扣除Numeric (8,2)(6)查询职工实发工资的正确命令是()。
数据库实验4答案
实验4答案1.列出姓“王”且全名为3个汉字的学生的基本信息;select*from student where sname like'王__'2.显示在1986年以后出生的学生的学号和姓名;select sno,sname from student where year(getdate())-sage>19863.查询没有分配院系的学生的姓名和学号select sno,sname from student where sdept IS NULL4.按照课程号、成绩降序显示课程成绩在70-80之间的学生的学号、课程号及成绩;select sno,cno,grade from sc where grade>=70 and grade<80order by cno desc,grade desc5.按照院系降序显示所有学生的“院系,学号、姓名、性别、年龄”等信息,其中院系按照以下规定显示:院系为CS显示为计算机系,院系为IS显示为信息系,院系为MA显示为数学系,院系为EN显示为外语系,院系为CM显示为中医系,院系为WM显示为西医系,其他显示为院系不明;select院系=casewhen sdept='CS'then'计算机系'when sdept='IS'then'信息系'when sdept='MA'then'数学系'when sdept='EN'then'外语系'when sdept='CM'then'中医系'when sdept='WM'then'西医系'else'院系不明'end,sno 学号,sname 姓名,ssex 性别,sage 年龄from student6.列出同时选修“1”号课程和“2”号课程的所有学生的学号;select sno from scwhere cno='01'and sno in(select sno from scwhere cno='02')7.显示所有院系(要求不能重复,不包括空值),并在结果集中增加一列字段“院系规模”用来记录院系学生个数。
数据库 四 综合题
五综合题(15分)1.某企业集团有若干工厂,每个工厂生产多种产品,且每一种产品可以在多个工厂生产,每个工厂按照固定的计划数量生产产品;每个工厂聘用多名职工,且每名职工只能在一个工厂工作,工厂聘用职工有聘期和工资。
工厂的属性有工厂编号、厂名、地址,产品的属性有产品编号、产品名、规格,职工的属性有职工号、姓名。
(1)根据上述语义画出E-R图;(5分)(2)将该E-R模型转换为关系模型;(5分)(要求:1:1和1:n的联系进行合并)(3)指出转换结果中每个关系模式的主码和外码。
(5分)(1)本题的E-R图如下图所示。
(2)转化后的关系模式如下:工厂(工厂编号,厂名,地址)产品(产品编号,产品名,规格)职工(职工号,姓名,工厂编号,聘期,工资)生产(工厂编号,产品编号,计划数量)(3)每个关系模式的主码、外码如下:工厂:主码是工厂编号,无外码;产品:主码是产品编号,无外码;职工:主码职工号,外码是工厂编号;生产:主码是(工厂编号,产品编号),外码是工厂编号、产品编号。
2.某医院病房管理系统中,包括四个实体型,分别为:科室:科名,科地址,科电话病房:病房号,病房地址医生:工作证号,姓名,职称,年龄病人:病历号,姓名,性别且存在如下语义约束:①一个科室有多个病房、多个医生,一个病房只能属于一个科室,一个医生只属于一个科室;②一个医生可负责多个病人的诊治,一个病人的主管医生只有一个;③一个病房可入住多个病人,一个病人只能入住在一个病房。
注意:不同科室可能有相同的病房号。
完成如下设计:(1)画出该医院病房管理系统的E-R图;(5分)(2)将该E-R图转换为关系模型;(5分)(要求:1:1和1:n的联系进行合并)(3)指出转换结果中每个关系模式的主码和外码。
(5分)参考答案:(1)本题的E-R图如下图所示。
某医院病房管理系统的基本E-R图(2)转化后的关系模式如下:科室(科名,科地址,科电话)病房(病房号,病房地址,科名)医生(工作证号,姓名,职称,年龄,科名)病人(病历号,姓名,性别,主管医生,病房号,科名)(3)每个关系模式的主码、外码如下:科室:主码是科名;病房:主码是科名十病房号,外码是科名;医生:主码是工作证号,外码是科名;病人:主码是病历号,外码是科名十病房号。
数据库 第4章 查询设计_习题
第4章查询设计_习题一、选择题1.以下关于查询的叙述,正确的是()。
CA.只能根据数据表创建查询 B.只能根据已建查询创建查询C.可以根据数据表和已建查询创建查询 D.不能根据已建查询创建查询2.若用“学生”表中的“出生日期”字段计算每个学生的年龄(取整〉,那么正确的计算公式为()。
AA.Year(Date())-Year([出生日期]) B.(Date()-[出生日期])/365C.Date()-[出生日期]/365 D.Year([出生日期])/365 3.如果在“学生”表中查找姓“李”学生的记录,则查询条件是()。
C A.Not "李*" B.Like "李" C.Like "李*" D."李××"4.查询设计视图窗口中通过设置()行,可以让某个字段只用于设定条件,而不出现在查询结果中。
BA.排序B.显示C.字段 D.条件5.若统计“学生”表中各专业学生人数,应在查询设计视图中,将“学号”字段“总计”单元格设置为()。
BA.Sum B.Count C.Where D.Total6.在Access查询中,()能够减少源数据表的数据。
DA.选择查询 B.生成表查询 C.追加查询 D.删除查询7.在查询设计视图中,如果要使表中所有记录的“价格”字段的值增加10%,应使用()表达式。
CA.[价格]+10% B.[价格]*10/100C.[价格]*(1+10/100) D.[价格]*(1+10%)8.在查询设计视图中()。
AA.可以添加表,也可以添加查询 B.只能添加表C.只能添加查询 D.表和查询都不能添加9.在Access中,删除查询操作中被删除的记录属于()。
BA.逻辑删除 B.物理删除 C.可恢复删除D.临时删除10.如果用户希望根据某个可以临时变化的值来查找记录,则最好使用的查询是()。
CA.选择查询B.交叉表查询C.参数查询 D.操作查询二、填空题1.若要查找最近20天之内参加工作的职工记录,查询条件为。
数据库实验4表的查询操作(4学时)
1 实验四表的查询操作(4学时)【实验目的】了解SQL 语言的使用,进一步理解关系运算,巩固数据库的基础知识。
【实验要求】掌握利用Select 语句进行各种查询操作:单表查询、多表连接及查询、嵌套查询、集合查询等。
【实验内容】在实验三创建并插入数据的表(Student ,Course ,SC ,Teacher ,TC )的基础上,完成以下操作。
1.对实验步骤中所给示例进行验证。
2.参考所给示例,完成下列各种查询操作。
(1)将教师‘罗莉’的名字改为‘罗莉莉’。
(2)将两个同学(数据自己临时设置,用后即删除)的两门课程的成绩以运行sql 程序文件的形式插入score 表中。
该题用以验证、理解和掌握关系模型的完整性规则;(3)求每门课的平均成绩,并把结果存入average 表(自行设计并创建);(4)将学生“马丽”的年龄改为2424;;(5)将所有学生的zipcode 属性列值填补上;(6)将average 表中的所有课程的平均成绩置零;(7)删除average 表中的课程号为‘表中的课程号为‘c007c007c007’的平均成绩记录;’的平均成绩记录;(8)删除所有average 表中平均成绩记录;(9)建立一个临时学生信息表()建立一个临时学生信息表(tstudent tstudent tstudent)),删除该表中的学号含‘101’的所有学生记录。
(1010)查询全体学生的学号与姓名;)查询全体学生的学号与姓名;(1111)查询全体学生的学号、姓名、所属系;)查询全体学生的学号、姓名、所属系;(1212)查询全体学生的详细记录;)查询全体学生的详细记录;(1313)查询全体学生的姓名及其年龄;)查询全体学生的姓名及其年龄;(1414)查询全体学生的姓名、出生年份;)查询全体学生的姓名、出生年份;(1515)查询所有修过课的学生的学号;)查询所有修过课的学生的学号;(1616)查询“计算机系”班全体学生名单;)查询“计算机系”班全体学生名单;(1717)查询查询所有年龄在)查询查询所有年龄在23岁以下的学生姓名及其年龄;(1818)查询考试成绩有不及格的学生的学号;)查询考试成绩有不及格的学生的学号;(1919)查询年龄在)查询年龄在20至22岁之间的学生姓名、系和年龄;(2020)查询年龄不在)查询年龄不在20至22岁之间的学生姓名、系和年龄;(2121)查询“)查询“计算机系”和“电商系”的学生的姓名;(2222)查询既不是“计)查询既不是“计1111”也不是“计”也不是“计6161”班的学生的姓名和班级信息;”班的学生的姓名和班级信息;(2323)查询学号为“)查询学号为“04262002”的学生的详细情况;(2424)查询学号以“)查询学号以“04262”打头的学生信息;(2525)查询所有姓“张”学生的学号、姓名、性别、年龄;)查询所有姓“张”学生的学号、姓名、性别、年龄;(2626)查询名字中第二个字有“海”字的学生的学号、姓名、性别、年龄;)查询名字中第二个字有“海”字的学生的学号、姓名、性别、年龄;(2727)查询所有不姓“刘”学生的姓名;)查询所有不姓“刘”学生的姓名;(2828)查询课程号以“)查询课程号以“C ”开头的最后两个字母为“”开头的最后两个字母为“050505”的课程号和课程名;”的课程号和课程名;(2929)某些学生选修某门课程后没有参加考试,所以有选修课记录,但没有考试成绩,)某些学生选修某门课程后没有参加考试,所以有选修课记录,但没有考试成绩,试查找缺少考试成绩的学生和相应的课程号;(3030)查找全部有成绩记录的学生学号、课程号;)查找全部有成绩记录的学生学号、课程号;(3131)查找“计算机系”年龄在)查找“计算机系”年龄在22岁以下的学生学号、姓名;(3232)查找选修了“)查找选修了“)查找选修了“C001C001C001”号课程的学生学号及其成绩,查询结果按分数降序排序;”号课程的学生学号及其成绩,查询结果按分数降序排序;(3333))查询全体学生情况,查询全体学生情况,查询结果按所在系升序排列,查询结果按所在系升序排列,查询结果按所在系升序排列,对同一系中的学生按年龄降序对同一系中的学生按年龄降序排列;(3434)查询学生总人数;)查询学生总人数;)查询学生总人数;(3535)查询选修了课程的学生人数;)查询选修了课程的学生人数;)查询选修了课程的学生人数;(3636)在所有课程中查询最高分的学生学号和成绩;)在所有课程中查询最高分的学生学号和成绩;)在所有课程中查询最高分的学生学号和成绩;(3737)查询学习“)查询学习“)查询学习“C001C001C001”课程的学生最高分数;”课程的学生最高分数;”课程的学生最高分数;(3838)计算各个课程号与相应的选课人数;)计算各个课程号与相应的选课人数;)计算各个课程号与相应的选课人数;(3939)查询“计算机系”选修了两门课程以上的学生学号、姓名;)查询“计算机系”选修了两门课程以上的学生学号、姓名;)查询“计算机系”选修了两门课程以上的学生学号、姓名;(4040)自然连接)自然连接student 和score 表;表; (4141)使用自身连接查询每一门课程的间接先行课(即先行课的先行课))使用自身连接查询每一门课程的间接先行课(即先行课的先行课))使用自身连接查询每一门课程的间接先行课(即先行课的先行课)(4242)使用复合条件连接查询选修“)使用复合条件连接查询选修“)使用复合条件连接查询选修“c001c001c001”号课程且成绩在”号课程且成绩在90分以上的所有同学;分以上的所有同学;(4343)使用复合条件连接查询每个学生选修的课程名及其成绩;)使用复合条件连接查询每个学生选修的课程名及其成绩;)使用复合条件连接查询每个学生选修的课程名及其成绩;(4444)查询选修了全部课程的学生;)查询选修了全部课程的学生;)查询选修了全部课程的学生;(4545)查询所有选修了)查询所有选修了C001号课程的学生学号、姓名;号课程的学生学号、姓名;(4646)查询选修了课程)查询选修了课程C001或c007的学生学号、姓名;的学生学号、姓名;(4747)查询“计算机系”的学生及年龄不大于)查询“计算机系”的学生及年龄不大于23岁的学生;岁的学生;(4848)查询既选修了课程)查询既选修了课程C001又选修了课程c007的所有学生学号、姓名;的所有学生学号、姓名;(4949)查询选修了课程名为“数据库原理”的学生的学号、姓名、性别、年龄;)查询选修了课程名为“数据库原理”的学生的学号、姓名、性别、年龄;)查询选修了课程名为“数据库原理”的学生的学号、姓名、性别、年龄;(5050)查询其他班中比“计算机系”所有学生年龄都小的学生名单;)查询其他班中比“计算机系”所有学生年龄都小的学生名单;)查询其他班中比“计算机系”所有学生年龄都小的学生名单;(5151)查询与“夏天”在同一个系学习的学生学号、姓名、性别、年龄;)查询与“夏天”在同一个系学习的学生学号、姓名、性别、年龄;)查询与“夏天”在同一个系学习的学生学号、姓名、性别、年龄;(5252)建立“计算机系”学生的视图)建立“计算机系”学生的视图1;(5353)建立“计算机系”学生的视图)建立“计算机系”学生的视图2,并要求进行修改与插入时,仍须保证该视图只有“计算机系”班学生;有“计算机系”班学生;(54)建立“计算机系”选修了“C001”课程的学生的视图,定义视图名为“v_cs_C001_student1v_cs_C001_student1””; (5555)建立“计算机系”班选修了“)建立“计算机系”班选修了“)建立“计算机系”班选修了“C001C001C001”课程且成绩在”课程且成绩在90分以上的学生的视图,定义视图名为“义视图名为“cs_c001_student2cs_c001_student2cs_c001_student2””; (5656)定义一个反映学生年龄的视图,定义视图名为“)定义一个反映学生年龄的视图,定义视图名为“)定义一个反映学生年龄的视图,定义视图名为“v_birth_student v_birth_student v_birth_student””; (5757)将学生表中所有女生记录定义为一个视图,视图名为“)将学生表中所有女生记录定义为一个视图,视图名为“)将学生表中所有女生记录定义为一个视图,视图名为“v_female_student v_female_student v_female_student””; (5858)将学生的学号及其平均成绩定义为一个视图,视图名为“)将学生的学号及其平均成绩定义为一个视图,视图名为“)将学生的学号及其平均成绩定义为一个视图,视图名为“v_average_student v_average_student v_average_student””; (5959)在“计算机系”学生视图中找出年龄小于)在“计算机系”学生视图中找出年龄小于22岁的学生;岁的学生;(6060)利用视图查询“计算机系”选修了“)利用视图查询“计算机系”选修了“)利用视图查询“计算机系”选修了“C001C001C001”课程的学生;”课程的学生;”课程的学生;(6161)通过()通过()通过(525252)中的“计算机系”视图修改某个学生的名字;)中的“计算机系”视图修改某个学生的名字;)中的“计算机系”视图修改某个学生的名字;(6262)通过()通过()通过(535353)中的“计算机系”视图,插入一个新学生记录。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
2、系统模块划分: 、系统模块划分: 整个系统划分为“学生管理” 整个系统划分为“学生管理”和“课程管理”两级主菜 课程管理” 单,将学生的选课放在学生管理模块中,将每门课程的所 将学生的选课放在学生管理模块中, 有的选课名单放在课程管理中。 有的选课名单放在课程管理中。 “学生管理”菜单包含“输入”、“修改”、“查询” 学生管理”菜单包含“输入” 修改” 查询” 三个子菜单,其中学生选课放在“查询”菜单中。 三个子菜单,其中学生选课放在“查询”菜单中。 “课程管理”菜单包括“输入”、“修改”、“查询” 课程管理”菜单包括“输入” 修改” 查询” 三个子菜单,其中某门课的选课学生名单放在“查询” 三个子菜单,其中某门课的选课学生名单放在“查询”菜 单中实现。 单中实现。
在上述代码中构造嵌入式sql语句是关键。 在上述代码中构造嵌入式sql语句是关键。 sql语句是关键 若要在tblStudent中插入一条新学生记录: tblStudent中插入一条新学生记录 若要在tblStudent中插入一条新学生记录: 070811’, Hans male 89 09-09’ Hans’, male’, 89’070811 ,’Hans ,’male ,’89-09-09 通常的sql语句为: 通常的sql语句为: sql语句为 insert into tblStudent(studentNo,studentName,sex,birthday) 070811’, Hans’, male’, 89values(’070811 Hans male 89 09-09’) values( 070811 ,’Hans ,’male ,’89-09-09 ) 如果将上述语句作为嵌入式sql语句, sql语句 如果将上述语句作为嵌入式sql语句,则整个语句应作为一个完 整的字符串放在一对双引号中, 整的字符串放在一对双引号中,即: “insert into tblStudent(studentNo,studentName,sex,birthday) values(’070811 Hans male 89 09-09’) 070811’, Hans’, male’, 89values( 070811 ,’Hans ,’male ,’89-09-09 )” 但同时在该程序中,红色字体部分都来源于文本框控件的Text Text属 但同时在该程序中,红色字体部分都来源于文本框控件的Text属 性,是可以变换的内容,所以要将上面字符串拆成几段表达: 是可以变换的内容,所以要将上面字符串拆成几段表达: string sql = "insert into tblStudent(studentName, studentNo,sex, birthday) values('" ; sql += studentName.Text + "','" +studentNo.Text + "','" + sex.Text + "','" + birthday.Text + "') ";
控件属性设置: 控件属性设置: 控件名 属性名 属性值 True True Detail s
单击该按钮
FullRowSe listView1 l GridLines View columns
创建ADO数据连接 数据连接 创建
注意该数据 连接控件的 显示位置
建立该程序与要访问的数据 库之间的连接
SQL服务器名
连接数据控件的数据库 名
ADO连接创建完毕 ADO连接创建完毕
(3)编写代码 数据连接控件需要在NewStudent窗体的代码窗口的引用部分 数据连接控件需要在NewStudent窗体的代码窗口的引用部分 NewStudent 加入如下代码: 加入如下代码: using System.Data .OleDb ;
编写“增加”按钮单击响应: 编写“增加”按钮单击响应: private void button1_Click(object sender, System.EventArgs e) { string sql = "insert into tblStudent(studentName, studentNo,sex, birthday) values('" ; sql += studentName.Text + "','" +studentNo.Text + "','" + sex.Text + "','" ; sql += birthday.Text + "') "; //构造嵌入式sql语句 try { conn.Open(); //打开数据库连接 OleDbCommand cmd = new OleDbCommand(sql,conn); //生成SQL命令 cmd.ExecuteNonQuery(); //执行SQL命令 conn.Close(); //关闭数据库连接 } catch(OleDbException ex ) //捕捉try语句块的错误并显示错误信息 { string s = ex.ToString(); MessageBox.Show (s); }
在其中找 到所需控 件并拖到 窗体中
所建工程的文件列表
查看 窗体 查看 代码
窗体名
应用程序窗 体,其中可 按需要存放 控件
对窗 体中 选中 的对 象设 置属 性
访问数据库实例-----学生选课系统 二、C#访问数据库实例 访问数据库实例 学生选课系统
1、系统的需求 、 可以输入一个新学生的信息;更新、查询学生的信息。 可以输入一个新学生的信息;更新、查询学生的信息。 可以输入一门新课程的信息;更新、查询课程的信息。 可以输入一门新课程的信息;更新、查询课程的信息。 可以为学生选课。 可以为学生选课。 可以查询一个同学的所有选课信息。 可以查询一个同学的所有选课信息。 可以查询一门课程的所有的选课学生名单,总人数。 可以查询一门课程的所有的选课学生名单,总人数。
输入学生数据的运行界面
(4)查询窗体设计 )
其他属性设置参照 前面输入窗体
属性设置
在SearchStudent窗体的代码窗口的引用部分加入如下代码: SearchStudent窗体的代码窗口的引用部分加入如下代码: 窗体的代码窗口的引用部分加入如下代码 using System.Data .OleDb ;
ListViewItem li = new ListViewItem ( ) ; // ListViewItem表示ListView中的一行
li.SubItems.Clear ( ) ; li.SubItems[0].Text = studentNo.Text;
li.SubItems.Add ( studentName.Text ) ; li.SubItems.Add ( sex.Text ) ; li.SubItems.Add ( birthday.Text ) ; listView1.Items.Add ( li ) ; }
(1)创建主窗口界面 )
拖入 窗体
(2)添加“输入”子窗体 )添加“输入”
“输入”子窗体名 输入” 输入
创建“输入” 创建“输入”子窗体界面
控件属性设置: 控件属性设置: 控件名 属性名 属性值 label1 Text label2 Text label3 Text label4 Text Name textBo Text x1 Name textBo Text x2 Name textBo Text x3 Name 学号 姓名 性别 生日 studentNo (空) studentNa me (空) sex (空) birthday
编写主窗体调用NewStudent窗体的 编写主窗体调用NewStudent窗体的 NewStudent 代码(双击‘输入子菜单’ 代码(双击‘输入子菜单’进入该 段代码的编辑) 段代码的编辑)
private void menuItem2_Click(object sender, System.EventArgs e) { NewStudent ns=new NewStudent ( ); //创建NewStudent类对象ns 创建NewStudent类对象ns NewStudent类对象 ns. ShowDialog ( ); //显示ns对象对应的窗体 显示ns //显示ns对象对应的窗体 }
“查询学生”按钮双击响应函数: 查询学生”按钮双击响应函数: 查询学生
private void button1_Click(object sender, System.EventArgs e) { string sql = "select * from tblStudent where 1=1 "; if (studentNo.Text != "") sql += " and studentNo like '" +studentNo.Text + "%'"; if (studentName.Text != "") sql += " and studentName like '" + studentName.Text + "%'"; listView1.Items.Clear(); try { conn.Open(); OleDbCommand cmd = new OleDbCommand(sql,conn); OleDbDataReader dbReader = cmd.ExecuteReader();//执行查询命令返回一个结果记录集 执行查询命令返回一个结果记录集 while (dbReader.Read())//用read方法将结果集中的记录逐条读出 用read方法将结果集中的记录逐条读出 { ListViewItem li = new ListViewItem ( ) ; li.SubItems.Clear ( ) ; li.SubItems[0].Text = dbReader["studentNo"].ToString ( ) ; li.SubItems.Add ( dbReader["studentName"].ToString ( ) ) ; li.SubItems.Add ( dbReader["sex"].ToString ( ) ) ; li.SubItems.Add ( dbReader["birthday"].ToString ( ) ) ; listView1.Items.Add ( li ) ; } dbReader.Close(); conn.Close(); } catch (OleDbException ex) { string ss = ex.ToString(); MessageBox.Show (ss); } }