SQL语句总结_sql语句总结

其他工作总结 时间:2020-02-28 14:46:44 收藏本文下载本文
【www.daodoc.com - 其他工作总结】

SQL语句总结由刀豆文库小编整理,希望给你工作、学习、生活带来方便,猜你可能喜欢“sql语句总结”。

SQL语句总结

一、插入记录

1. 插入固定的数值

语法:

INSERT[INTO]表名[(字段列表)]VALUES(值列表)

示例1:

Insert into Students values('Mary’,24,’mary@163.com’)

若没有指定给Student表的哪些字段插入数据:表示给该表的所有字段插入数据,根据数据的个数,可以得知Students表中一共有3个字段表中有4个字段,其中一个字段是标识列。

示例2:

Insert into Students(Sname,Sage)values(‘Mary’,24)

指定给表中的Sname,Sage两个字段插入数据。注意事项:

1)该命令运行一次向表中插入1条记录。无法实现向已存在的某记录中插入一个数据

2)如果不指定给哪些字段插入数值,则应注意值列表的值个数

3)插入数据时,注意值的数据类型要与对应的字段数据类型匹配

4)插入数据时,如果没有给值的字段必须保证允许其为空

5)插入数据时,要注意字段中的一些约束

2. 插入的记录集为一个查询结果

语法:

INSERTINTO表名[(字段列表)]SELECT 字段列表 FROM表WHERE条件 示例1:

InsertintoTeacherselectSname,Sage,SemailfromStudent

从Student表中查询三个字段的全部记录,插入Teacher表,没有指定Teacher表的具体字段,表示给Teacher表的全部字段插入数值

示例2:

InsertintoTeacherselectSname,Sage,SemailfromStudentwhereSage>25

从Student表中查询三个字段的部分记录,插入Teacher表

示例3:

InsertintoTeacher(tid,tname)selectSname , SagefromStudent 从Student表中查询两个字段的全部记录,插入到Teacher表中的tid,tname字段 注意事项:

查询表的字段要和插入表的字段数据类型一一对应

3. 生成表查询

语法:

SELECT字段列表INTO新表名FROM原表WHERE条件

示例1:

SelectSname,Sage,SemailintonewStudentfrom Studentwhere Sage

共6页当前第1页

示例2:

Select Sname,Sage,SemailintonewStudentfromStudentwhere 1=2

利用Student表的表结构生成新表newStudent,newStudent表中记录为空

注意事项:

执行该语句时,确保数据库中不存在into关键字后面的指定的表名

二、删除记录

1)删除满足条件的记录

语法:

DELETEFROM表名WHERE条件

示例1:

DeletefromStudentwhereSage

从Student表中删除年龄小于20岁的学生的记录

示例2:

DeletefromStudent

没有设置条件,删除Student表的全部记录

2)删除表的全部记录

语法:

TRUNCATETABLE表名

示例:

TruncatetableStudent

删除表Student中的全部记录,约束依然存在三、修改记录

语法:

UPDATE表名SET字段=新值WHERE条件

示例1:

UpdateStudentsetSemail=’Email’+SemailwhereSemailisnotnull

把有email的学员的email地址变为原先的地址前加上‘Email’字符串

示例2:

UpdateStudentsetSage=Sage+1

把所有记录的Sage变为原先的值加1,例如过一年学生要长一岁

四、查询记录

1. 基本查询

语法:

SELECT字段列表FROM表

示例1:

SelectsName,sAge,sEmailfromStudents

从Students表中查询3个字段的所有的记录

示例2:

Select*fromStudents

从Students表中查询所有字段的所有的记录(字段列表位置写*代表查询表中所有字段)

2. 带WHERE子句的查询

语法:

SELECT字段列表FROM表WHERE条件

示例1:

SelectSNamefromStudentswhereSage>23

查询Students表中年龄大于23的学员的姓名

3. 应用别名

语法1:

SELECT字段列表AS别名„„

示例1:

SelectSNameas学员姓名,sAgeas学员年龄fromStudents

将查询的两个字段分别用中文别名显示

语法2:

SELECT别名=字段„„

示例2:

Select学员姓名=sName, 学员年龄=sAgefromStudents

注意事项:

别名可以是英文,也可以是中文,别名可以用单引号引起,也可以不引

4. 使用常量(利用‘+’连接字段和常量)

示例:

SelectsName+’的年龄是’+convert(varchar(2),sAge)as 学员信息

from Students

从Students表中查询,将学员的姓名和年龄信息与一个常量连接起来,显示为一个字段,该字段以“学员信息”为别名

5. 限制返回的行数

语法1:

SELECTTOPN字段列表 FROM表

示例1:

Select top 3sName,sAgefromStudents

查询Students表的前三条记录

语法2:

SELECTTOPNPERCENT字段列表FROM表

示例2:

Selecttop30percentsName,sAge from Students

查询Students表的前30%条记录

6. 排序

语法:

SELECT字段列表FROM表WHERE条件ORDER BY字段ASC/DESC 示例1:

Select*fromStudentswhere sAge>20order by sAge

查询年龄大于20岁的学员信息,并且按照年龄升序排序(若不指定升降序,默认为升序)示例2:

Select*fromStudentsorder by sNamedesc

查询所有学生的所有信息,并按照学生的姓名降序排序

7. 模糊查询

1)Like:通常与通配符结合使用,适用于文本类型的字段

示例1:

Select * from StudentswheresNamelike ‘张_’

查询Students表中张姓的,两个字名的学生信息

示例2:

Select * from StudentswheresNamelike ‘张%’

查询Students表中张姓的学生的信息

示例3:

Select * from StudentswheresEmaillike ‘%@[a-z]%’

