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