SQL命令 “学生”数据库中有 “学生表”、“课程表”和 “成绩表”。 “学生表”中包含学号、姓名

嘿,朋友们!来来来,咱们来操作一下数据库,看看如何筛选出平均分超过8 0分的学生吧。
首先,打开你的数据库软件,把包含学生信息和成绩信息的数据库加载进去。
接着,在数据库上点右键,新建一个查询,然后输入这段代码:select 学生表.学号, avg(成绩) as 平均分。
别急,我们得把学生表和成绩表联合起来,所以输入from 学生表 join 成绩表 on 学生表.学号 = 成绩表.学号。
然后,用group by 学生表.学号来按学号分组。
接下来,设置条件,用having命令筛选出平均分大于8 0的学生。
最后,因为我们的表里没有直接显示“平均分”这个字段,所以用as命令给它起个名字,方便查看。
这样就搞定了!

已知数据库中建立二张数据表,学生信息表(StudentInfo),一张是班级信息表(ClassInfo)

ClassInfo是主表,StudentInfo是从表。
我创建了一个StudentInfo表,里面包含StudentId(1 0个字符长,是主键)、StudentName(2 0个字符长,不能为空)、sex(1 个字符长)、EntranceDate(小日期时间类型)、StudentMark(浮点数类型)和ClasstId(1 0个字符长)。
创建完表之后,我还添加了一些约束,给StudentName加了一个唯一约束,让ClasstId成为外键,引用ClassInfo表的ClasstId列。
最后,我执行了两个查询,第一个查询是选出ClassInfo表的前1 0条数据,按照ClassNumber降序排列;第二个查询是计算ClasstId为'G02 08 '的班级在StudentInfo表中的StudentMark的平均值。

用SQL编写学生学籍管理信息系统

数据库的逻辑结构出来之后,咱们就可以把它落实到具体的数据库系统里了。
市面上数据库系统挺多的,比如Oracle、SYBASE、INFORMIX、DB2 ,它们各有各的优势。
考虑到“学生学籍管理系统”对数据量的需求,咱们最终选了SQL Server 2 000。

在学生学籍管理系统中,主要有这些表:
1 . student_Info:学生个人基本信息 2 . Class_Info:学校班级信息 3 . Course_Info:课程基本信息 4 . gradecourse_Info:学生所选课程 5 . student_Result:学生成绩信息 6 . User_Info:系统用户
接下来,咱们在SQL Server 2 000中实现这些逻辑结构。
这里以student_Info表格为例,展示如何用SQL Server 2 000的“企业管理器”工具创建表格的SQL语句。
其他表格的创建方法都大同小异:
sql / 表格名:学生基本信息表student_info,主关键字student_ID / CREATE TABLE [dbo].[student_info] ( [student_ID] [int] NOT NULL, [student_Name] [char](5 ) COLLATE Chinese_PRC_CI_AS NULL, [student_Sex] [char](1 ) COLLATE Chinese_PRC_CI_AS NULL, [student_Birth] [datetime] NULL, [student_No] [int] NULL, [student_Tel] [char](1 0) COLLATE Chinese_PRC_CI_AS NULL, [student_Addr] [char](5 0) COLLATE Chinese_PRC_CI_AS NULL, [student_Date] [datime] NULL ) ON [PRIMARY]
3 .2 各应用模块和功能模块的设计
在系统实现上,咱们用到了PowerBuilder中的Window Plug-in技术。
这个技术的好处是界面直观、操作简单,开发维护起来也方便。
通过Window Plug-in技术,咱们可以把在PowerBuilder中开发的窗口对象显示在网页(WebPages)中。
这样一来,用户就可以像操作传统的数据库应用软件一样,在浏览器里进行数据的查询、更新等操作。

利用Window Plug-in技术,咱们还能轻松地把原来在PowerBuilder中开发的应用程序移植到浏览器中,实现从C/S模式到B/S模式的快速转变。
这样一来,咱们就避免了在Web数据库编程中必须涉及到的大量网页设计,让开发者的精力能够完全放在数据库编程上。

PowerBuilder内嵌的窗口对象和一般的PowerBuilder应用程序窗口没什么区别,它们可以执行同样的功能,窗口内的脚本也和应用程序中的脚本一样执行。
当业务逻辑发生改变时,传统的应用系统必须对所有客户端应用程序进行逐个更新,这在客户数目很多的情况下显然会给系统维护带来不便。
而利用了Window Plug-in技术后,编译后的PBD文件就保存在服务器端,用户只是在浏览操作时才进行下载。
所以,修改业务逻辑时,只需在服务器端修改,然后重新编译生成包含新的业务逻辑的PBD文件,这样一来就给维护带来了方便。

