精华内容
下载资源
问答
  • 16春学期《数据库应用系统设计》在线作业一、单选题(共21道试题,共42分。)1.要指定数据库每一确定状态时数据对象所应满足约束条件,则应使用().列约束.静态约束.动态约束.关系约束正确答案:2.要定义数据库描述...

    16

    春学期《数据库应用系统设计》在线作业

    一、单选题(共

    21

    道试题,共

    42

    分。

    )

    1.

    要指定数据库每一确定状态时的数据对象所应满足的约束条件,则应使用

    ()

    .

    列约束

    .

    静态约束

    .

    动态约束

    .

    关系约束

    正确答案:

    2.

    要定义数据库描述文件名称和数据库基本连接参数,应选择

    ts

    Profil

    Stup

    对话框中的

    ()

    标签

    . onntion

    . Trnstion

    . Syntx

    . Prviw

    正确答案:

    3.

    下列关于权限设置的叙述中正确的是

    ()

    .

    只能指定允许操作的数据对象

    .

    只能指定允许进行的操作类型

    .

    既能指定允许操作的数据对象,也能指定允许进行的操作类型

    .

    以上都不对

    正确答案:

    4.

    下列选项中不属于数据库系统软件组成部分的是

    ()

    .

    数据库管理系统

    .

    数据库应用系统

    . PU

    .

    操作系统

    正确答案:

    5.

    使用

    SQL

    语言设定表的外键,应使用

    ()

    约束

    . PRIMRY KY

    . HK

    . UNIQU

    . FORIGN KY

    正确答案:

    6.

    PowrSript

    语言中,从程序质量角度看应按

    ()

    优先顺序定义变量

    .

    局部变量、实例变量、共享变量、全局变量

    .

    局部变量、共享变量、实例变量、全局变量

    .

    共享变量、局部变量、实例变量、全局变量

    展开全文
  • 该资源包含中英文对照版本。 摘 要:基于面向对象技术的基本思想和开发过程,介绍...使用该模式设计的系统重用性好,且易于维护,从而有效提高了数据库系统的开发质量。 关键词:面向对象技术 数据库系统设计 对象模型
  • 第一章 初识Windows程序 01.浅谈控制台应用 解析:控制台应用程序:dos窗口中显示...02.关于窗体项目注意点: /*01.一个解决方案下可以包含多个项目, * 一个项目下可以包含多个窗体 * 02.如何设置一个项...

     

     

    第一章 初识Windows程序

    01.浅谈控制台应用

       解析:控制台应用程序:dos窗口中显示

       Windows窗体应用程序:有控件参与的,支持事件的一种程序

    02.关于窗体项目的注意点:

                /*01.一个解决方案下可以包含多个项目,

                 * 一个项目下可以包含多个窗体

                 * 02.如何设置一个项目下的某个窗体为启动窗体???

                 * 解析:通过更改Program.csMain方法中最后一行代码设置

                 * 03.控件的Name属性相当于隐藏值,一定要改

                 *    真正在窗体显示内容的是Text属性

                 * 04.如果一个解决方案下有多个项目,如何设置某个项目为启动项??

                 * 解析:可以对项目点击右键→设为启动项

                 * 05.机房的项目如何保存,或者保存后如何打开???

                 * 解析:可以将解决方案另存为到指定的项目下,下次

                 * 直接打开sln文件就可以了

                 *

                 * 06.事件激发错误问题???

                  (这个正常,现在大家都事件的概念还不太理解,

                 * 随着学习的深入大家就会了解)

                 * 解析:注意什么时候激发事件

                 *

                 * 07.如何让窗体运行后无法改变大小?

                 * 解析:通过如下设置:

                 * 01.禁用最大化按钮

                 * 02.设置FormBorderStyle属性为任何一个以Fixed开头的属性都OK

                 */                                                           

    03..在VS中创建一个窗体后,所有的窗体都继承自Form类

    04.构造函数:

        解析:在一个类中,方法名和类名相同,并且没有返回值类型的方法,称为构造函数

        作用:做初始化工作

    05.什么是事件之事件详解

        解析:由外界事物(猎枪)激发另一个事物(小鸟)的状态发生改变的情况。

           //事件看起来像一个带参方法,2个参数

            //sender:代表的是事件源:事件的激发者

            //e:事件的参数:和事件相关的一些信息!

    06.窗体变色练习

     解析:事件(窗体的Click事件)

      This:当前窗体对象

      this.BackColor=Color.Red;

    07.MessageBox(肯定出2分)

    //01.参数一:提示信息

       //参数二:标题文本

       //参数三:按钮设置

       //参数四:图标设置

     MessageBox.Show("恭喜您,中奖500完,请吃饭可以吗?","温馨提示",MessageBoxButtons.YesNo,MessageBoxIcon.Warning);

    Warning:

    Information:

    Error:

     

    08.窗体传值

      解析:从Login窗体传递登陆用户名到Main窗体,可以在Main窗体中定义一个公有的变量,然后在Login窗体的登陆按钮事件中编写如下代码:

      Main frm=new Main();

      frm.name=txtName.Text;

      frm.Show();

      然后在Main的load事件中为Label控件赋值。

    09.真正退出程序

       在窗体的FormClosing事件中,书写Application.Exit();

    10.多文本框为空验证

    01.在工具箱中的任何控件都是一个类,一旦你将他拖动到Form窗体上,他就变成了一个对象,进而大家可以通过F4快捷键在属性窗口中,给她的各个属性赋值。

     

    11.如何解决窗体已经关闭,但是整个应用没有退出的问题?

    解析:使用Application.Exit()  会出

    12.练习重点

     01.窗体跳转

       如何从窗体A跳转到窗体B

     02.退出整个应用

     03.欢迎界面显示欢迎您,微冷的雨

     

    第2章 构建布局良好的Windows程序

    2015年11月21日13:45:24

    01.登陆:

      Select count(1) from student

      Where studentname= and loginpwd=?;

    02.向学生表中添加一条记录。

    03.单选按钮

    04.复选按钮

    05.菜单栏(MenuStrip)

      快捷键

       方式一:打开(&F) ,缺点:必须先用alt+字符,先定位到一级菜单,然后按F定位到相应内容

      方式二:shortCutKeys    打开(Ctrl+F)。优点:可以跳过1级菜单,直接调用需要的窗口

    和分割线

    06.ToolStrip(工具栏)

    01.整个控件中所有项目的图片和原图片大小等同,需要设置imageScalingSize:

    32x32 (整个控件)

    02.显示图像和文本选项:设置DisplayStyle的值为ImageAndText(单个Item)

    03.图像和文本的位置:TextImageRelation设置ImageBeforeText (单个Item)

    07.窗体传值

     

    01.菜单栏(MenuStrip)

       设置快捷键方式:

        方式一:1.设置菜单项的Text属性为(打开(&F)),

        首先必须按住alt+主菜单快捷键进入到对应的主菜单,

        然后直接按F就可以打开子窗体。

     

        方式二:通过菜单项的ShorCartKeys属性设置。

         创建对应的组合键,可以在主界面直接按对应的

          字母键就可以打开子窗体

     分割线的画法:

       01.插入分割线                                         

       02.输入减号(-)

    02.工具栏(ToolStrip)

     

       01.给工具栏项目设置图片,首先图片大小由整个ToolStrip来控制,

       设置    ImageScalingSize  值为图片本身像素值。

       02.添加每一项目的类型为DropDownButton

       03.设置Text属性为显示的文本

       04.设置DisplayStyle属性为ImageAndText,让图片和文本同时显示

       05.TextImageRelation图像与文本的相对位置

    03. application.Exit()和this.close()

    Application.Exit();//退出整个应用程序

    this.Close();//关闭当前窗体

    04.常见控件的使用

       RadioButton

        DateTimerPicker

        GroupBox

        Panel

    05.预留问题:如何让DateTimePiker不显示星期

    06.Anchor和Dock属性

       Anchor:让控件和窗体边缘的位置保持固定的像素值。

       Dock:使控件停靠在窗体的某个部位(Top,Bottom,Left,RIght),或者填充整个窗体(Fill)

    07.设置MDI窗体

       001.将Main窗体的IsMdiContainer属性设置为true

       002.在子窗体show()之前加上如下代码:

           frm.MdiParent=this;//this代表当前窗体

    面向对象提升:只要能通过点鼠标设置属性的地方,都可以通过代码实现,但是代码能实现的未必都能通过点鼠标实现!

    08.关于ReadOnly的那些事儿

        如果对TextBox设置了ReadOnly属性,那么设置字体前景色是不起作用的,必须设置BackColor为Control外的任意颜色即可。

    09.如何将数据库中Grade表中的数据绑定到下拉框中

    解析:界面上年级下拉框中显示的是年级名称,而学生表中保存的是年级编号,怎么搞??

    解析:public int GetIdByName(string gradename)

        {

            string sql="select gradeid from grade where gradeName='"+gradename+"'";

           }

    第3章 使用ListView控件展示数据

     01.ListView初步

       步骤一:图片来源于ImageList,在ImageList:

    \

      步骤二:将ListView的两个属性和ImageList图片源进行关联

     

    步骤三:给ListView控件添加项

     

    步骤四:设置ListView显示的图标类型

     

     

     

     

     

     

     

    第4章 实现Windows程序的数据更新

    01.枚举类型

      001.枚举是值类型

      002.枚举本质上保存的是数字

      003.枚举中不能有方法

      004.枚举也是一种数据类型

      005.枚举一般只用来定义有限个值(10个以内)

    02.Timer控件

    两大属性:Enabled:可以控制定时器开启还是停止。

              Start():开启定时器  Stop()停止定时器

               Interval:每隔多少毫秒执行一段代码。

    重要事件:Tick:你要重复执行什么代码就写到Tick事件中。

    03.模态窗口和非模态窗口

     模态窗口:如果该窗口不关闭,那么不能操作程序中的其他任何功能。ShowDialog()

     即时修改问题

     

     

     

     

     

    第5章 实现Windows程序的数据绑定

    01.会用新的方式加载年级下拉框。

    02.会使用DataGridView控件展示所有学员的信息

    03.会使用DataAdapter和DataSet对象操作离线数据。

    04.Dataset:保存在客户端内存中的一个临时数据库。

     一个DataSet由多个DataTable组成。

     一个DataTable中可以有多行,每一行都是一个DataRow对象,每一列都是DataColumn对象。

    5.“请选择”能不能放到数据库中形成一条记录。

          

      登陆

      修改密码

      主界面

      新增学员信息

      修改学员信息

      按姓名查询学员信息

      成绩管理

      删除

      按年级查询学员信息

    DataAdapter和DataSet结合使用图

     

     

     

    第6章 数据筛选和排序

    01.TreeView控件

        *学习到了在一个TreeView控件中,每一个节点的类型都是一个TreeNode。

           *默认情况下,会自动激活TreeVuew的根节点

           *获取当前选中节点代码:tvList.SelectedNode

     

           *获取当前选中节点的根节点:tvList.SelectedNode.Parent(根节点对象)

           *统计TreeView控件某个节点的深度,深度是从0开始的。获取深度的属性是

               lvList.SelectedNode.Level;

           *节点中如何添加图片:ImageIndex(默认显示的图片) (SelectedImageIndex:选中后的图片)

           *Tag:专门为程序员提供的编程接口,方便用户对程序的操作 。Tag里面可以存储任意

           类型的数据,但是一个数据无论之前是什么类型,一旦被放入到Tag属性中,那么就变成了

           Object类型,所以,取出Tag属性值的时候要进行类型转换。

           *AfterSelect事件,当选中某个节点后触发的事件

    02.DataView(类)

    DataView dv=new DataView();

    dv.RowFilter();

    他说:我可以满足你只和DB交互一次,后续所有的查询操作(过滤)都由我来完成。

       *DataView干啥的?

       解析:用来筛选数据集DataSet中某张表的数据,换句白话来说,就是取出学生表中

       一部分符合条件的数据,然后保存到DataView对象中。DataView只是客户端保存数据的一个

       容器,和DataSet呀,DataTable呀!一样。

       *DataSet和DataView和DataTable有什么关系?

       解析:这里有3分。

       DataSet包含多个DataTable。一个DataTable可以拥有多个DataView

       *DataRow有一个属性叫RowFilter,可以对表中的数据进行筛选过滤。

       dv.RowFilter="where后面的内容"; 例如:dv.RowFilter="gradeid="+gid+"";

      

     

    2015年11月30日16:48:39

    作业:

    1.在根据年级名称查询学生信息窗体中,如下

     

    右键菜单中有一项叫录入成绩

     

    2.

     

    3.清空

    4.添加学生信息成功后,返回主键值。

    第七章  航班系统   (周四下午前)

     

     

     

     

    第八章 商品管理系统

     

     

      

     

    转载于:https://www.cnblogs.com/weiguangyi/p/5152601.html

    展开全文
  • 要深入了解数据库系统的内部结构,以开发出高效的数据库应用系统,也需要学习和研究数据库管理系统实现技术。 Hector Garcia-Molina、Jeffrey D. Ullman和Jennifer Widom是斯坦福大学著名的计算机科学家,多年来他们...
  • Q 大家设计数据库使用外键吗? @林灿斌 回答 我简单地画了一个最常见中型网络服务架构示意图: 用户请求,通过前端负载均衡分发到应用服务器上,应用服务器对于数据请求,又通过数据负载...

    https://www.zhihu.com/question/19600081/answer/94706401#comment-400660207

    mark一下,以防原答主删帖,侵权私信我

    Q 大家设计数据库时使用外键吗?

    @林灿斌 的回答

    我简单地画了一个最常见的中型网络服务的架构示意图:
    这里写图片描述

    用户的请求,通过前端的负载均衡分发到应用服务器上,应用服务器对于数据的请求,又通过数据的负载均衡分发的读写分离的数据库集群上(读写分离的从数据库通过二进制日志从主服务器同步数据)。

    这种架构,对于系统开发的复杂度不会有什么明显的提升。

    但是很容易可以注意到,这个架构下,负责写的数据库服务器,只有一个。如果用绿色圆饼代表服务器负载的话,加入约束的主服务器,insert、update、delete操作都会有更多的性能消耗。于是负责写入的主数据库服务器会很快遇到瓶颈。

    根据木桶理论,我们可以知道,这个系统也遇到了瓶颈。

    那么把负载最高的服务器上的干的活,转移到易于扩展的其他服务器上,可以有效提升整个系统的性能。

    那么把 主数据库服务器(写) 上的约束转移到应用服务器上去做,就可以有效提升性能了——极端点的能转移就全部转移。

    还有为了压榨 主数据库服务器(写) 上的一些性能,用GUID替代AutoIncrement作为主键的唯一性保障,同样也是这个道理。

    这里写图片描述

    这么做之后,我们可以观察到 主数据库服务器(写) 上的负载有了显著的降低,但是应用服务器的负载提升了,这时候怎么办呢?只要再加几台应用服务器就好了。

    最后,再分享另一种的网络服务的系统架构:

    这里写图片描述

    这种情况下,把约束做到数据库里,就很方便了,降低了应用服务上逻辑层的复杂度。(有人要问了:为什么负载这么低啊?因为用户量少啊hhhhhhhhhh)

    总之,加不加,还是看需求。

    但是我个人倾向于把对性能的需求,放到易于扩展服务器迅速解决性能瓶颈的服务中。

    展开全文
  • 使用SQLite数据库开发数据库应用

    千次阅读 2013-11-18 23:54:38
     SQLite,是一款轻型的数据库,是遵守ACID关联式数据库管理系统,它设计目标是嵌入式,而且目前已经在很多嵌入式产品中使用了它,它占用资源非常低,在嵌入式设备中(如Android),可能只需要几百K内存就够...

               一、关于SQLite

              SQLite,是一款轻型的数据库,是遵守ACID的关联式数据库管理系统,它的设计目标是嵌入式的,而且目前已经在很多嵌入式产品中使用了它,它占用资源非常的低,在嵌入式设备中(如Android),可能只需要几百K的内存就够了。它能够支持Windows/Linux/Unix等等主流的操作系统,同时能够跟很多程序语言相结合,比如 Tcl、C#、PHP、Java等,还有ODBC接口,同样比起Mysql、PostgreSQL这两款开源世界著名的数据库管理系统来讲,它的处理速度比他们都快。SQLite第一个Alpha版本诞生于2000年5月。 至今已经有13个年头,SQLite也迎来了一个版本 SQLite 3已经发布。SQLite是一个由C语言写成的开源项目,零配置无需安装即可使用,支持2TB的数据库大小,代码简洁、实用、独立。官方网站为http://www.sqlite.org,您可以在这里找到该项目的源代码和文档。

             二、使用SQLite

             以C#为例,要使用SQLite,我们首先需要在项目中添加对System.Data.SQLite.dll的引用,该类库可以从这里下载下载。经典的ADO.Net模式走起!   

          

    class SQLite
        {
                private string DataSource = "D:\\Students.db3";
                private SQLiteConnection Connection=new SQLiteConnection();
                private SQLiteCommand Command=new SQLiteCommand();
    
    
            public void Main()
            {
                //创建数据库
                SQLiteConnection.CreateFile(DataSource);
                //连接数据库
                Connection.ConnectionString = "Data Source=" + DataSource;
                Connection.Open();
                //创建数据表
                Command.CommandText = "CREATE TABLE Student(Name varchar(20),Age varchar(10),Sex varchar(20))";
                Command.Connection = Connection;
                Command.ExecuteNonQuery();
                //插入数据
                Command.CommandText = "INSERT INTO Student VALUES('张三','20','男')";//这是一种形式
                Command.ExecuteNonQuery();
                Command.CommandText = "INSERT INTO Student(Name,Age,Sex) VALUES(@Name,@Age,@Sex)";//这是另一种形式,配合下面的语句,形式更加优美
                SQLiteParameter[] Parameter = new SQLiteParameter[] 
                                       {
                                           new SQLiteParameter("@Name","张三"),
                                           new SQLiteParameter("@Age","20"),
                                           new SQLiteParameter("@Sex","男")
                                       };
                Command.Parameters.AddRange(Parameter);
                Command.ExecuteNonQuery();
                //读取数据
                StringBuilder S = new StringBuilder();
                Connection.Open();
                Command.Connection = Connection;
                Command.CommandText = "SECLECT * FROM Student";
                SQLiteDataReader Reader = Command.ExecuteReader();
                while (Reader.Read())
                {
                    S.Append(
                        "[Name=" + Reader.GetValue(0).ToString() + ","
                        + "Age=" + Reader.GetValue(1).ToString() +","
                        +"Sex="+Reader.GetValue(2).ToString()+ "]");
                    Console.WriteLine(S.ToString());
                    S.Remove(0, S.Length);
                }
                Reader.Close();
                Reader.Dispose();
                Connection.Close();
            }
    
    
        }

    展开全文
  • 应用数据库系统课程 这是在研究生院学习课程。 关于项目(DCEUMovieDB) DCEU电影的数据库以及它们各自与漫画关联。DCExtended Universe数据库管理系统提供了一种轻松方式来查找基于漫画电影并查看漫画和...
  • 我这里主要采用SQL server语句来实现,没有用图形化语言来展现,后期我会单独发一个关于使用图形化博文,另外我使用的是SQL server 2008版本进行语句操作 1. SQL Server服务启动和停止: 启动 使用管理员...
  • 在开发应用系统中,经常要设置一些参数,而且这些参数以后可以添加或扩展,常用处理方式有2种: 写在配置文件中 或写在数据库表中。 配置文件中:但调用时直接使用常量定义; 数据库表中:调用时根据一个key...
  • 1 Web应用系统的主要特点 1. 2 Web应用程序的体系结构 1. 3 SQL Server2000与Web应用 1. 4 本章小结 第2章 建立Web应用程序的开发环境 2. 1 开发环境的基本要求 2. 1. 1 软件要求 2. 1...
  • 关于电子支付系统的数据库设计

    千次阅读 2011-03-31 00:28:00
    根据系统应用的用户规模和交易量,系统的数据库设计也是不同的。 那种账户一年才几个,交易量不到一万笔,交易额在10万以下的小系统,用个access就能解决,感觉不用特别去研究。 那种超大规模的应用,如股票...
  • 本次更新增加了管理员界面对于学生信息管理(增删改查) 遇到问题:不同页面之间跳转时候,...关于传递数据(中文乱码问题),不能直接使用接收上个页面传递过来数据,需要进行一下处理: String sname_2.
  • 下列关于数据库管理系统的说法,错误的是CA.数据库管理系统与操作系统有关,操作系统的类型决定了能够运行的数据库管理系统的类型B.数据库管理系统对数据库文件的访问必须经过操作系统实现才能实现C.数据库应用...
  • 其一:对于一个界面型的...其二:数据库操作,对于MFC的CRecordset类来说,还是需要研究一下才能加入这个系统的使用中来的;其三:生成项目报表,这就需要利用MFC来操作word,用MFC提供的库文件来形成word文档的报表。
  • 关于数据库查询

    2019-06-28 09:03:00
    应用程序慢如牛,原因多多,可能是网络原因、可能是系统架构原因,还有可能是数据库的原因。  那么如何提高数据库SQL语句执行速度呢?有人会说性能调优是DBA事,然而性能调优跟程序员们也有莫大关系。 ...
  • 这一部分在开发信息系统之前完成,程序员需要考虑是否使用ORACLE数据库的分区功能,对于经常访问的数据库表是否需要建立索引等。 2、2、调整应用程序结构设计。这一部分也是在开发信息系统之前完成,程序员在这...
  • 第1章 数据库概述1.1 关于数据库的基本概念 11.1.1 数据管理技术发展阶段 11.1.2 数据库系统阶段涉及到概念 21.1.3 数据库技术经历阶段 21.1.4 数据库管理系统提供功能 31.1.5 什么是SQL 31.2 MySQL数据库管理...
  • 由于用户在使用单机版的应用系统中,提出了新增需求需要完善系统。导致数据库原有表结构或者视图有变更以及新增了表或者视图。 请问如何解决数据库发生变更后,能够自动更新到客户端单机版应用程序的数据库中...
  • 数据库应用程序开发基础篇—— .NET中SQL Server数据库的操作C#篇之一 写在前面:前面介绍了数据库系统的基本概念,SQl语句基本使用方法,接下来通过学习具体语言和具体数据库结合的应用开发来体会数据库原理及其...
  • 关于MySql很多知识都遗忘了,面试的时候还是问到一些内容,所以也要系统的整理一下了,说实话数据库这边一开始就学的不太行,趁着复习好好学一下,对底层的理解,实际应用的情况,才是要学习的重点。 先从提问...
  • (数据库)SQLite的使用

    2017-03-19 10:44:47
    数据库的应用相当广泛,可以应用在Java、Android、IOS、Windows等所有主要操作系统上SQLite虽然是轻量级小引擎,但是能够支持高达2TB大小的数据库,其以单个文件形式存在,以B-Tree数据结构形式存储在磁盘,...
  • 第三方一个应用系统使用的是SQLSERVER数据库,根据客户需求需要将其纳入现存系统中统一管理,并更换为ORACLE数据库,我们提供相关支持。先就是要求提供一个更改为使用ORACLE数据库的方案,并将数据库连接池纳入...
  • 1、关系数据库系统是基于关系模型的数据库系统 2、关系模型数据结构使用简单易懂二维数据表 3、关系模型可用简单 “实体-关系” (E-R)图来表示 4、E-R图中包含了实体(数据对象)、关系和属性三个要素 ...
  • 1.7.1 使用分层和网状系统的早期数据库应用 16 1.7.2 关系数据库提供应用灵活性 16 1.7.3 面向对象的应用和对更复杂数据库的需求 16 1.7.4 在Web上交换数据实现电子商务 17 1.7.5 为新应用扩展...
  • 关于SQL数据库

    2017-02-08 15:46:35
    将PostgreSQL用作服务对象-关系型数据库管理系统来安全存储数据,用于其他软件应用程序请求时检索。 该数据库可以处理各种工作负载,从单机应用程序到具有许多并发用户面向互联网的应用程序。 更多信息,请参见...
  • 数据库系统概论课件

    2013-05-31 11:59:13
    关于数据库系统描述,数据库技术...数据库技术是信息系统的核心和基础,它的出现极大地促进了计算机应用向各行各业的渗透。 数据库的建设规模、数据库信息量的大小和使用频度已成为衡量一个国家信息化程度的重要标志。
  • 9.3 分布式数据库系统的类型 187 9.4 分布式数据库中的查询处理 189 9.4.1 分布式查询处理的数据传输代价 189 9.4.2 使用半连接的分布式查询处理 191 9.4.3 查询和更新分解 191 9.5 分布式...
  • 关于数据库连接池

    2017-11-29 16:45:26
    打开数据库连接时CPU和网络的重要任务因此,在整个应用程序的使用过程当中重复的打开直接连接将导致性能的下降。而池连接只在服务器启动时打开一次,从而消除了这种性能问题。 另外,因为连接只用于很短的时间, ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 2,155
精华内容 862
关键字:

关于数据库应用系统的使用