SQL查询语句例子

合集下载

数据库sql查询语句大全

数据库sql查询语句大全

数据库sql查询语句大全数据库SQL查询语句是用来从数据库中检索数据的命令。

以下是一些常见的SQL查询语句大全:1. SELECT语句,用于从数据库中选择数据。

例如,SELECT FROM 表名;2. WHERE子句,用于过滤数据,只返回满足特定条件的行。

例如,SELECT FROM 表名 WHERE 列名 = '条件';3. ORDER BY子句,用于对结果集按照指定列进行排序。

例如,SELECT FROM 表名 ORDER BY 列名;4. GROUP BY子句,用于对结果集按照指定列进行分组。

例如,SELECT 列名1, 列名2 FROM 表名 GROUP BY 列名1;5. HAVING子句,用于过滤分组后的数据。

例如,SELECT 列名1, COUNT(列名2) FROM 表名 GROUP BY 列名1 HAVING COUNT(列名2) > 10;6. JOIN子句,用于在多个表之间建立关联。

例如,SELECT FROM 表名1 INNER JOIN 表名2 ON 表名1.列名 = 表名2.列名;7. UNION操作符,用于合并两个或多个SELECT语句的结果集。

例如,SELECT 列名1 FROM 表名1 UNION SELECT 列名2 FROM 表名2;8. INSERT INTO语句,用于向数据库表中插入新记录。

例如,INSERT INTO 表名 (列1, 列2) VALUES (值1, 值2);9. UPDATE语句,用于更新数据库表中的记录。

例如,UPDATE 表名 SET 列名 = 值 WHERE 条件;10. DELETE FROM语句,用于从数据库表中删除记录。

例如,DELETE FROM 表名 WHERE 条件;以上是一些常见的SQL查询语句,它们可以帮助用户从数据库中检索、过滤、排序、分组和更新数据。

当然,SQL语言还有很多其他的功能和语法,这些只是其中的一部分。

sql 查询语句实例

sql   查询语句实例

一仓库管理类仓库(仓库号,城市,面积)职工(职工号,仓库号,工资)订购单(订购单号,职工,供应商号,订购时间)供应商(供应商号,供应商名,地址)1.检索在北京的供应商的名称SELECT *FROM 供应商where 地址='北京'2.检索发给供应商S6的订购单号SELECT 订购单号FROM 订购单where 供应商号='S6'3.检索出职工E6发给供应商S6的订购单信息SELECT 订购单号FROM 订购单where 职工号='E6'AND 供应商号='S6'4.检索出向供应商S3发过订购单的职工的职工号和仓库号SELECT 职工.职工号,仓库号FROM 职工,订购单where 职工.职工号=订购单.职工号AND 供应商号='S3'5.检索出目前与S3供应商没有联系的职工信息SELECT 职工.职工号from 职工where 职工.职工号not in (SELECT 职工.职工号FROM 职工,订购单where 职工.职工号=订购单.职工号AND 供应商号='S3')6.检索出目前没有任何订购单的供应商信息。

SELECT *from 供应商where 供应商.供应商号not in (SELECT 供应商号FROM 订购单where 供应商.供应商号=订购单.供应商号)7.检索出和职工E1、E3都有联系的北京的供应商信息。

SELECT *from 供应商where 地址='北京'and 供应商号in (SELECT 供应商号FROM 订购单where 职工号='E1')and 供应商号in (SELECT 供应商号FROM 订购单where 职工号='E3')8.检索出目前和华通电子公司有业务联系的每个职工的工资。

SELECT 职工号,工资from 职工where 职工号in (SELECT 职工号FROM 订购单where 供应商号in (SELECT 供应商号FROM 供应商where 供应商名='华通电子公司'))9.检索出与工资在1220元以下的职工没有联系的供应商的名称。

SQL数据库查询语句范例

SQL数据库查询语句范例