基于Window Plug-in的技术特点,咱们本系统的开发过程和开发一般的PowerBuilder应用程序没什么区别,只是在程序开发的后期,对程序进行Window Plug-in技术的包装。

4 . 结束语
咱们使用PowerBuilder完成了一个基于Web的学生学籍管理信息系统,并利用了其Window Plug-in技术。
这样一来,系统不仅保持了PowerBuilder强大的数据库操作特性,还容易在Web上发布。
系统实现了信息的规范管理、科学的统计和快速的查询,较好地满足了学校管理者对学生学籍管理的需求,提高了学校管理者的工作效率。

不过,也有一点点需要注意的地方:因为Window Plug-in技术需要浏览器支持,所以它比较适用于内部网(Intranet)。
下一步的目标是将系统的使用范围进一步推广到Internet。

navicat怎么用代码创建数据表

好,看我给你捋一捋用Navicat通过SQL代码创建数据表的步骤:
想用Navicat新建个数据表,用SQL来搞,其实挺简单的。
跟着我一步步来:
首先,得连接上你的数据库。
打开Navicat,找到你想连接的那个数据库(不管是MySQL还是PostgreSQL还是别的),选中它,然后填对连接信息,比如主机名、端口、用户名、密码这些,点“连接”就行了。

连接成功后,就要打开SQL编辑器来写代码了。
你可以去顶部的菜单栏点“查询”然后选“新建查询”,或者直接按快捷键,Windows是Ctrl+N,Mac是Command+N,反正就是搞出一个空白的SQL代码输入框。

接下来就是写创建表的SQL语句了。
这个语句的标准格式是 CREATE TABLE 表名 (列名1 数据类型 [约束条件], 列名2 数据类型 [约束条件], ... [表级约束条件]);。

我给你举个具体的例子,比如你想创建一个存学生信息的表,可以这么写:
sql CREATE TABLE students ( id INT NOT NULL AUTO_INCREMENT PRIMARY KEY, name VARCHAR(5 0) NOT NULL, age INT, enrollment_date DATETIME DEFAULT CURRENT_TIMESTAMP );
这里简单解释下用到的几个东西: INT、VARCHAR(5 0)、DATETIME 是数据类型,分别代表整数、可变长度的字符串(最多5 0个字符)、日期时间。
NOT NULL 是个约束,表示这个字段不能留空。
AUTO_INCREMENT 是个特性(MySQL里这么用),表示这个字段会自动递增,每次插入新数据时自动加1 PRIMARY KEY 也是个约束,表示这个字段是表的主键,用来唯一标识表里的每一行数据。
DEFAULT CURRENT_TIMESTAMP 是个约束,表示如果插入数据时没给这个字段赋值,它默认会用当前的时间戳。

写完这些,代码就OK了。

然后,你得执行一下这个SQL语句。
看到工具栏上有个“运行”的按钮,点它;或者,你直接按F5 键也行。
如果代码没写错,Navicat窗口底部的状态栏会提示“执行成功”。

最后一步,是验证一下表到底有没有被创建成功。
你去看Navicat左侧的导航面板,找到你刚才连接的那个数据库,展开“表”这一项,看看新创建的表名(像我例子里的students)是不是在里面。
如果找到了,说明表创建好了。
你还可以右键点击这个表名,选择“查看结构”或者“打开数据表”来看看里面的细节。

当然,写SQL创建表的时候,得注意几点: 1 . 语法兼容性:不同的数据库系统(比如MySQL、SQL Server、PostgreSQL)的SQL语法可能有点不一样。
比如,PostgreSQL里面用SERIAL来代替MySQL的AUTO_INCREMENT实现自增,SQL Server用的是IDENTITY(1 ,1 )。
所以,写SQL的时候得考虑你用的是哪个数据库。
2 . 错误处理:万一执行的时候报错了,Navicat通常会告诉你错在哪里了(比如是不是语法有问题,或者你连运行代码的权限都没有)。
你就根据提示去检查和修改你的SQL代码。
3 . 高级选项:光创建表还不算完,你还可以通过更复杂的SQL语句给表添加索引、外键等等,让数据管理更高效。
比如,你想给orders表创建一个外键关联到students表的id字段,可以写:
sql CREATE TABLE orders ( order_id INT PRIMARY KEY, student_id INT, FOREIGN KEY (student_id) REFERENCES students (id) );
总的来说,用Navicat的SQL编辑器创建数据表就是这么个流程。
你掌握了这些,就能比较方便地根据需求创建出合适的表来。
要是想做得更高级,比如利用特定数据库的存储引擎、分区功能什么的,那还得再深入了解下。