首页  前一页  后一页  末页
[301] [302] [303] [304] [305]
本留言簿共有493条记录, 现在时间2025-5-24 16:28:17,计算机地址:192.168.9.44
日期查询:
现在是第60页
一共有99页
Books库中表及结构信息 环境:一键安装 库表:Mysql.sql  xx3.sql xx4.sql 页面:Myphp.php   
序号 留言内容
305

D:2016-11-11
T:11:19:00
IP:192.168.9.124



作者:
张顺海

2016.11.11

星期五

 

上机内容:SQL的数据查询功能及数据定义功能

上机目的:

掌握SQL的查询语句(select)主要的七部分

理解数据定义功能中的(字段级有效性检测)

上机过程:

1.SQL的数据查询功能(DML)

  • 简单查询(sele * from xx1)
  • 条件查询(where / join on)
  • 排序查询(orde by)
  • 分组查询 (group by +having)
  • 嵌套查询(sele * from xx1 where nl in (sele nl from xx1 where xb="男")
  • 合并查询(union 纵向合并,数量相等、类型匹配)
  • 输出查询(into 、to)

2.SQL的数据定义功能(DDL)

自由表与数据库表的区别

自由表与数据库表的转换

数据库的建立命令(Create database V76zsh)

数据库的打开(Open database V76zsh)

数据库的关闭(close database)

打开数据库设计器(modify Database V76zsh)

如何将自由表添加到数据库中,由自由表成为数据库表(设计器方式,命令方式)

设计器方式,工具栏中的“添加表”按钮

add table 选课

建立表格时,加入字段级有效性规则检查,及违返规则时的报错信息

1)只有数据库表才能加该规则检查及报错信息

2)相对应的关键词是check +条件表达式,error+C型报错信息

3)例子

  • CREATE DATABASE test  &&建立一个用于测试的数据库test
  • CREATE TABLE test (xh c(2),nl n(2) check nl>=15 and nl<=20 error "nl字段应该在15-20之间")  &&建立一张表test,并对其中的第二个字段NL加入规则及错误提示
  • INSERT into test (xh,nl) value ("001",18)  &&加入第一条符合规则的记录
  • INSERT into test (xh,nl) value ("002",19)  &&加入第二条符合规则的记录
     
  • INSERT into test (xh,nl) value ("003",21)  &&加入第三条记录时,因为21不条例15-20之间,所以触发规则,并报错!

备注:

DML(data manipulation language)是数据操纵语言:它们是SELECT、UPDATE、INSERT、DELETE,就象它的名字一样,这4条命令是用来对数据库里的数据进行操作的语言。
 
DDL(data definition language)是数据定义语言:DDL比DML要多,主要的命令有CREATE、ALTER、DROP等,DDL主要是用在定义或改变表(TABLE)的结构,数据类型,表之间的链接和约束等初始化工作上,他们大多在建立表时使用。
 
DCL(DataControlLanguage)是数据库控制语言:是用来设置或更改数据库用户或角色权限的语句,包括(grant,deny,revoke等)语句。
 
304

D:2016-10-14
T:13:50:00
IP:192.168.9.124



作者:
张顺海

2016.10.16   (9.30-10.7放假  9.13-14考试)

期中考试讲解!

SQL操作题环境创建脚本(可以将以下代码,复制下来,创建一个小程序文件,比如 modi comm 然后粘贴,存盘,执行)

就会得到四张表(学生、课程、选课、必修课),另外根据题目要求已经加入了(4、4、8、6)条记录。

 

 

*xt.prg   [xt.prg下载]

CLEAR ALL
clea
SET safe off
 