SQ基础查询(一) 选择列表选择列表(select_list)指出所查询列,它可以是一组列名列表、星号、表达式、变量(包括局部变量和全局变量)等构成。

1、选择所有列例如,下面语句显示testtable表中所有列的数据:Select * FROM testtable2、选择部分列并指定它们的显示次序查询结果集合中数据的排列顺序与选择列表中所指定的列名排列顺序相同。

例如:Select nickname,email FROM testtable3、更改列标题在选择列表中,可重新指定列标题。

定义格式为:列标题=列名列名列标题如果指定的列标题不是标准的标识符格式时,应使用引号定界符,例如,下列语句使用汉字显示列标题:Select 昵称=nickname,电子邮件=email FROM testtable4、删除重复行Select语句中使用ALL或DISTINCT选项来显示表中符合条件的所有行或删除其中重复的数据行,默认为ALL。

使用DISTINCT选项时,对于所有重复的数据行在Select返回的结果集合中只保留一行。

5、限制返回的行数使用TOP n [PERCENT]选项限制返回的数据行数,TOP n说明返回n行,而TOP n PERCENT时,说明n是表示一百分数,指定返回的行数等于总行数的百分之几。

例如:Select TOP 2 *FROM testtable Select TOP 20 PERCENT * FROM testtable(二) FROM子句FROM子句指定Select语句查询及与查询相关的表或视图。

在FROM子句中最多可指定256个表或视图,它们之间用逗号分隔。

在FROM子句同时指定多个表或视图时,如果选择列表中存在同名列,这时应使用对象名限定这些列所属的表或视图。

例如在usertable和cityta ble表中同时存在cityid列,在查询两个表中的cityid时应使用下面语句格式加以限定:Select username,citytable.cityid FROM usertable,citytableWhere usertable.cityid=citytable.cityid在FROM子句中可用以下两种格式为表或视图指定别名:表名 as 别名表名别名例如上面语句可用表的别名格式表示为:Select username,b.cityid FROM usertable a,citytable b Where a.cityid=b.cityidSelect不仅能从表或视图中检索数据,它还能够从其它查询语句所返回的结果集合中查询数据。

SQL查询语句大全

SQL查询语句大全

数据库查询语句大全部分一:Student(Sno,Sname,Sage,Ssex)SC(Cno,Sno,Grade)Course(ame,Cpno,Ccredit,Teacher)1.查询w老师教授的课程和课程号2.查询年纪大于23岁的男生信息3.查询至少选修W老师的一门课程的女生Answer:a)select amefrom coursewhere teacher=’w’b)select *from studentwhere Ssex=’男’ and Sage > 23c)方法一:select snamefrom student,sc,coursewhere student.Ssex=’女’and student.Sno=SC.snoand o=oand course.teacher=’w’方法二:Select snamefrom studentwhere Ssex=’女’ and son in(select sno from sc where cno in(select cno from course where teacher=’w’))部分二:Student(Sno,Sname,Sage,Ssex)SC(Cno,Sno,Grade)Course(ame,Cpno,Ccredit,Teacher)1.统计所有学生选修的课程门数2.统计每门课程选修的人数3.求w老师所教授的每门课程的平均成绩和总人数4.统计选修课程2的同学的平均成绩5.统计每门课程的学生人数(要求超过2人才统计)要求输出课程号和选修人数,结果按照人数的降序排序,人数相同的话按照课程号升序排序6.查询姓名以王开头的所有学生7.查询学号比王开头的所有学生大,年纪也比他大的学生8.找出年纪大于女生平均年纪的男生9.找出在SC表没有成绩,但是在Student中存在的学生Answer:1)Select count (dinstinct cno) from SC //distinct获取不重复字段2)Select count (sno) as 选修数, cnofrom scgroup by cno3)Select count (SC.sno), o, A VG(grade)from SCwhere o=o and course.teacher=’w’ group by o4)Select avg(grade) from SC where cno=’2’5)Select cno,count(sno) from SC group by cnohaving count(sno) >2 order by 2 desc, 16)Select * from student where Sname like ‘王%’7)Select * from student where cast(sno as int (10))>all //cast强制转换类型(select cast (sno as int (10) ) from student where sname like ‘王%’)and sage>all(select Sage from student where Sname like ‘王%’)8)Select * from student where Ssex=’男’and Sage>(select avg(Sage) from whereSsex=’女’)9)Select * from student where sno not in(select sno from SC) or sno in (select snofrom SC where grade is null)//更正后Student(Sno,Sname,Sbirth,Ssex)SC(Cno,Sno,Grade)Course(ame,Cpno,Ccredit,Teacher)部分三:1.查询选修总学分在10学分以下的学生姓名2.查询各门课程的最高成绩的学生姓名及其成绩3.查询选修20040744009号学生所选修的全部课程的学生学号(课本110页)4.查询与‘曾福德‘在同一个系学生的学号、姓名和系别5.查询其他系中比电子工程系某一学生年龄小的学生姓名和年龄1)Select SC.sno, sum(course.credit) as 学分from SC,Coursewhere o=ogroup by sc.snohaving sum(course.credit)<10 //sum求和count统计次数或:Select sname,sno from student where sno in(select sc.sno from sc,coursewhere o=o group by sc.sno having sum(course.Credit)<10)问题:如何简化,还要显示总学分?把内查询设计为视图chengji_10就可以或:select sc.snofrom sc,coursewhere o=o group by sc.sno having sum(course.Credit)<10接着直接用:select s.sname,s.sno,cj.fen from student as s,chengji_10 as cjwhere s.sno = cj.sno还可以显示总学分。

