学习SQL例子

合集下载

sql语句大全举例

sql语句大全举例

Everyone has many dreams in their life, but if one of them keeps disturbing you, the rest is just action.勤学乐施积极进取(页眉可删)sql语句大全举例学数据库、JAVA等等课程的时候,都需要学习一些sql语句。

下面特意为大家整理了一些sql语句,希望在大家学习的时候,能帮助到大家。

1、说明:创建数据库CREATE DATABASE database-name2、说明:删除数据库drop database dbname3、说明:备份sqlserver--- 创建备份数据的 deviceUSE masterEXEC sp_addumpdevice disk, testBack,c:\mssql7backup\MyNwind_1.dat--- 开始备份BACKUP DATABASE pubs TO testBack4、说明:创建新表create table tabname(col1type1 [not null] [primary key],col2 type2 [not null],..)根据已有的表创建新表:A:createtable tab_new like tab_old (使用旧表创建新表)B:create table tab_new asselect col1,col2… from tab_old definition only5、说明:删除新表drop table tabname6、说明:增加一个列Alter table tabname addcolumn col type注:列增加后将不能删除。

DB2中列加上后数据类型也不能改变,唯一能改变的是增加varchar类型的长度。

7、说明:添加主键:Alter table tabname add primary key(col)说明:删除主键:Alter table tabname drop primary key(col)8、说明:创建索引:create [unique] index idxname on tabname(col….)删除索引:dropindex idxname注:索引是不可更改的,想更改必须删除重新建。

SQL语句使用经典例子

SQL语句使用经典例子

