新建学生-课程数据库的三个表:
学生表:Student(Sno,Sname,Ssex,Sage,Sdept) Sno为主码;
课程表:Course(Cno,Cname,Cpno,Credeit) Cno为主码;
学生选修表:SC(Sno,Cno,Grade) Sno,Cno,为主码;
Student
学号
Sno姓名
Sname性别
Ssex年龄
Sage所在系
Sdept
95001李勇男20CS
95002刘晨女19IS
95003王敏女18MA
95004张立男19IS
课程号
Sno课程名
Cname先行课
Cpno学分
Credit
1数据库54
2数学2
3信息系统14
4操作系统63
5数据结构74
6数据处理2
7Pascal语言64
Course:
SC:
学号
Sno课程号
Cno成绩
Grade
95001192
95001285
95001388
95002290
95002380
一:查询表中的列和行
1:查询全体学生的学与姓名
sele sno,sname from student
2:查询全体学生的姓名、学号、所在系。
sele sno,sname,sdept from student
3:查询全体学生的详细记录
sele * from student
4:查询全体学生的姓名及出生年份
sele sno,sage from student
5:查询全体学生的姓名,出生年份及所在系,要用小写字母表示系名
6:查询选修了课程的学生学号
sele sno,cno from sc
7:查询选修了课程的学生姓名
sele distinct sname from student,sc where student.sno=sc.sno
二:条件查询:
常用的查询条件
查询条件谓词
比较=,<,>,>=,<=,!=,<>,!>,!<;
not+上述比较运算符
确定范围Between and,Not between And,
确定集合IN,not IN
字符匹配Like,Not Like
空值IsNull,ISNOTNULL
多重条件AND,OR
1:查询计算机系全体学生的姓名
sele sname from student where sdept=”CS”
2:查询所有年龄在20岁以下的学生姓名及其年龄
sele sname,sage from student where sage<20
3:查询考试成绩有不及格的学生的学号
sele student.sno from student,sc where student.sno=sc.sno and grade<60
4:查询年龄在20到23间的学生的姓名,系别及年龄
sele sname,sdept,sage from student where sage between 20 and 23
5: 查询年龄不在20到23间的学生的姓名,系别及年龄
sele sname,sdept,sage from student where sage not between 20 and 23
6:查询信息系(IS),数学系(MA)和计算机系(CS)学生的姓名和性别
sele sname,ssex from student where sdept in("IS","MA","CS")
7:查询不是信息系(IS),数学系(MA)和计算机系(CS)学生的姓名和性别
sele sname,ssex from student where sdept not in("IS"
随着B/S模式应用开发的发展,使用这种模式编写应用程序的程序员也越来越多。但是由于程序员的水平及经验也参差不齐,相当大一部分程序员在编写代码的时候,没有对用户输入数据的合法性进行判断,使应用程序存在安全隐患。用户可以提交一段数据库查询代码,根据程序返回的结果,获得某些他想得知的数据,这就是所谓的SQL Inj ......