常用数据库语言

原创 2015年11月18日 18:01:23

        我们在软件开发过程中,或多或少都会接触到数据库的开发,下面我就以学生信息表为例表把常用的数据库的查询语言进行一个总结:

        1、查询全体学生的学号、姓名和年龄:select sno,sn ,age from s

        2、查询学生的全部信息:select * from s

        3、查询选修了课程的学生的学号:select distinct sno from sc

        4、查询全体学生的姓名、学号和年龄:select sn name, sno ,age from s或select sn as name, sno, age from s

        条件查询:需要用where子句指定查询条件

                            条件部分:1)列名 2)比较运算符 3)列名(常数)

                            常用的比较运算符:

                                    比较大小:=,>,<,>=,<=,!=,<>

                                    多重条件:and,or,not

                                    确定范围:between and

                                    确定集合:in

                                    字符匹配:like

                                    空值:is null       

       5、查询选修课程号为'c1'的学生的学号和成绩:select sno, score from sc where cno='c1'

       6、查询成绩高于85分的学生的学号、课程号和成绩:select sno, cno, score from sc where score>85

       多重条件查询:where子句指定一个以上的查询条件,需使用逻辑运算符and、or、not,将其连接成复合逻辑表达式,优先级由高到低:not、and、or。

       7、查询选修c1或c2且分数大于等于85分学生的学号、课程号和成绩:select sno, cno, score from sc where (cno='c1' or cno = 'c2')and(score>=85)

       确定范围:

       8、查询工资在1000元—1500元之间教师的教师号、姓名及职称:select tno, tn, prof from t where scal between 1000 and 1500

       确定集合:利用“in”操作可以查询属性值属于指定集合的元组

       9、查询选修c1或c2的学生的学号、课程号和成绩:select sno, cno, score from sc where cno in ('c1','c2')或select sno, cno, score from sc where cno='c1' or cno='c2'

       利用“not in”可以查询指定集合外的元组

       10、查询没有选修c1,也没有选修c2的学生的学号、课程号和成绩:select sno, cno, score from sc where cno not in ('c1','c2')或select sno, cno, score from sc where (cno<>'c1') and (cno<>'c2')

       部分匹配查询:当不知道完全精确的值时,用户还可以使用like或not like进行部分匹配查询(模糊查询)

                                   like用法:<属性名> like <字符串常量>

       字符串中可以含有的通配符:

                                   %:代表0个或多个字符串  'ab%':'ab'后可接任意字符串

                                   _:代表一个字符  'a_b':'a'与'b'之间可有一个字符

                                  [ ]:表示在某个范围的字符  [0~9]:0~9之间的字符

                                  [^ ]:表示不在某个范围内的字符  [^0~9]:不在0~9之间的字符

       11、查询所有姓张的教师的教师号和姓名:select tno, tn from t where tn like '张%'

       12、查询姓名中第二个汉字是“力”的教师号和姓名:select tno, tn from t where tn like '_力%'

        空值查询:某个字段没有值称之为具有空值(null)

        13、查询没有考试成绩的学生的学号和相应课程号:select sno, cno from sc where score is null

        常用库函数及统计汇总查询:

                 按列计算平均值:avg

                 按列计算值的总和:sum

                 求一列中的最大值:max

                 求一列中的最小值:min

                 按列值统计个数:count

         14、求学号为s1的学生总分和平均分:select sum(score) as totalscore, avg(score) as avgscore from sc where (sno='s1')

         15、求选修c1号课程的最高分、最低分及它们之间相差的分数:select max(score) as maxscore, min(score) as minscore,max(score)-min(score) as diff from sc where (cno='c1')

         16、求计算机系学生的总数:select count(sno) from s where dept='计算机'

         17、求学校中共有多少个系:select count(distinct dept) as deptnum from s

         18、统计有成绩学生的人数:select count(score) from sc

         19、利用特殊函数count(*)求计算机系学生的总数:select count(*) from s where dept='计算机'

          分组查询:group by子句可将查询结果按属性列或属性列组合在行的方向上进行分组,每组在属性列或属性列组合上具有相同的值

          20、查询每个教师的教师号及其任课的门数:select tno count(*) as c_num from tc group by tno

          若在分组后还要按照一定条件筛选,则需使用having子句

          21、查询选修两门以上(含两门)课程的学生的学号和选课门数:select sno, count(*) as sc_num from sc group by sno having (count(*)>=2)

          查询的排序:当需要对查询结果排序时,应使用order by子句(出现在其他子句后),排序方式可以指定:降序desc、升序asc(默认升序)

         22、查询选修c1的学生学号和成绩,并按成绩降序排列:select sno, score from sc where (cno='c1') order by score desc

         23、查询选修c2、c3、c4或c5课程学生的学号、课程号和成绩,查询结果按学号升序排列,学号相同时再按成绩降序排列:

                 select sno, cno, score from sc where (cno in ('c2', 'c3', 'c4', 'c5')) order by sno, score desc

         24、求选修在三门以上(含三门)且各门课程均及格的学生及其总成绩,查询结果按总成绩降序排列:select sno, sum(score) as tatalscore from sc where (score>=60) group by sno having (count(*)>=3) order by sum(score) desc

         先总结到这,后续再做补充。