sql经典查询语句

sql经典查询语句

sql经典查询语句查询:select * from table1 where ⼯资>2500 and ⼯资<3000 //查找⼀个⼯资区间select 姓名 from table1 where 性别='0' and ⼯资='4000' //查找性别和⼯资的条件select * from table1 where not ⼯资= 3200 //查找⼯资不等于3200的select * from table1 order by ⼯资desc //将⼯资按照降序排列select * from table1 order by ⼯资 asc //将⼯资按照升序排列select * from table1 where year(出⾝⽇期)=1987 //查询table1 中所有出⾝在1987的⼈select * from table1 where name like '%张' /'%张%' /'张%' //查询1,⾸位字‘张’3,尾位字‘张’2,模糊查询select * from table1 order by money desc //查询表1按照⼯资的降序排列表1 (升序为asc)select * from table1 where brithday is null //查询表1 中出⾝⽇期为空的⼈select * into table2 from table3 //将表3中的所有数据转换成表2 (相当于复制)删库和建库use 数据库(aa) //使⽤数据库aacreate bb(数据库) //创建数据库bbcreate table table3 ( name varchar(10),sex varchar(2),money money, brithday datetime) //创建⼀个表3中有姓名,性别,⼯资,出⾝⽇期(此表说明有四列)insert into table3 values ('张三','男','2500','1989-1-5') //在表中添加⼀⾏张三的记录alter table table3 add tilte varchar(10) //向表3 中添加⼀列“title(职位)”alter table table3 drop column sex //删除table3中‘性别’这⼀列drop database aa //删除数据库aadrop table table3 //删除表3delete * from table3 //删除table3 中所有的数据,但table3这个表还在delete from table1 where 姓名='倪涛' and ⽇期 is nulldelete from table1 where 姓名='倪涛' and ⽇期='1971'更改库表的数据update table3 set money=money*1.2 //为表3所有⼈⼯资都增长20%update table3 set money=money*1.2 where title='经理' //为表3中“职位”是经理的⼈⼯资增长20%update table1 set ⼯资= 5000 where 姓名='孙⼋' //将姓名为孙⼋的⼈的⼯资改为5000update table1 set 姓名='敬光' where 姓名='倪涛' and 性别=1 //将性别为男和姓名为倪涛的⼈改为敬光经典查询语句之⼆1显⽰系部编号为03的系部名称Select departname From department Where departno=’03’2.查询系部名称中含有'⼯程'两个字的系部的名称。

