教学文库网 - 权威文档分享云平台
您的当前位置:首页 > 文库大全 > 高中教育 >

java下常用SQL语句整理

来源:网络收集 时间:2025-12-29
导读: jAVA下常用SQL语句整理。 Java下常用SQL语句整理 说明:数据定义部分可以通过相应数据库的图形界面数据管理工具完成,下面只作数据查询和数据更新的相关知识整理。 一、数据查询 1、单表查询: 1)查询指定列: SELECT Sname,Sage FROM Student //查询表Stud

jAVA下常用SQL语句整理。

Java下常用SQL语句整理

说明:数据定义部分可以通过相应数据库的图形界面数据管理工具完成,下面只作数据查询和数据更新的相关知识整理。

一、数据查询

1、单表查询:

1)查询指定列:

SELECT Sname,Sage FROM Student //查询表Student的姓名和年龄

2)查询全部列:

SELECT * FROM Student //查询表Student全部项目

3) 查询经过计算的值:

SELECT Sname,2011-Sage FROM Student //查询姓名和出生年份

4)消除取值重复的行(DISTINCT)

SELECT DISTINCT courseNum FROM student //使表student的courseNum项目下的数据两两不相同

5)查询满足条件的元组

①比较大小(=、>、<、>=、<=、!=、<>、!<、NOT+左边的比较符): SELECT sName FROM Student WHERE score='90'; //查询分数等于90的学生

SELECT sName FROM Student WHERE score!<'90'; //查询分数不低于90的学生

② 确定范围(BETWEEN……AND……和NOT BETWEEN……AND……) : SELECT Snun,courseNum,sName FROM student WHERE score NOT BETWEEN 70 AND 80;

③确定集合(IN和NOT IN):

SELECT Snun,sName,score FROM student WHERE courseNum IN ('A1100','A1200');

④字符匹配(LIKE和NOT LIKE,%,_):

SELECT * FROM student WHERE Snum LIKE '09032401';//查询学号为09032401的学生所有信息,后面部分等价于WHERE Snum='09032401'.

SELECT sName FROM student WHERE sName LIKE '刘%';//查刘姓学生 SELECT sName FROM student WHERE sName LIKE '刘_ _';//查姓刘且名字是两个字的学生姓名,注意一个汉字占两个字符,所以这里要后跟两个_. ⑤涉及空值的查询(NULL和NOT NULL):

SELECT sName FROM student WHERE grade is NULL;//查分数是空值的

jAVA下常用SQL语句整理。

学生姓名

⑥多重条件查询(AND或者OR):

SELECT sName FROM student WHERE courseNum='A1300' AND grade>80;//查分数在80以上并且选修了课程A1300的学生姓名

▲注释:其实IN的功能可以用AND和OR的多重条件组合来代替。

6)ORDER BY 子句(对查询结果按照一个或多个属性进行升序或降序排列) SELECT Snum,score FROM student WHERE courseNum='A1300' ORDER BYscore DESC; //查询结果按照分数的降序排列

SELECT * FROM student ORDER BY score, Snum ASC;

//查询结果按照分数的升序排列,分数相同的按照学号升序排列

7)聚集函数

▲说明:聚集函数主要包括:

COUNT([DISTINCT│ALL]*) 统计元组个数

COUNT([DISTINCT│ALL] 列名) 统计一列中值的个数 SUM([DISTINCT│ALL] 列名) 统计一列值的总和 AVG([DISTINCT│ALL] 列名) 计算一列值的平均值 MAX([DISTINCT│ALL] 列名) 求一列值中的最大值 MIN([DISTINCT│ALL] 列名) 求一列值中的最小值 ▲注释:如果指定DISTINCT短语,表示在计算时取消指定列中的重复值,ALL的意思刚好相反,缺省则表示ALL的意思。

SELECT COUNT(*) FROM student ; //查询学生总人数

SELECT COUNT(DISTINCT courseNum) FROM student ; //查询选修了课程的学生人数

SELECT AVG(score) FROM st WHERE courseNum = 'A1400' ; //查询选修了课程A1400的学生平均成绩

