数据库常用语句(持续更新)

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/m0_37872413/article/details/82392170

                                                基础实用的数据库语句总结

假设有三张表:学生表student,教师表teacher,学校表school,三张表分别有字段:学生姓名sname、年龄sage、性别sgender、所属教师steacher、所属学校sschool,教师姓名tname、年龄tage、性别tgender、所属学校tschool,学校名字schoolname、地址address等字段

一、单表查询:不含任何条件的查询语句

select * from student   (查询student表中所有学生的所有信息)

select sname from student  (查询student表中所有学生的名字)

select sname,sage,sgender from student (查询student表中所有学生的名字、年龄、性别三个信息)

二、单表查询:根据条件进行搜索

select * from student where sname='张三'   (查询student表中,姓名为“张三”的所有学生的所有信息,可能有多个学生信息,因为可能会有多个学生名字叫“张三”)

select * from student where sname in ('张三','李四','王五')    (查询student表中学生姓名为“张三”或者是“李四”或者是“王五”的学生的所有信息)

select * from student where sage between 15 and 20  (搜索年龄在15-20之间的学生的信息,不同数据库可能效果不一样:有些数据库包含了15和20 ,有些不包含,有些只包含15不包含20,有些包含20不包含15)

select * from student where sname like '%三'%  (搜索名字包含了‘三’这个字符的学生信息)

三、多表联合查询

select * from student,teacher where sname='张三' and steacher=tname  (搜索学生“张三”以及张三所属的教师的信息,最后会返回sname、sage、sgender、steacher、sschool、tname、tage、tgender、tschool)

select * from student left join teacher on steacher=tname (无论教师表中是否有教师匹配学生表的所属教师,一定会返回学生表中的信息)

select sname、tname from (select * from student,teacher where steacher=tname)  midtablename(子查询,子查询需要注意的子表必须有单独的表明,比如midtablename,如果没有命名会报错)

四、实用查询语句

select  name,

sum(math) as math,

sum(english) as english,

sum(chines) as chines 

from (select name,

case subject1 when '数学' then 1 else 0 end as math,

case subject2 when '英语' then 1 else 0 end as english,

case subject3 when '语文' then 1 else 0 end as chines 

from table where name='%三%' 

) midtablename 

group by name

(例子说明:小学6年,12个学期,假设每学期都有数学和语文,从3年级开始才有英语,那么对于一个学生而言,他就学了12次数学和语文,学了6次英语,这个SQL语句就统计了学生在6年12个学期中,所学的数学、英语、语文的次数,以学期为粒度进行统计)

select name,

case when grade<60 then '不及格' 

when grade>60 then '及格' 

end as result from table 

(搜索学生信息并显示学生最后结果是否及格)

select * from table order by lastTime desc limit 1  (取出表中时间最近的一条记录,通过lastTime进行降序排序,再限制记录条数为1,达到取出lastTime最近的一条记录)

五、删除语句

delete from table where ……

六、插入语句

insert into table values (

'张三',

15,

'男'

)

 

猜你喜欢

转载自blog.csdn.net/m0_37872413/article/details/82392170