SQL语句使⽤经典例⼦SQL语句使⽤经典例⼦⼀节、数据表的查询(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';函数名描述函数名描述A VG平均值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 student select 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岁之间的学⽣的姓名、系别和年龄。

增删改查sql例子

增删改查sql例子

增删改查sql例子在 SQL 中,增删改查是最基本的操作。

以下是一些示例:1. 查询 (SELECT)```sqlSELECT FROM students; -- 查询 students 表中的所有数据SELECT name, age FROM students; -- 查询 students 表中的 name 和age 列```2. 插入 (INSERT)```sqlINSERT INTO students (name, age) VALUES ('Tom', 20); -- 在 students 表中插入一条数据```3. 更新 (UPDATE)```sqlUPDATE students SET age = 21 WHERE name = 'Tom'; -- 更新students 表中 name 为 Tom 的行的 age 列```4. 删除 (DELETE)```sqlDELETE FROM students WHERE name = 'Tom'; -- 删除 students 表中name 为 Tom 的行```5. 添加列 (ALTER TABLE ADD)```sqlALTER TABLE students ADD email VARCHAR(100); -- 在 students 表中添加一个名为 email 的新列```6. 删除列 (ALTER TABLE DROP COLUMN)```sqlALTER TABLE students DROP COLUMN email; -- 删除 students 表中的email 列```7. 修改列 (ALTER TABLE MODIFY COLUMN)```sqlALTER TABLE students MODIFY COLUMN age INT(3); -- 将 students 表中的 age 列的数据类型更改为 INT(3)```。

sql 案例

sql 案例

sql 案例SQL(Structured Query Language)是一种用于管理关系型数据库的语言,广泛应用于企业和组织中。

为了更好的理解SQL操作,我们在此介绍几个SQL案例进行分析。

1. 创建表格在SQL中,create table语句用于创建一张表格。

下面是一种常见的create table语句:create table users (id int primary key,name varchar(50),age int,email varchar(100));这条语句将创建一张名为“users”的表格,包括四列:id,name,age和email。

其中,id列是主键,用于保证每一行的唯一性。

2. 插入数据使用insert into语句可以将数据插入到表格中。

下面是一些例子:insert into users (id, name, age, email)values(1,'Tom',18,'***************');insert into users (id, name, age, email)values(2,'Mary',23,'****************');这些语句将向“users”表格中插入两行数据。

每行数据包括四个值,分别对应id,name,age和email列。

3. 查询数据使用select语句可以查询表格中的数据。

下面是一些例子:select * from users;这句语句将返回“users”表格中所有行的数据。

select name, age from users;这句语句将返回“users”表格中所有行的name和age列。

select * from users where age < 20;这句语句将返回“users”表格中所有age列小于20的行数据。

4. 更新数据使用update语句可以更新表格中的数据。

SQL语言范例

SQL语言范例

1.查询XS表中的所有列。

select * from xs2.查询XS表中计算机专业同学的学号、姓名和总学分。

select 学号,姓名,总学分from xswhere 专业='计算机''3.查询XS表中计算机专业同学的学号、姓名和总学分,结果中各列的标题分别指定为number、name和mark。

select 学号 as number,姓名 as name,总学分 as markfrom xswhere 专业='计算机'4.查询XS表中通信工程专业总学分大于等于42的学生情况。

select *from xswhere 专业='通信工程' and 总学分>=425.查询XS表中姓“王”且单名的学生情况。

Select *from xswhere 姓名 like '王_'6.查询XS表中不在1979年出生的学生情况。

select *from xswhere 出生时间<'1979' or 出生时间>'1980'7.查询选修了课程号为101的学生情况。

select *from xswhere 学号 in (select 学号 from xs_kc where 课程号='101')8.查询未选修离散数学的学生情况。

select *from xswhere not exists ( select *from xs_kc,kcwhere xs.学号=xs_kc.学号 and xs_kc.课程号=kc.课程号and kc.课程名='离散数学')9.查询比所有计算机系的学生年龄都大的学生情况select *from xswhere 出生时间<(select min(出生时间)from xswhere 专业='计算机')10.查询选修了全部课程的同学的姓名。

sql 语句经典题目

sql 语句经典题目

sql 语句经典题目SQL(Structured Query Language)是用于管理关系数据库的标准编程语言。

以下是一些经典的 SQL 题目,可以帮助你提高 SQL 技能:1. 学生成绩查询假设有一个学生数据库,包括学生、课程和成绩等信息。

学生表为`students`,包含列 `id`, `name`, 和 `age`。

课程表为 `courses`,包含列`id`, `name`。

成绩表为 `scores`,包含列 `student_id`, `course_id`, 和`score`。

查询每个学生的姓名、年龄和所有课程的成绩。

2. 员工工资查询假设有一个员工数据库,包括员工、部门和工资等信息。

员工表为`employees`,包含列 `id`, `name`, 和 `department_id`。

部门表为`departments`,包含列 `id`, `name`。

工资表为 `salaries`,包含列`employee_id`, `salary`。

查询每个员工的姓名、所属部门和工资。

3. 商品销售统计假设有一个商品销售数据库,包括商品、销售和购买者等信息。

商品表为 `products`,包含列 `id`, `name`, 和 `price`。

销售表为 `sales`,包含列 `product_id`, `seller_id`, 和 `buyer_id`。

查询每种商品的名称、单价和销售数量,并按销售数量降序排列。

4. 电影评分查询假设有一个电影数据库,包括电影、导演和评分等信息。

电影表为`movies`,包含列 `id`, `title`, 和 `director_id`。

导演表为 `directors`,包含列 `id`, `name`。

评分表为 `ratings`,包含列 `movie_id`, 和 `rating`。

查询每个导演所执导的电影的评分,并计算每个导演的平均评分。

5. 博客文章分类假设有一个博客文章数据库,包括文章、类别和作者等信息。

sql例题

sql例题

以下是一些SQL例题:查询学生表中所有学生的姓名和出生年月,并按照出生年月降序排列。

sqlSELECT s_name, s_birth FROM student ORDER BY s_birth DESC;查询平均成绩大于等于60分的同学的学生编号和学生姓名和平均成绩。

sqlSELECT st.s_id, st.s_name, ROUND(AVG(sc.s_score),2) as '平均成绩'FROM student stLEFT JOIN score sc ON sc.s_id = st.s_idGROUP BY st.s_idHAVING AVG(sc.s_score) >= 60;查询同名同姓学生名单,并统计同名人数。

sqlSELECT s_name, COUNT(*) as '同名人数'FROM studentGROUP BY s_nameHAVING COUNT(*) > 1;查询每门课程的课程名称和对应的教师姓名。

vbnetSELECT c_name, t_nameFROM courseINNER JOIN teacher ON course.t_id = teacher.t_id;查询哪些学生没有选课,并显示其学生编号和姓名。

sqlSELECT s_id, s_nameFROM studentWHERE s_id NOT IN (SELECT DISTINCT s_id FROM score);查询选了课程的学生人数。

sqlSELECT COUNT(DISTINCT s_id) as '选课学生人数' FROM score;查询每门课程的课程名称和选课人数。

sqlSELECT c_name, COUNT(s_id) as '选课人数'FROM courseINNER JOIN score ON course.c_id = score.c_idGROUP BY c_name;。

50个常用sql语句实例(学生表_课程表_成绩表_教师表)

50个常用sql语句实例(学生表_课程表_成绩表_教师表)

Student(S#,Sname,Sage,Ssex) 学生表Course(C#,Cname,T#) 课程表SC(S#,C#,score) 成绩表Teacher(T#,Tname) 教师表create table Student(S# varchar(20),Sname varchar(10),Sage int,Ssex varchar(2))前面加一列序号:ifexists(select table_name from information_schema.tableswhere table_name='Temp_Table')drop table Temp_Tablegoselect 排名=identity(int,1,1),* INTO Temp_Table from Studentgoselect * from Temp_Tablegodrop database [ ] --删除空的没有名字的数据库问题:1、查询“”课程比“”课程成绩高的所有学生的学号;select a.S# from (select s#,score from SC where C#='001') a,(select s#,scorefrom SC where C#='002') bwhere a.score>b.score and a.s#=b.s#;2、查询平均成绩大于分的同学的学号和平均成绩;select S#,avg(score)from scgroup by S# having avg(score) >60;3、查询所有同学的学号、姓名、选课数、总成绩;select Student.S#,Student.Sname,count(SC.C#),sum(score)from Student left Outer join SC on Student.S#=SC.S#group by Student.S#,Sname4、查询姓“李”的老师的个数;select count(distinct(Tname))from Teacherwhere Tname like '李%';5、查询没学过“叶平”老师课的同学的学号、姓名;select Student.S#,Student.Snamefrom Studentwhere S# not in (select distinct( SC.S#) from SC,Course,Teacher where SC.C#=Course.C# and Teacher.T#=Course.T# and Teacher.Tname='叶平');6、查询学过“”并且也学过编号“”课程的同学的学号、姓名;select Student.S#,Student.Sname from Student,SC whereStudent.S#=SC.S# and SC.C#='001'and exists( Select * from SC as SC_2 where SC_2.S#=SC.S# and SC_2.C#='002');7、查询学过“叶平”老师所教的所有课的同学的学号、姓名;select S#,Snamefrom Studentwhere S# in (select S# from SC ,Course ,Teacher where SC.C#=Course.C# and Teacher.T#=Course.T# and Teacher.Tname='叶平' group by S# having count(SC.C#)=(select count(C#) from Course,Teacher whereTeacher.T#=Course.T# and Tname='叶平'));8、查询课程编号“”的成绩比课程编号“”课程低的所有同学的学号、姓名;Select S#,Sname from (select Student.S#,Student.Sname,score ,(select score from SC SC_2 where SC_2.S#=Student.S# and SC_2.C#='002') score2 from Student,SC where Student.S#=SC.S# and C#='001') S_2 where score2 <score;9、查询所有课程成绩小于分的同学的学号、姓名;select S#,Snamefrom Studentwhere S# not in (select Student.S# from Student,SC where S.S#=SC.S# and score>60);10、查询没有学全所有课的同学的学号、姓名;select Student.S#,Student.Snamefrom Student,SCwhere Student.S#=SC.S# group by Student.S#,Student.Sname having count(C#) <(select count(C#) from Course);11、查询至少有一门课与学号为“”的同学所学相同的同学的学号和姓名;select S#,Sname from Student,SC where Student.S#=SC.S# and C# in select C# from SC where S#='1001';12、查询至少学过学号为“”同学所有一门课的其他同学学号和姓名;select distinct SC.S#,Snamefrom Student,SCwhere Student.S#=SC.S# and C# in (select C# from SC where S#='001');13、把“SC”表中“叶平”老师教的课的成绩都更改为此课程的平均成绩;update SC set score=(select avg(SC_2.score)from SC SC_2where SC_2.C#=SC.C# ) from Course,Teacher where Course.C#=SC.C# and Course.T#=Teacher.T# and Teacher.Tname='叶平');14、查询和“”号的同学学习的课程完全相同的其他同学学号和姓名;select S# from SC where C# in (select C# from SC where S#='1002') group by S# having count(*)=(select count(*) from SC whereS#='1002');15、删除学习“叶平”老师课的SC表记录;Delect SCfrom course ,Teacherwhere Course.C#=SC.C# and Course.T#= Teacher.T# and Tname='叶平';16、向SC表中插入一些记录,这些记录要求符合以下条件:没有上过编号“”课程的同学学号、、号课的平均成绩;Insert SC select S#,'002',(Select avg(score)from SC where C#='002') from Student where S# not in (Select S# from SC where C#='002');17、按平均成绩从高到低显示所有学生的“数据库”、“企业管理”、“英语”三门的课程成绩,按如下形式显示:学生ID,,数据库,企业管理,英语,有效课程数,有效平均分SELECT S# as 学生ID,(SELECT score FROM SC WHERE SC.S#=t.S# AND C#='004') AS 数据库,(SELECT score FROM SC WHERE SC.S#=t.S# AND C#='001') AS 企业管理,(SELECT score FROM SC WHERE SC.S#=t.S# AND C#='006') AS 英语,COUNT(*) AS 有效课程数, AVG(t.score) AS 平均成绩FROM SC AS tGROUP BY S#ORDER BY avg(t.score)18、查询各科成绩最高和最低的分:以如下形式显示:课程ID,最高分,最低分SELECT L.C# As 课程ID,L.score AS 最高分,R.score AS 最低分FROM SC L ,SC AS RWHERE L.C# = R.C# andL.score = (SELECT MAX(IL.score)FROM SC AS IL,Student AS IMWHERE L.C# = IL.C# and IM.S#=IL.S#GROUP BY IL.C#)ANDR.Score = (SELECT MIN(IR.score)FROM SC AS IRWHERE R.C# = IR.C#GROUP BY IR.C#);19、按各科平均成绩从低到高和及格率的百分数从高到低顺序SELECT t.C# AS 课程号,max(ame)AS 课程名,isnull(AVG(score),0) AS 平均成绩,100 * SUM(CASE WHEN isnull(score,0)>=60 THEN 1 ELSE 0 END)/COUNT(*) AS 及格百分数FROM SC T,Coursewhere t.C#=course.C#GROUP BY t.C#ORDER BY 100 * SUM(CASE WHEN isnull(score,0)>=60 THEN 1 ELSE 0 END)/COUNT(*) DESC20、查询如下课程平均成绩和及格率的百分数(用"1行"显示): 企业管理(),马克思(),OO&UML (),数据库()SELECT SUM(CASE WHEN C# ='001' THEN score ELSE 0 END)/SUM(CASE C# WHEN '001' THEN 1 ELSE 0 END) AS 企业管理平均分,100 * SUM(CASE WHEN C# = '001' AND score >= 60 THEN 1 ELSE 0 END)/SUM(CASE WHEN C# = '001' THEN 1 ELSE 0 END) AS 企业管理及格百分数,SUM(CASE WHEN C# = '002' THEN score ELSE 0 END)/SUM(CASE C# WHEN '002' THEN 1 ELSE 0 END) AS 马克思平均分,100 * SUM(CASE WHEN C# = '002' AND score >= 60 THEN 1 ELSE 0 END)/SUM(CASE WHEN C# = '002' THEN 1 ELSE 0 END) AS 马克思及格百分数,SUM(CASE WHEN C# = '003' THEN score ELSE 0 END)/SUM(CASE C# WHEN '003' THEN 1 ELSE 0 END) AS UML平均分,100 * SUM(CASE WHEN C# = '003' AND score >= 60 THEN 1 ELSE 0 END)/SUM(CASE WHEN C# = '003' THEN 1 ELSE 0 END) AS UML及格百分数,SUM(CASE WHEN C# = '004' THEN score ELSE 0 END)/SUM(CASE C# WHEN '004' THEN 1 ELSE 0 END) AS 数据库平均分,100 * SUM(CASE WHEN C# = '004' AND score >= 60 THEN 1 ELSE 0 END)/SUM(CASE WHEN C# = '004' THEN 1 ELSE 0 END) AS 数据库及格百分数FROM SC21、查询不同老师所教不同课程平均分从高到低显示SELECT max(Z.T#) AS 教师ID,MAX(Z.Tname) AS 教师姓名,C.C# AS 课程ID,MAX(ame) AS 课程名称,AVG(Score) AS 平均成绩FROM SC AS T,Course AS C ,Teacher AS Zwhere T.C#=C.C# and C.T#=Z.T#GROUP BY C.C#ORDER BY AVG(Score) DESC22、查询如下课程成绩第名到第名的学生成绩单:企业管理(),马克思(),UML (),数据库()[学生ID],[学生姓名],企业管理,马克思,UML,数据库,平均成绩SELECT DISTINCT top 3SC.S# As 学生学号,Student.Sname AS 学生姓名,T1.score AS 企业管理,T2.score AS 马克思,T3.score AS UML,T4.score AS 数据库,ISNULL(T1.score,0) + ISNULL(T2.score,0) + ISNULL(T3.score,0) + ISNULL(T4.score,0) as 总分FROM Student,SC LEFT JOIN SC AS T1ON SC.S# = T1.S# AND T1.C# = '001'LEFT JOIN SC AS T2ON SC.S# = T2.S# AND T2.C# = '002'LEFT JOIN SC AS T3ON SC.S# = T3.S# AND T3.C# = '003'LEFT JOIN SC AS T4ON SC.S# = T4.S# AND T4.C# = '004'WHERE student.S#=SC.S# andISNULL(T1.score,0) + ISNULL(T2.score,0) + ISNULL(T3.score,0) + ISNULL(T4.score,0)NOT IN(SELECTDISTINCTTOP 15 WITH TIESISNULL(T1.score,0) + ISNULL(T2.score,0) + ISNULL(T3.score,0) + ISNULL(T4.score,0)FROM scLEFT JOIN sc AS T1ON sc.S# = T1.S# AND T1.C# = 'k1'LEFT JOIN sc AS T2ON sc.S# = T2.S# AND T2.C# = 'k2'LEFT JOIN sc AS T3ON sc.S# = T3.S# AND T3.C# = 'k3'LEFT JOIN sc AS T4ON sc.S# = T4.S# AND T4.C# = 'k4'ORDER BY ISNULL(T1.score,0) + ISNULL(T2.score,0) +ISNULL(T3.score,0) + ISNULL(T4.score,0) DESC);23、统计列印各科成绩,各分数段人数:课程ID,课程名称,[100-85],[85-70],[70-60],[ <60]SELECT SC.C# as 课程ID, Cname as 课程名称,SUM(CASE WHEN score BETWEEN 85 AND 100 THEN 1 ELSE 0 END) AS [100 - 85],SUM(CASE WHEN score BETWEEN 70 AND 85 THEN 1 ELSE 0 END) AS [85 - 70],SUM(CASE WHEN score BETWEEN 60 AND 70 THEN 1 ELSE 0 END) AS [70 - 60],SUM(CASE WHEN score < 60 THEN 1 ELSE 0 END) AS [60 -] FROM SC,Coursewhere SC.C#=Course.C#GROUP BY SC.C#,Cname;24、查询学生平均成绩及其名次SELECT 1+(SELECT COUNT( distinct 平均成绩)FROM (SELECT S#,AVG(score) AS 平均成绩FROM SCGROUP BY S#) AS T1WHERE 平均成绩> T2.平均成绩) as 名次,S# as 学生学号,平均成绩FROM (SELECT S#,AVG(score) 平均成绩FROM SCGROUP BY S#) AS T2ORDER BY 平均成绩desc;25、查询各科成绩前三名的记录:(不考虑成绩并列情况)SELECT t1.S# as 学生ID,t1.C# as 课程ID,Score as 分数FROM SC t1WHERE score IN (SELECT TOP 3 scoreFROM SCWHERE t1.C#= C#ORDER BY score DESC)ORDER BY t1.C#;26、查询每门课程被选修的学生数select c#,count(S#) from sc group by C#;27、查询出只选修了一门课程的全部学生的学号和姓名select SC.S#,Student.Sname,count(C#) AS 选课数from SC ,Studentwhere SC.S#=Student.S# group by SC.S# ,Student.Sname havingcount(C#)=1;28、查询男生、女生人数Select count(Ssex) as 男生人数from Student group by Ssex having Ssex='男';Select count(Ssex) as 女生人数from Student group by Ssex having Ssex='女';29、查询姓“张”的学生名单SELECT Sname FROM Student WHERE Sname like '张%';30、查询同名同性学生名单,并统计同名人数select Sname,count(*) from Student group by Sname having count(*)>1;;31、年出生的学生名单(注:Student表中Sage列的类型是datetime)select Sname, CONVERT(char (11),DATEPART(year,Sage)) as agefrom studentwhere CONVERT(char(11),DATEPART(year,Sage))='1981';32、查询每门课程的平均成绩,结果按平均成绩升序排列,平均成绩相同时,按课程号降序排列Select C#,Avg(score) from SC group by C# order by Avg(score),C# DESC ;33、查询平均成绩大于的所有学生的学号、姓名和平均成绩select Sname,SC.S# ,avg(score)from Student,SCwhere Student.S#=SC.S# group by SC.S#,Sname havingavg(score)>85;34、查询课程名称为“数据库”,且分数低于的学生姓名和分数Select Sname,isnull(score,0)from Student,SC,Coursewhere SC.S#=Student.S# and SC.C#=Course.C# and ame='数据库'and score <60;35、查询所有学生的选课情况;SELECT SC.S#,SC.C#,Sname,CnameFROM SC,Student,Coursewhere SC.S#=Student.S# and SC.C#=Course.C# ;36、查询任何一门课程成绩在分以上的姓名、课程名称和分数;SELECT distinct student.S#,student.Sname,SC.C#,SC.scoreFROM student,ScWHERE SC.score>=70 AND SC.S#=student.S#;37、查询不及格的课程,并按课程号从大到小排列select c# from sc where scor e <60 order by C# ;38、查询课程编号为且课程成绩在分以上的学生的学号和姓名;select SC.S#,Student.Sname from SC,Student where SC.S#=Student.S# and Score>80 and C#='003';39、求选了课程的学生人数select count(*) from sc;40、查询选修“叶平”老师所授课程的学生中,成绩最高的学生姓名及其成绩select Student.Sname,scorefrom Student,SC,Course C,Teacherwhere Student.S#=SC.S# and SC.C#=C.C# and C.T#=Teacher.T# and Teacher.Tname='叶平' and SC.score=(select max(score)from SC whereC#=C.C# );41、查询各个课程及相应的选修人数select count(*) from sc group by C#;42、查询不同课程成绩相同的学生的学号、课程号、学生成绩select distinct A.S#,B.score from SC A ,SC B where A.Score=B.Score and A.C# <>B.C# ;43、查询每门功成绩最好的前两名SELECT t1.S# as 学生ID,t1.C# as 课程ID,Score as 分数FROM SC t1WHERE score IN (SELECT TOP 2 scoreFROM SCWHERE t1.C#= C#ORDER BY score DESC)ORDER BY t1.C#;44、统计每门课程的学生选修人数(超过人的课程才统计)。

sql表数据例子

sql表数据例子

sql表数据例子1. 标题: 订购信息表此表记录了客户的订购信息,包括订单编号、客户姓名、商品名称、数量和订单日期等。

2. 标题: 学生信息表此表记录了学生的基本信息,包括学生编号、姓名、性别、年龄、所在班级等。

3. 标题: 职员工资表此表记录了公司职员的工资信息,包括职员编号、姓名、职位、基本工资和实发工资等。

4. 标题: 产品销售表此表记录了产品的销售情况,包括销售编号、产品名称、销售数量、销售日期和销售金额等。

5. 标题: 客户反馈表此表记录了客户对产品或服务的反馈信息,包括反馈编号、客户姓名、反馈内容和反馈日期等。

6. 标题: 学生成绩表此表记录了学生的考试成绩,包括学生编号、姓名、科目、考试成绩和考试日期等。

7. 标题: 供应商信息表此表记录了供应商的基本信息,包括供应商编号、名称、联系人、联系方式和地址等。

8. 标题: 员工考勤表此表记录了员工的考勤情况,包括员工编号、姓名、考勤日期、上班时间和下班时间等。

9. 标题: 订单配送表此表记录了订单的配送情况,包括订单编号、配送员姓名、配送地址、配送状态和配送日期等。

10. 标题: 项目进度表此表记录了项目的进度情况,包括项目编号、项目名称、起始日期、结束日期和完成状态等。

11. 标题: 客户联系表此表记录了客户的联系信息,包括客户编号、姓名、联系方式和最近联系日期等。

12. 标题: 产品库存表此表记录了产品的库存情况,包括产品编号、产品名称、进货数量、销售数量和库存数量等。

13. 标题: 账户交易表此表记录了账户的交易记录,包括交易编号、账户名称、交易类型、交易金额和交易日期等。

14. 标题: 会员积分表此表记录了会员的积分情况,包括会员编号、会员姓名、积分余额和积分变动日期等。

15. 标题: 考勤统计表此表记录了员工的考勤统计情况,包括员工编号、姓名、迟到次数、早退次数和请假次数等。

16. 标题: 产品评价表此表记录了客户对产品的评价情况,包括评价编号、客户姓名、评价内容和评价日期等。

sql查询语句大全及实例

sql查询语句大全及实例

sql查询语句大全及实例1.提取查询(SELECT)SELECT 语句用于从数据库表中提取数据:实例:从"Persons"表中提取数据:SELECT * FROM Persons3.排序(ORDER BY)ORDER BY 语句用于在查询结果中对取出的数据排序:实例:依据金额(Amount)和日期(OrderDate)字段,对"Orders"表中的记录进行从高到低(desc)排序:SELECT * FROM Orders ORDER BY Amount DESC, OrderDate4.过滤(WHERE)WHERE 子句通常用于在 SELECT、UPDATE 和 DELETE 语句中来过滤选择的数据:5.上下文过滤(HAVING)HAVING 子句仅对聚合函数(AVG,COUNT,SUM 等)出现的结果进行过滤:实例:从"Orders"表中选择超过 5000 的订单:SELECT * FROM OrdersHAVING SUM(Amount) > 50006.插入(INSERT)INSERT 语句用于向数据库插入新记录:实例:向"Persons"表中插入一条新记录:INSERT INTO Persons (firstname, lastname, age, address, city)VALUES ('Glenn', 'Quagmire', 33, 'Coolsville', 'Anchorage');7.更新(UPDATE)UPDATE 语句用于更新数据库中的记录:9.创建数据库(CREATE DATABASE)CREATE DATABASE 语句用于创建新的数据库:实例:创建新的数据库“MyDataBase”:CREATE DATABASE MyDataBase实例:在“MyDataBase”中创建一个新表“Persons”:CREATE TABLE Persons(PersonID int,LastName varchar(255),FirstName varchar(255),Address varchar(255),City varchar(255))。

sql语句 例题

sql语句 例题

sql语句例题当然可以。

以下是一些SQL语句的例题:1.查询所有学生信息:sql复制代码:SELECT * FROM students;2.查询年龄大于20岁的学生信息:sql复制代码:SELECT * FROM students WHERE age > 20;3.查询年龄在20到25岁之间的学生信息:sql复制代码:SELECT * FROM students WHERE age BETWEEN 20 AND 25;4.查询名字为"John"的学生信息:sql复制代码:SELECT * FROM students WHERE name = 'John';5.查询名字以"J"开头的学生信息:sql复制代码:SELECT * FROM students WHERE name LIKE 'J%';6.查询名字为"John"或"Jane"的学生信息:sql复制代码:SELECT * FROM students WHERE name IN ('John', 'Jane');7.对学生成绩进行排序,首先按分数降序,然后按名字升序:sql复制代码:SELECT * FROM students ORDER BY score DESC, name ASC;8.查询年龄最大的学生信息:sql复制代码:SELECT * FROM students ORDER BY age DESC LIMIT 1;9.查询年龄最小的学生信息:sql复制代码:SELECT * FROM students ORDER BY age ASC LIMIT 1;10.计算学生的总数:sql复制代码:SELECT COUNT(*) FROM students;。

SQL常用基本语句及示例

SQL常用基本语句及示例

SQL基本语句及示例1 . SQL SELECT 语句SELECT 语句用于从表中选取数据。

结果被存储在一个结果表中(称为结果集)。

SQL SELECT 语法以及:2. SQL SELECT DISTINCT 语句在表中,可能会包含重复值。

这并不成问题,不过,有时您也许希望仅仅列出不同(distinct)的值。

关键词DISTINCT 用于返回唯一不同的值。

语法:使用DISTINCT 关键词如果要从"Company" 列中选取所有的值,我们需要使用SELECT 语句:现在,在结果集中,"W3School" 仅被列出了一次。

3. WHERE 子句如需有条件地从表中选取数据,可将WHERE 子句添加到SELECT 语句。

语法引号的使用请注意,我们在例子中的条件值周围使用的是单引号。

SQL 使用单引号来环绕文本值(大部分数据库系统也接受双引号)。

如果是数值,请不要使用引号。

文本值:数值:5. ORDER BY 语句ORDER BY语句用于对结果集进行排序实例4以逆字母顺序显示公司名称,并以数字顺序显示顺序号:6. INSERT INTO 语句INSERT INTO 语句用于向表格中插入新的行。

语法我们也可以指定所要插入数据的列:SQL 语句:SQL 语句:7. DELETE 语句DELETE 语句用于删除表中的行。

语法删除某行"Fred Wilson" 会被删除:删除所有行可以在不删除表的情况下删除所有的行。

这意味着表的结构、属性和索引都是完整的:1.SQL AVG() 语法例子1现在,我们希望计算"OrderPrice" 字段的平均值。

我们使用如下SQL 语句:例子2现在,我们希望找到OrderPrice 值高于OrderPrice 平均值的客户。

我们使用如下SQL 语句:2.SQL COUNT() 函数COUNT() 函数返回匹配指定条件的行数。

SQL常用基本语句及示例

SQL常用基本语句及示例

SQL基本语句及示例1 . SQL SELECT 语句SELECT 语句用于从表中选取数据。

结果被存储在一个结果表中(称为结果集)。

SQL SELECT 语法以及:2. SQL SELECT DISTINCT 语句在表中,可能会包含重复值。

这并不成问题,不过,有时您也许希望仅仅列出不同(distinct)的值。

关键词DISTINCT 用于返回唯一不同的值。

语法:使用DISTINCT 关键词如果要从"Company" 列中选取所有的值,我们需要使用SELECT 语句:现在,在结果集中,"W3School" 仅被列出了一次。

3. WHERE 子句如需有条件地从表中选取数据,可将WHERE 子句添加到SELECT 语句。

语法引号的使用请注意,我们在例子中的条件值周围使用的是单引号。

SQL 使用单引号来环绕文本值(大部分数据库系统也接受双引号)。

如果是数值,请不要使用引号。

文本值:数值:5. ORDER BY 语句ORDER BY语句用于对结果集进行排序实例4以逆字母顺序显示公司名称,并以数字顺序显示顺序号:6. INSERT INTO 语句INSERT INTO 语句用于向表格中插入新的行。

语法我们也可以指定所要插入数据的列:SQL 语句:SQL 语句:7. DELETE 语句DELETE 语句用于删除表中的行。

语法删除某行"Fred Wilson" 会被删除:删除所有行可以在不删除表的情况下删除所有的行。

这意味着表的结构、属性和索引都是完整的:1.SQL AVG() 语法例子1现在,我们希望计算"OrderPrice" 字段的平均值。

我们使用如下SQL 语句:例子2现在,我们希望找到OrderPrice 值高于OrderPrice 平均值的客户。

我们使用如下SQL 语句:2.SQL COUNT() 函数COUNT() 函数返回匹配指定条件的行数。

sql进阶用法

sql进阶用法

sql进阶用法SQL进阶用法SQL是一种用于管理关系数据库的语言,具备了基本的查询和操作语法之后,进一步学习一些高级用法可以帮助提高数据库的性能和效率。

本文将介绍一些SQL的进阶用法,帮助你更好地运用SQL语句。

1. 子查询子查询是指在一个查询语句内嵌套另一个查询语句。

它可以作为查询条件、返回结果集或被其他查询引用。

子查询可以嵌套多层次,拥有较高的灵活性。

SELECT * FROM employees WHERE department_id IN (SEL ECT department_id FROM departments WHERE location_id = ' 1700')上述例子中,子查询在内部查询部门表中的location_id=1700的数据,然后将这些值作为外部查询的条件,返回符合条件的员工表数据。

2. 连接查询连接查询用于在多个表之间建立关联,并返回相关的联合结果集。

最常用的两种连接方式是内连接和外连接。

SELECT _id, _name, _nameFROM employees eINNER JOIN departments d ON _id = _id上述例子中,INNER JOIN将员工表和部门表按照department_id 字段进行连接,返回符合条件的结果集,包含员工的编号、姓氏和所在部门名称。

3. 窗口函数窗口函数是一种在查询结果集上进行计算的函数,它可以计算出每一行数据的相关指标,并将计算结果输出在每行数据中,比如累计求和、移动平均等。

SELECT employee_id, last_name, salary,SUM(salary) OVER (ORDER BY hire_date ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) AS cumulative_sala ryFROM employees上述例子中,使用SUM函数和窗口函数实现了对员工薪水的累积求和。

简单的SQL语句练习大全

简单的SQL语句练习大全

简单的SQL语句练习大全一:本题用到下面三个关系表:CARD借书卡。

CNO 卡号,NAME姓名,CLASS 班级BOOKS图书。

BNO 书号,BNAME 书名,AUTHOR 作者,PRICE 单价,QUANTITY库存册数BORROW借书记录。

CNO 借书卡号,BNO 书号,RDA TE 还书日期备注:限定每人每种书只能借一本;库存册数随借书、还书而改变。

要求实现如下15个处理:1.写出建立BORROW表的SQL语句,要求定义主码完整性约束和引用完整性约束。

//表名borrow2.找出借书超过5本的读者,输出借书卡号及所借图书册数。

3.查询借阅了"水浒"一书的读者,输出姓名及班级。

4.查询过期未还图书,输出借阅者(卡号)、书号及还书日期。

5.查询书名包括"网络"关键词的图书,输出书号、书名、作者。

6.查询现有图书中价格最高的图书,输出书名及作者。

7.查询当前借了"计算方法"但没有借"计算方法习题集"的读者,输出其借书卡号,并按卡号降序排序输出。

8.将"C01"班同学所借图书的还期都延长一周。

9.从BOOKS表中删除当前无人借阅的图书记录。

10.如果经常按书名查询图书信息,请建立合适的索引。

11.在BORROW表上建立一个触发器,完成如下功能:如果读者借阅的书名是"数据库技术及应用",就将该读者的借阅记录保存在BORROW_SA VE表中(注ORROW_SA VE表结构同BORROW表)。

12.建立一个视图,显示"力01"班学生的借书信息(只要求显示姓名和书名)。

13.查询当前同时借有"计算方法"和"组合数学"两本书的读者,输出其借书卡号,并按卡号升序排序输出。

14.假定在建BOOKS表时没有定义主码,写出为BOOKS表追加定义主码的语句。

sql语句经典例题

sql语句经典例题

sql语句经典例题以下是几个经典的SQL语句示例,用于演示不同的查询和操作:1. 查询所有员工的信息:```sqlSELECT * FROM employees;```2. 查询特定员工的详细信息:```sqlSELECT * FROM employees WHERE employee_id = 1;```3. 查询员工的工资,按工资降序排列:```sqlSELECT employee_id, salary FROM employees ORDER BY salary DESC;```4. 查询工资高于平均工资的员工信息:```sqlSELECT * FROM employees WHERE salary > (SELECT AVG(salary) FROM employees);```5. 插入一条新员工记录:```sqlINSERT INTO employees (employee_id, name, salary) VALUES (2, 'John Doe', 5000);```6. 更新特定员工的工资:```sqlUPDATE employees SET salary = 6000 WHERE employee_id = 1; ```7. 删除特定员工记录:```sqlDELETE FROM employees WHERE employee_id = 2;```8. 查询所有销售部门的员工信息:```sqlSELECT * FROM employees WHERE department = 'Sales';```9. 查询工资高于平均工资的销售部门员工信息:```sqlSELECT * FROM employees WHERE salary > (SELECT AVG(salary) FROM employees WHERE department = 'Sales');```以上就是关于sql语句经典例题的介绍,欢迎补充。

sql 段子

sql 段子

sql 段子在计算机程序设计领域,SQL(Structured Query Language,结构化查询语言)是一种用于管理关系数据库系统的语言。

尽管它看起来非常严肃和专业,但也有些有趣的“SQL段子”流传在开发者之间,让人们在编写和优化SQL查询时能够轻松一笑。

1. 一个SQL查询走进了一家酒吧,然后对酒保说:“你好,请给我一杯啤酒!”酒保回答:“对不起,我们这里只服务那些有名的人。

”SQL查询不以为然地说:“我就是那个‘ALL’表,有很多有名的字段都会来找我!”2. 一个开发者向另一个开发者抱怨说:“我每次编写SQL查询的时候,都觉得自己像是在让表发誓!”另一名开发者问:“为什么?”他回答道:“因为我总是用'FROM'开头、'WHERE'做限制,而最后却总是用'GROUP BY'!”3. 有一天,一只SQL查询和一只NoSQL查询走进了一家甜品店。

SQL查询点了个冰激凌,NoSQL查询则点了个水果沙拉。

当SQL查询看到NoSQL查询用叉子吃沙拉时,大吃一惊地说:“你吃得真快!”NoSQL查询回答:“我没有表。

”4. SQL查询对数据库管理员抱怨说:“我为什么总是和索引打交道?难道我是搜寻引擎吗?”数据库管理员耐心地回答:“不,你只是个索引大师。

”5. 一个开发者在写SQL查询时迷糊了,然后问同事:“我们数据库的数据明明一直都在那儿,为什么它们不出现在查询结果中?”同事回答:“你的查询太'WHERE'd(where’d)去了!”6. 一个开发者对另一个开发者说:“我的SQL查询速度慢得像蜗牛!”另一个开发者说:“那你就给你的查询添加一些'ESCARGOT'索引吧!”7. 一个SQL语句对另一个SQL语句说:“你看起来是个有条理的查询。

”另一个语句回答:“是的,我只是在按照'SELECT'顺序。

”8. 一名开发者在编写一条复杂的SQL查询时感到压力很大,他对自己说:“深呼吸,这只是个'JOIN'(接合)的过程!”只见他转身离开,决定去参加瑜伽课程以减压。

递归查询sql例子

递归查询sql例子

递归查询sql例子递归查询在SQL中通常用于处理具有层次结构的数据,比如组织架构、地理位置等。

在SQL中,常用的递归查询语句是使用公共表表达式(CTE)和递归联接来实现的。

举个例子,假设我们有一个名为`employee`的表,其中包含员工的ID、姓名和直接上级的ID。

我们想要查询某个员工的所有下属,包括间接下属,可以使用递归查询来实现。

首先,我们需要创建一个递归查询的公共表表达式(CTE),例如`subordinates`,并在其中指定递归查询的初始条件和递归关系。

然后,我们使用递归联接将这个CTE与原始表连接起来,直到满足递归查询的终止条件为止。

以下是一个简单的示例:sql.WITH RECURSIVE subordinates AS (。

SELECT employee_id, employee_name, supervisor_id. FROM employee.WHERE employee_id = :input_employee_id -初始条件。

UNION ALL.SELECT e.employee_id, e.employee_name,e.supervisor_id.FROM employee e.INNER JOIN subordinates s ON e.supervisor_id =s.employee_id -递归关系。

)。

SELECT FROM subordinates;在这个例子中,我们首先创建了一个名为`subordinates`的CTE,指定了初始条件为特定员工的ID。

然后使用UNION ALL将初始条件的员工与直接下属连接起来,然后再次将直接下属与他们的下属连接起来,直到查询到所有的下属为止。

最后,我们从`subordinates`这个CTE中选择所有的员工信息。

这样就可以实现递归查询了。

需要注意的是,递归查询需要谨慎使用,因为如果数据量过大或者递归关系设计不当,可能会导致性能问题。

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

学习SQL例子
Select
SELECT 列名称 FROM 表名称
SELECT * FROM 表名称
DISTINCT
在表中,可能会包含重复值。

这并不成问题,不过,有时您也许希望仅仅列出不同(distinct)的值。

关键词 DISTINCT 用于返回唯一不同的值。

SELECT DISTINCT 列名称 FROM 表名称
Where
SELECT 列名称 FROM 表名称 WHERE 列运算符值
INSERT INTO
INSERT INTO 语句用于向表格中插入新的行。

语法
INSERT INTO 表名称 VALUES (值1, 值2,....)
我们也可以指定所要插入数据的列:
INSERT INTO table_name (列1, 列2,...) VALUES (值1, 值2,....)
Update
Update 语句用于修改表中的数据。

语法:
UPDATE 表名称 SET 列名称 = 新值 WHERE 列名称 = 某值
例子:update 表名称set列名称='新值'where 列名称='某值' and 列名称= '某行' 只更新某一行
DELETE
DELETE 语句用于删除表中的行。

语法
DELETE FROM 表名称 WHERE 列名称 = 值。

相关文档
最新文档