查询Students表中,Semail字段‘@’后的第一个字符为小写英文字母的学生信息 示例4:

Select * from StudentswherestuNamelike ‘%@[^a-z]%’

查询Students表中,Semail字段‘@’后的第一个字符不是小写英文字母的学生信息

2)Between „and„:用于查询条件为一个字段介于两个值之间

示例:

Select * from Students where Sage between 20and25

查询学员年龄在20到25之间的学员信息

3)In:用于查询某个字段在值列表中出现作为条件

示例:

Select*fromStudentswhereScityin(‘大连’,’沈阳’,’北京’)查询学员的城市在大连,沈阳或北京的学员信息,等价于如下功能:

Select * from Students where Scity=’大连’or Scity=’沈阳’or Scity=’北京’

4)Isnull:用于查询某个字段为空作为条件

示例:

Select * from Students where Semail is null

查询学员的email为空的学员信息

Select * from Students where semail is not null

查询学员的email不为空的学员信息

8. 聚合函数(所有函数自动忽略空值)

1)Sum():统计某字段的和,用于数值型数据

示例:

Select sum(Sage)as 学员的年龄和 from Student

统计Students表中所有学员的年龄总和,显示结果为一个字段一条记录

2)Avg():统计某字段的平均值,用于数值型数据

示例:

Select avg(Sage)as 学员的平均年龄fromStudents

统计Students表中所有学员的年龄的平均值,显示结果为一个字段一条记录

3)Max():统计某字段的最大值,用于数值,文本,日期型

4)Min():统计某字段的最小值,用于数值,文本,日期型

示例:

Select max(Sage)as 最大年龄 , min(Sage)as 最小年龄from Students

查询Students表中的学员的最大年龄和最小年龄,显示结果为两个字段一条记录

5)Count():统计某字段的记录数或者表的记录数

示例1:

Select count(Semail)as email的数量 fromStudents

查询Students表中,有email的学员的数量。Count(字段)代表统计字段的记录数 示例2:

Select count(*)as学员的数量fromStudents

查询Students表中的记录数,count(*)代表统计表的记录数

9. 分组与聚合函数

语法:

SELECT字段1,聚合函数(字段)AS别名

FROM表

WHERE条件1

GROUP BY字段1

HAVING条件2

ORDER BY字段

注意事项: 1)此语法格式用于对表中按照某个字段分类之后,对每类中的某个数据进行统计

2)分组的字段应该是包含大量重复数据的字段

3)只有出现的group by后的字段,才可以独立出现在select后

4)Where条件用于在分组之前进行对记录的过滤

5)Having条件用于对分组之后的记录集进行条件过滤

6)Orderby总是出现在最后,对最终的结果集进行排序

示例1:

SelectSsex,avg(Sage)as平均年龄fromStudent

Group by Ssex

统计Student表中男生和女生的平均年龄。按照性别分组,分为男生和女生两组,统计每组中年龄的平均值

示例2:

SelectSsex,avg(Sage)as 平均年龄fromStudents

WhereSemail is not null

Group by Ssex

统计具有email的学员中,男生和女生的平均年龄。先根据Smail字段进行条件过滤,过滤掉没有email的学员,对有email的学员分为男生和女孩两组,统计每组中年龄的平均值

示例3:

SelectSdate,count(*)as人数

FromStudents

Group by Sdate

Havingcount(*)>10

统计每天报名的人数,并显示出报名人数多于10人的记录。先按照报名的日期进行分组,统计出每天的报名人数,再在分组之后的记录集上进行条件过滤,留下人数超过10人的记录。

示例4:

SelectSdate,count(*)as人数

From Students

Where xueli=’大专’

Group by Sdate

Having by count(*)>10

查询大专学历的学员中,每天报名的人数,并显示多于10人的记录。先按照学历为大专的条件进行过滤,把是大专的学员按照报名日期进行分组,统计每组的报名人数,再把分组之后的记录集进行再次过滤,显示出报名人数多于10人的信息

10. 多表查询 注意事项:

1)能够进行多表联接查询的表中必须包含有公共字段,两个表的公共字段不要求字段名相同,但数据类型必须相同,功能相同,且两个字段中要包含相同记录

2)最常用的联接为内联接

1)内联接

SELECT字段列表

FROM表1INNERJOIN表2

ON表1.公共字段=表2.公共字段

返回两个表基于公共字段有相同记录的匹配结果

SELECT字段列表

FROM表1INNERJOIN表2

ON表1.公共字段表2.公共字段

返回两个表的交叉联接的结果与相等条件的内联的差集

2)外联接

(1)左外联接

SELECT字段列表

FROM左表LEFTJOIN右表

ON左表.公共字段=右表.公共字段

返回内联的结果加上左表的剩余记录

(2)右外联接

SELECT字段列表

FROM左表RIGHTJOIN右表

ON左表.公共字段=表2.公共字段

返回内联的结果加上右表的剩余记录

(3)完整外联接

SELECT字段列表

FROM表1FULLJOIN表2

ON表1.公共字段=表2.公共字段

返回内联的结果加上左表的剩余和右表的剩余

3)交叉联接

SELECT字段列表

FROM表1CROSSJOIN表2

返回结果集的数目为表1的记录数*表2的记录数,表1中的每一条记录分别和表2中的每条记录进行匹配

4)自联接

SELECT字段列表

FROM表1AS别名1INNERJOIN表1AS别名2

ON别名1.公共字段=别名2.公共字段

下载SQL语句总结word格式文档
下载SQL语句总结.doc
将本文档下载到自己电脑,方便修改和收藏。
点此处下载文档

文档为doc格式

相关专题 sql语句总结 语句 sql
    热门文章
      整站推荐
        点击下载本文