CREATE TABLE 学生 (学号 c(7),姓名 c(6),性别 c(2),年龄 n(2),是否党员 l,入学时间 d,专业 c(4))
CREATE TABLE 课程 (课号 c(1),课名 c(10),学分 n(1))
CREATE TABLE 选课 (学号 c(7),课号 c(1),成绩 n(5,2) null)
CREATE TABLE 必修课 (课号 c(1),必修专业 c(4))
INSERT into 学生 (学号,姓名,性别,年龄,是否党员,入学时间,专业) value ("8901001","李文","女",20,.f.,{^1980/09/01},"软件")
INSERT into 学生 (学号,姓名,性别,年龄,是否党员,入学时间,专业) value ("8901005","张静","女",20,.t.,{^1989/09/01},"应用")
INSERT into 学生 (学号,姓名,性别,年龄,是否党员,入学时间,专业) value ("8901003","张新","男",19,.f.,{^1998/09/02},"软件")
INSERT into 学生 (学号,姓名,性别,年龄,是否党员,入学时间,专业) value ("8901004","刘天","男",21,.f.,{^1996/09/01},"应用")
 
INSERT into 课程 (课号,课名,学分) value ("1","程序设计",4)
INSERT into 课程 (课号,课名,学分) value ("2","数据结构",4) 
INSERT into 课程 (课号,课名,学分) value ("3","数据库",5)
INSERT into 课程 (课号,课名,学分) value ("4","操作系统",3)
 
INSERT into 选课 (学号,课号,成绩) value ("8901001","1",85.00)
INSERT into 选课 (学号,课号,成绩) value ("8901001","2",78.00)
INSERT into 选课 (学号,课号,成绩) value ("8901001","4",75.00)
INSERT into 选课 (学号,课号,成绩) value ("8901005","1",72.00)
INSERT into 选课 (学号,课号,成绩) value ("8901005","3",null)
INSERT into 选课 (学号,课号,成绩) value ("8901003","1",86.00)
INSERT into 选课 (学号,课号,成绩) value ("8901003","2",87.00)
INSERT into 选课 (学号,课号,成绩) value ("8901004","1",78.00)
 
INSERT into 必修课 (课号,必修专业) value ("1","软件")
INSERT into 必修课 (课号,必修专业) value ("1","应用")
INSERT into 必修课 (课号,必修专业) value ("2","软件")
INSERT into 必修课 (课号,必修专业) value ("3","软件")
INSERT into 必修课 (课号,必修专业) value ("3","应用")
INSERT into 必修课 (课号,必修专业) value ("4","应用")
 
根据题目要求,写出要应的SQL语句
 
 
1.列出软件专业全部学生的学号及姓名
 
2.列出所有必修课的课号
 
3.求1号课成绩大于80的学生学号及成绩,并按成绩由高到低列出
 
4.查询1990年9月1日以后入学的学生名单
 
5.查询成绩在70分到80分之间的学生选课的得分情况
 
6.列出选修课数据库的所有学生的学号
 
7.求出总分大于150的学生的学号,姓名及总成绩
 
8.列出选修1号课的学生姓名及成绩
 
9.求至少选修1课号课和2号课的同学的学号
 
10.列出各门课的平均成绩,最高成绩,最低成绩和选课人数
 
 
 
参考答案:
  1. SELECT 学号,姓名 from 学生 where 专业="软件"
  2. SELECT dist 课号 from 必修课
  3. SELECT 学号,成绩 from 选课 where 成绩>80 and 课号="1" orde by 成绩 desc
  4. SELECT * from 学生 where 入学时间>{^1990/09/01}
  5. SELECT * from 选课 where 成绩 betw 70 and 80
  6. SELECT 学号 from 选课 where 课号 in (SELECT 课号 from 课程 where 课名="数据库")
  7. SELECT xk.学号,学生.姓名,sum(xk.成绩) as 总成绩 from 选课 as xk  inne join 学生 on 学生.学号=xk.学号 group by xk.学号,学生.姓名 havi 总成绩>150
  8. SELECT 姓名,成绩 from 学生,选课 where 选课.学号=学生.学号 and 选课.课号="1"
  9. SELECT dist 学号 from 选课 where 学号 in (SELECT 学号 from 选课 where 课号="1" ) and 学号 in (SELECT 学号 from 选课 where 课号="2")
  10. SELECT 课号,avg(成绩) as 平均成绩,MAX(成绩) as 最高成绩,MIN(成绩) as 最低成绩,count(课号) as 选课人数 from 选课 grou by 课号
     
