java下常用SQL语句整理
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字,全部文档内容请下载后查看。喜欢就下载吧 ……
相关推荐:
- [高中教育]电子线路高频非线性部分2.1
- [高中教育]中班美术活动——我的小手
- [高中教育]常用三极管参数大全
- [高中教育]计算机常见故障及解决办法
- [高中教育]风机基础环水平度控制方法探讨
- [高中教育]机械安全工程(专升本)阶段性作业3
- [高中教育]2009年安徽省高考语文考试说明刍议
- [高中教育]unit5 let's eat公开课教案设
- [高中教育]计算机网络原理课后习题答案
- [高中教育]2016-2022年中国新能源市场研究与投资
- [高中教育]2015-2020年中国会议行业市场评估及投
- [高中教育]经销商大会峰会主持人串词开场白
- [高中教育]2014新版北师大数学三年级上册小熊购物
- [高中教育]七年级第一学期体育与健康全套教案
- [高中教育]第三章:国际金融市场
- [高中教育]六年级下册数学单元测试-2.比例 北师大
- [高中教育]2016年上海海事大学法学院624刑法之《
- [高中教育]中国碳化钙产业竞争现状及未来五年投资
- [高中教育]网络时代,我们怎么玩
- [高中教育]圆锥曲线——高中数学基础知识与典型例
- 高集医院世界艾滋病宣传日活动方案
- 苏教版六年级英语上册期末试卷含答案
- 全民枪战生化英雄模式幽灵怎么玩 生化
- 灿烂的宋元文化一导学案
- 第2章货币资金与应收款项
- 北师大版八年级下册数学第三章《分式》
- 浅析高分子材料成型加工技术
- 华南理工大学2013年度共青团先进集体及
- 教师资格科目二小学教案模板(共合集)
- 工程扩建可研报告
- 中华人民共和国海事局2014年度招录公务
- 提高农村小学生作文能力的教学尝试
- 徒手心肺复苏术操作步骤
- 毛概试题库7-15章
- 2014-2015学年度(上)初中班主任工作计
- 企业驾驶员安全生产责任书
- 第07章 不等式测试题-2016年高考文科数
- 医疗器械经营企业工作程序
- 考研英语必背36篇_彩版_精华
- 初中9月13-15假期作业 (1)