sql条件查询语句的简单实例

sql条件查询语句的简单实例

今天在配置sqlserver代理服务器的计划任务的时候发现了日志中提示这个sql尚未定义空闲cpu条件onidle作业计划将不起任何作用信息导致无法执行计划任务那么可以按照下面的方法解决即可
sql条 件 查 询 语 句 的 简 单 实 例
复制代码 代码如下:
//创建成绩表 create tabl result(stu_id varchar2(20) not null, china number(9,2) null, math number(9,2) null, english number(9,2) null );
//插入数据 insert into result values('0001',60,20,80); insert into result values('0002',80,60,80); insert into result values('0003',20,85,80); select *from result;
//条件查询 select stu_id,(case
when china>80 then '优秀' when china>=60 then '及格' when china<60 then '不及格' end) as 语文 , (case when math>80 then '优秀' when math>=60 then '及格' when math<60 then '不及格' end )as 数学 , (case when english>80 then '优秀' when english>=60 then '及格' when english<60 then '不及格' end) as 英语 from result

数据库SQL查询语句

数据库SQL查询语句

一、简单查询语句1. 查看表结构SQL>DESC emp;2. 查询所有列SQL>SELECT * FROM emp;3. 查询指定列SQL>SELECT empmo, ename, mgr FROM emp;SQL>SELECT DISTINCT mgr FROM emp; 只显示结果不同的项4. 查询指定行SQL>SELECT * FROM emp WHERE job='CLERK';5. 使用算术表达式SQL>SELECT ename,sal*13+nvl(comm,0) FROMemp;nvl(comm,1)的意思是,如果comm中有值,则nvl(comm,1)=comm; comm中无值,则nvl(comm,1)=0。

SQL>SELECT ename, sal*13+nvl(comm,0) year_sal FROM emp; (year_sal为别名,可按别名排序)SQL>SELECT * FROM emp WHERE hiredate>'01-1月-82';6. 使用like操作符(%,_)%表示一个或多个字符,_表示一个字符,[charlist]表示字符列中的任何单一字符,[^charlist]或者[!charlist]不在字符列中的任何单一字符。

SQL>SELECT * FROM emp WHERE ename like 'S__T%';7. 在where条件中使用InSQL>SELECT * FROM emp WHERE job IN ('CLERK','ANAL YST');8. 查询字段内容为空/非空的语句SQL>SELECT * FROMemp WHERE mgr IS/IS NOT NULL;9. 使用逻辑操作符号SQL>SELECT * FROM emp WHERE (sal>500 or job='MANAGE') and ename like 'J%';10. 将查询结果按字段的值进行排序SQL>SELECT * FROM emp ORDER BY deptno, sal DESC; (按部门升序,并按薪酬降序)二、复杂查询1. 数据分组(max,min,avg,sum,count)SQL>SELECT MAX(sal),MIN(age),A VG(sal),SUM(sal) from emp;SQL>SELECT * FROM emp where sal=(SELECT MAX(sal) from emp));SQL>SELEC COUNT(*) FROM emp;2. group by(用于对查询结果的分组统计)和having子句(用于限制分组显示结果)SQL>SELECT deptno,MAX(sal),A VG(sal) FROM emp GROUP BY deptno;SQL>SELECT deptno, job, A VG(sal),MIN(sal) FROM emp group by deptno,job having A VG(sal)<2000;对于数据分组的总结:a. 分组函数只能出现在选择列表、having、order by子句中(不能出现在where中)b. 如果select语句中同时包含有group by, having, order by,那么它们的顺序是group by, having, order by。

sql交叉查询语句

sql交叉查询语句

sql交叉查询语句交叉查询是一种常用的SQL查询技术,用于在多个表之间进行关联查询。

它可以通过将多个表的数据按照某些条件进行匹配,从而得到符合条件的结果集。