版权声明:本文为博主原创文章,转载请注明出处。

常用数据库语句汇总

 --建表语句 /*  create table userInfo(     id number(6,0),     username varchar2(20),     userpwd...
  • xiong_1234
  • xiong_1234
  • 2017年03月31日 15:58
  • 1163

常用的数据库查询语言

要求: 1)查出“计算机系”的所有学生信息。  2)查出“韩顺平”所在的院系信息。 3)查出在“行政楼”办公的院系名称。 4)查出男生女生各多少人。 5)查出人数最多的院系信息。 6)查出人数最多的院...
  • qq616252396
  • qq616252396
  • 2016年08月23日 12:48
  • 1079

数据库语言

sql 语言主要包括四大部分 1、DDL(data definition language)数据定义语言,用于管理和定义数据对象,包括数据库、数据表等,如create,drop,alter 2、D...
  • sweet_fjx
  • sweet_fjx
  • 2013年11月18日 13:42
  • 380

数据库语言分类DDL DCL DML 知多少?

DML(Data Manipulation Language): 它们是SELECT、UPDATE、INSERT、DELETE,就象它的名字一样,这4条命令是用来对数据库里的数据进行操...
  • u010870518
  • u010870518
  • 2015年09月12日 13:04
  • 2518

数据库中常用的sql语句

SQL是目前使用最为广泛的数据库语言之一。这里,我总结了在数据库上,用SQL语言对数据排序、过滤和分组,以及表、视图、联结、子查询、游标、存储过程和触发器等内容。 1.检索数据 SELECT prod...
  • American199062
  • American199062
  • 2016年05月21日 18:53
  • 4831

数据库语言分类

关系数据库的语言分三类,它们是(数据描述语言DDL)、(数据操纵语言DML)和(数据控制语言DCL),而SQL是(集DDL、DML、DCL为一体)的标准关系数据库语言。 DDL is Data ...
  • u014801852
  • u014801852
  • 2014年04月20日 18:22
  • 620

修改数据库语言设置

ALTER DATABASE SecretBox SET SINGLE_USER WITH ROLLBACK IMMEDIATE  go ALTER DATABASE SecretBox COLL...
  • nanfeiyannan
  • nanfeiyannan
  • 2015年08月24日 10:16
  • 686

QSLite数据库数值加1

UPDATE table_name SET column_name = column_name + 1 WHERE [condition];//column_name为INTEGER类型数据 此外...
  • u010189457
  • u010189457
  • 2016年11月09日 11:04
  • 186

oracle数据库语言

在数据库中,SQL语句本身是不区分大小写的,但是为了增加可读性,通常会将关键字与非关键字 按照大小写区分开来增加可读性 在SQL Developer中,需要连续执行多条SQL语句时,每条语句可以在...
  • sinat_36258409
  • sinat_36258409
  • 2017年01月05日 20:33
  • 127

【数据库】PL/SQL自动创建基础sql语句

PL/SQL自动创建SQL语句
  • Dongle_74
  • Dongle_74
  • 2017年03月17日 17:44
  • 446
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:常用数据库语言
举报原因:
原因补充:

(最多只允许输入30个字)