8)GROUP BY 子句(将查询结果按照某一列或多列的值分组,值相等的为一组)

SELECT Snum , COUNT(score) FROM st GROUP BY Snum HAVING COUNT(score)>2 ; //该语句按照分数分组,所有具有相同分数的元组为一组,然后对每一组作用聚集函数COUNT计算人数,并选出人数大于2的组。

▲注释:HAVING用法类似WHERE,HAVING与WHERE的区别在于作用对象不同,WHERE子句作用在基本表或视图,HAVING作用于组。

2、连接查询

1)多表联合查询

SELECT student.Snum,sName ,st.courseNum,tName,score FROM student,teacher,st WHERE student.Snum = st.Snum AND teacher.courseNum = st.courseNum;

//这里是三表联合查询,当要查询的项目不只是在一个表中出现时,需要用WHERE后面的类似等号链接他们相同的组。

jAVA下常用SQL语句整理。

2)复合条件查询

SELECT student.Snum,sName ,st.courseNum,tName,score FROM student,teacher,st WHERE student.Snum = st.Snum AND teacher.courseNum = st.courseNum AND courseNum = 'A1300' AND st.score >79 ;

3)嵌套查询

IN嵌套:

SELECT student.Snum,sName,courseNum,score FROM student,st WHERE courseNum IN (SELECT student.courseNum FROM student WHERE sName = '林可') ;

比较符号嵌套:

SELECT student.Snum,sName,courseNum,score FROM student,st WHERE score> = (SELECT score FROM st WHERE sName = '林可');

ANY谓词:

SELECT student.Snum,sName,courseNum,score FROM student,st WHERE score> ANY (SELECT score FROM st WHERE courseNum = 'A1100');//>ANY表示大于括号中语句所查结果中的某一个值。

ALL谓词:

SELECT student.Snum,sName,courseNum,score FROM student,st WHERE score>=ALL (SELECT score FROM st WHERE courseNum = 'A1100');//>=ALL表示不小于括号中语句所查结果中的所有值。

EXISTS和NOT EXISTS谓词:

SELECT sName FROM student WHERE EXISTS (SELECT * FROM st WHERE Snum = st.Snum AND courseNum = 'A1200') ; //若st中存在这样的元组,它的Snum值等于student.Snum值,并且其courseNum = 'A1200',则取此student.sName放入结果表中。

注释:EXISTS和NOT EXISTS 后面的语句返回值是true或false,如果是true则执行前面的语句操作,否则该语句不被执行。

4)集合查询

▲说明:集合操作主要包括并操作UNION、交操作INTERSECT和差操作EXCEPT。注意,参加集合操作的各查询结果的列数必须相同;对应项的数据类型也必须相同。

SELECT * FROM student WHERE courseNum = 'A1100' UNION SELECT * FROM student WHERE sage<=21 ;

//本查询是求所有选了课程A1100的学生与年龄不大于21岁的学生的并集。使用UNION将多个查询结果合并起来时,系统会自动去掉重复元组。如果要保留重复元组则使用UNION ALL操作符。

SELECT * FROM student WHERE courseNum = 'A1100' INTERSECT SELECT * FROM student WHERE sage<=21 ;

SELECT * FROM student WHERE courseNum = 'A1100' EXCEPT SELECT * FROM student WHERE sage<=21 ;

▲注释:集合查询与嵌套查询可以进行等价转换表示,所达到的功能相同。

jAVA下常用SQL语句整理。

二、数据更新

1、插入数据:

1)插入元组

INSERT INTO student (Snum,sex,sName,courseNum) VALUES ('09032420','男','胡歌','A1300'); //没有出现的属性则会被 …… 此处隐藏:3195字,全部文档内容请下载后查看。喜欢就下载吧 ……

java下常用SQL语句整理.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.jiaowen.net/wenku/129877.html(转载请注明文章来源)
Copyright © 2020-2025 教文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:78024566 邮箱:78024566@qq.com
苏ICP备19068818号-2
Top
× 游客快捷下载通道(下载后可以自由复制和排版)
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能出现无法下载或内容有问题,请联系客服协助您处理。
× 常见问题(客服时间:周一到周五 9:30-18:00)