下面将列举10个符合要求的SQL交叉查询语句,并对其进行解释和说明。

1. 查询订单和客户信息```SELECT orders.order_id, customers.customer_nameFROM ordersJOIN customers ON orders.customer_id = customers.customer_id;```这个查询语句通过订单表和客户表之间的关联,将订单ID和客户名称进行匹配,从而得到订单和客户的对应关系。

2. 查询员工和部门信息```SELECT employees.employee_name, departments.department_nameFROM employeesJOIN departments ON employees.department_id = departments.department_id;```这个查询语句通过员工表和部门表之间的关联,将员工姓名和部门名称进行匹配,从而得到员工和部门的对应关系。

3. 查询商品和供应商信息```SELECT products.product_name, suppliers.supplier_name FROM productsJOIN suppliers ON products.supplier_id = suppliers.supplier_id;```这个查询语句通过商品表和供应商表之间的关联,将商品名称和供应商名称进行匹配,从而得到商品和供应商的对应关系。

4. 查询学生和课程信息```SELECT students.student_name, courses.course_name FROM studentsJOIN courses ON students.course_id = courses.course_id;```这个查询语句通过学生表和课程表之间的关联,将学生姓名和课程名称进行匹配,从而得到学生和课程的对应关系。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

数据表的查询(select)select 字段列表[as 别名], * from 数据表名[where 条件语句][group by 分组字段][order by 排序字段列表desc][LIMIT startrow,rownumber]1、Select 字段列表From 数据表例:①、select id,gsmc,add,tel from haf (* 表示数据表中所有字段)②、select 单价,数量,单价*数量as 合计金额from haf (As 设置字段的别名)2、Select …from …Where 筛选条件式筛选条件式:①、字符串数据:select * from 成绩单Where 姓名='李明'②、万用字符:select * from 成绩单Where 姓名like '李%'select * from 成绩单Where 姓名like '%李%'select * from 成绩单Where 姓名like '%李_'③、特殊的条件式:⑴= / > / < / <> / >= / <=⑵AND(逻辑与) OR(逻辑或) NOT(逻辑非)⑶Where 字段名称in(值一,值二)⑷Where 字段名称Is Null / Where 字段名称Is Not Null3、Select …from …group by 字段SQL函数:SELECT sex,count(id) as women from `user` group by 'sex';函数名描述函数名描述AVG平均值Count计数MAX最大值MIN最小值Sum求和4、Select …from …Order by 字段列表desc(倒,如果直接写为顺序)5、Select …from …LIMIT ".$start_rowno.",".($pagesize+1)第二节SQL语句实例应用数据库说明:student(学生表):stdid int(11) id号son char(5) 学号sname char(20) 姓名ssex tinyint(1) 性别sage char(3) 年龄sdept char(20) 所在系course(课程表):couid int(11) id号cno char(5) 课程号cname char(20) 课程名cpno char(6) 选修课号ccredit char(50) 学分sc(学生选课表):scid int(11) id号cno char(5) 课程号grade float 成绩sno char(5) 学号单表查询:一、选择表中的若干字段:查询指定列:1、查询全体学生的学号与姓名;select son,sname from student2、查询全体学生的姓名、学号、所在系;select sname,son,sdept from student3、查询全体学生的详细记录;select * from student查询经过计算的值:4、查全体学生的姓名及其出生年份select sname,year(now())-sage as '出生年份' from student5、查询全体学生的姓名、出生年份和所有系,要求用大(小)写字母表示所有系名select sname as '姓名','出生与',year(now())-sage as '出生年份',UPPER(sdept) as '系别' from studentselect sname as '姓名','出生与',year(now())-sage as '出生年份',lower(sdept) as '系别' from student二、选择表中的若干记录:消除取值重复的行:6、查询选修了课程的学生学号select distinct sno from sc查询满足条件的记录:比较大小:7、查询计算机全体学生的名单select sname from student where sdept='cs'8、查询所有年龄在20岁以下的学生姓名及其年龄select sname,sage from student where sage<209、查询考试成绩小于90分的学生的学号select distinct sno from sc where grade<90确定范围:10、查询年龄在18-20岁之间的学生的姓名、系别和年龄。