其他的写法供参考:
(7)SELECT xk.学号,学生.姓名,sum(xk.成绩) as 总成绩 from 选课 as xk ,学生 where 学生.学号=xk.学号 group by xk.学号,学生.姓名 havi 总成绩>150
 
(10)SELECT 选课.课号,课名,avg(成绩) as 平均成绩,MAX(成绩) as 最高成绩,MIN(成绩) as 最低成绩,count(选课.课号) as 选课人数 from 选课 inne join 课程 on 课程.课号=选课.课号 grou by 选课.课号,课名
 
总结:
 
SQL查询中,主要用到的七个短语,它们的运行顺序影响使用过程中的设置: 
  1. from、where、group by、having、select、order by、into(to), 
  2. from:选择数据源(第一确定数据来源)
  3. where:选择数据源中的哪些记录(去掉不符合条件的记录) 
  4. group by:将上边筛选出来的记录按依据分组,并按分组统计计算(形成多个组,如果不分组就是把所有记录分一组)
  5. having:对按组计算出的结果第二次筛选(去年不符合条件的)  
  6. select:对最后符合条件的结果的指定信息进行选择
  7. order by :按指定的列进行有序输出
  8. into(to):把结果输出到指的地方
 
 
303

D:2016-9-28
T:14:07:00
IP:188.188.2.125



作者:
cn
302

D:2016-9-28
T:9:38:00
IP:192.168.9.168



作者:
张顺海

2016.9.28 星期三(周五的课)

教学内容:

教学目的:

教学重点:

教学难点:

教学过程:

一、复习

昨天上机情况:

二、运用“表设计器”设计表格的过程及数据的添加、查询

三、SQL语言设计表格的设计,记录地添加

cd 测试或者改换当前的目录  [http://192.168.8.40/ch01/vfp6-help/html/lngcd_or_chdir.htm]

md 建立一个新的目录 http://192.168.8.40/ch01/vfp6-help/html/lngmd_or_mkdir.htm

create table 建立一张新表 http://192.168.8.40/ch01/vfp6-help/html/lngcreate_table___sql.htm

insert into 插入一条记录到指定的表格中http://192.168.8.40/ch01/vfp6-help/html/lnginsert___sql.htm

sele * from xx1 where xb="男"  http://192.168.8.40/ch01/vfp6-help/html/lngselect___sql.htm

 

使用的命令格式如下:

  1. cd d:\
  2. md  v76_zsh
  3. cd v76_zsh
  4. create table xx1 (xm c(6),xb c(2),xh c(3),nl n(2))
  5. insert into xx1 (xm,xb,xh,nl) value ("张三","男","001",18)
  6. insert into xx1 (xm,xb,xh,nl) value ("李四","女","002",19)
  7. insert into xx1 (xm,xb,xh,nl) value ("王五","男","003",18)
  8. sele * from xx1 where xb="男"

 

命令解释如下:

  1. 改变当前目录到D盘根目录
  2. 建立子目录 V76_zsh
  3. 进入子目录 v76_zsh
  4. 建立表xx1.dbf (结构如命令)
  5. 插入一条记录(内容如命令)
  6. 插入一条记录(内容如命令)
  7. 插入一条记录(内容如命令)
  8. 查询出性别为男的记录
301

D:2016-9-27
T:9:37:00
IP:192.168.9.168



作者:
张顺海

2016.9.27 星期四

上机内容:

上机目的:

首页  前一页  后一页  末页
现在是第60页一共有99页