SQL语句总结

  • 格式:doc
  • 大小:80.00 KB
  • 文档页数:6

共6页 当前第1页 SQL语句总结

一、插入记录

1. 插入固定的数值

语法:

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

示例1:

Insert into Students values('Mary’,24,’’)

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

示例2:

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

指定给表中的Sname,Sage两个字段插入数据。

注意事项:

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

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

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

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

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

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

语法:

INSERT INTO 表名[(字段列表)] SELECT 字段列表 FROM 表 WHERE 条件

示例1:

Insert into Teacher select Sname,Sage,Semail from Student

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

示例2:

Insert into Teacher select Sname,Sage,Semail from Student where

Sage>25

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

示例3:

Insert into Teacher(tid,tname)select Sname , Sage from Student

从Student表中查询两个字段的全部记录,插入到Teacher表中的tid,tname字段

注意事项:

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

3. 生成表查询

语法:

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

示例1:

Select Sname,Sage,Semail into newStudent from Student where Sage<20

从Student表中查询出年龄小于20岁的学生的记录生成新表newStudent

共6页 当前第2页 示例2:

Select Sname,Sage,Semail into newStudent from Student where 1=2

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

注意事项:

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

二、删除记录

1)删除满足条件的记录

语法:

DELETE FROM 表名 WHERE 条件

示例1:

Delete from Student where Sage<20

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

示例2:

Delete from Student

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

2)删除表的全部记录

语法:

TRUNCATE TABLE 表名

示例:

Truncate table Student

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

三、修改记录

语法:

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

示例1:

Update Student set Semail=’Email’+Semail where Semail is not

null

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

示例2:

Update Student set Sage=Sage+1

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

四、查询记录

1. 基本查询

语法:

SELECT 字段列表 FROM 表

示例1:

Select sName,sAge,sEmail from Students

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

示例2:

Select * from Students

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

2. 带WHERE子句的查询

语法:

共6页 当前第3页 SELECT 字段列表 FROM 表 WHERE 条件

示例1:

Select SName from Students where Sage>23

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

3. 应用别名

语法1:

SELECT 字段列表 AS 别名 ……

示例1:

Select SName as 学员姓名,sAge as 学员年龄 from Students

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

语法2:

SELECT 别名=字段 ……

示例2:

Select 学员姓名=sName, 学员年龄=sAge from Students

注意事项:

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

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

示例:

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

from Students

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

5. 限制返回的行数

语法1:

SELECT TOP N 字段列表 FROM 表

示例1:

Select top 3 sName,sAge from Students

查询Students表的前三条记录

语法2:

SELECT TOP N PERCENT 字段列表 FROM 表

示例2:

Select top 30 percent sName,sAge from Students

查询Students表的前30%条记录

6. 排序

语法:

SELECT 字段列表 FROM 表 WHERE 条件 ORDER BY 字段 ASC/DESC

示例1:

Select * from Students where sAge>20 order by sAge

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

示例2:

Select * from Students order by sName desc

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

7. 模糊查询

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

共6页 当前第4页 示例1:

Select * from Students where sName like ‘张_’

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

示例2:

Select * from Students where sName like ‘张%’

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

示例3:

Select * from Students where sEmail like ‘%@[a-z]%’

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

示例4:

Select * from Students where stuName like ‘%@[^a-z]%’

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

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

示例:

Select * from Students where Sage between 20 and 25

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

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

示例:

Select * from Students where Scity in (‘大连’,’沈阳’,’北京’)

查询学员的城市在大连,沈阳或北京的学员信息,等价于如下功能:

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

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

示例:

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 学员的平均年龄 from Students

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

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

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

示例:

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

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

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

示例1:

Select count(Semail) as email的数量 from Students