select sname,sdept,sage from student where sage between 18 and 2011、查询年龄不在19-20岁之间的学生的姓名、系别和年龄。

select sname,sdept,sage from student where sage not between 19 and 20确定集合:12、查询信息系(is)、数学系(ma)和计算机科学系(cs)学生的姓名和性别。

select sname,ssex from student where sdept in('is','ma','cs')13、查询不是信息系(is)、数学系(ma)的学生的姓名、系别和年龄。

select sname,ssex from student where sdept not in('is','ma')字符匹配(like '<匹配串>' %代表任意长度(长度可以为0)的字符串; _代表任意单个字符,汉字得用两个"__"):14、查询学号为95001的学生的详细情况select * from student where son like '95001'15、查询所有姓名李的学生的姓名、学号和性别。

select sname,son,ssex from student where sname like '李%'16、查询姓名是两个字学生的姓名、学号和性别。

select sname,son,ssex from student where sname like '____'17、查询所有不姓李的学生姓名。

select sname from student where sname not like '李__'涉及空值的查询:18、某些学生选修课程后没有参加考试,所以有选课记录,但没有考试成绩,查询缺少成绩的学生的学号和相应的课程号。

select sno,cno from sc where grade is null19、查询所有有成绩的学生学号和课程号。

select sno,cno from sc where grade is not null多重条件查询(and or):20、查询计算机系年龄在20岁的学生姓名。

select sname from student where sdept='cs' and sage=2021、查询信息系(is)、数学系(ma)和计算机科学系(cs)学生的姓名和性别。

select sname,ssex from student where sdept='is' or sdept='ma' or sdept='cs'三、对查询结果排序:22、查询选修了3号课程的学生的学号及其成绩,查询结果按分数的降序排列。

select sno,grade from sc where cno='3' order by grade desc23、查询全体学生情况,查询结果按所在系的系号升序排列,同一系中的学生按年龄降序排列。

select * from student order by sdept,sage desc四、使用集函数:24、查询学生总人数。

select count(*) as '总人数' from student25、查询选修了课程的学生人数。

select count(distinct sno) as '人数' from sc26、计算1号课程的学生平均成绩select format(avg(grade),2) as '平均成绩' from sc where cno='1'27、查询选修1号课程的学生最高分数。

select max(grade) from sc where cno='1'五、对查询结果分组:28、求各个课程号及相应的选课人数。

select cno as '课程号',count(sno) as '人数' from sc group by cno29、查询选修了3门以上课程的学生学号。

select sno from sc group by sno having count(*)>2注:where 子句与having 短语的区别在于作用对象不同,where 子句作用于基本表或视图,从中选择满足条件的记录,having短语作用于组,从中选择满足条件的组。

多表查询同时查询两个以上的表,称为连接查询。

等值连接:当连接运算符为=时,为等值连接。

1、查询每个学生及其选修课程的情况(等值连接)。

select student.*,sc.* from student,sc where student.son=sc.sno自然连接:在等值连接中把目标列中重复的属性列去掉。

2、查询每个学生及其选修课程的情况(自然连接)。

select student.son,sname,ssex,sage,sdept,cno,grade from student,sc where student.son=sc.sno自身连接:连接操作不仅可以在两个表之间进行,也可以是一个表与其自己进行连接。

3、查询每一门课的间接先修课。

select o,b.cpno,ame from course a,course b where a.cpno=o复合条件连接:4、查询选修2号课程且成绩在90分以上的所有学生。

select a.son,sname from student a,sc b where a.son=b.sno ando='2' and b.grade>905、查询每个学生的学号、姓名、选修的课程名及成绩。

相关文档
最新文档