简单的SELECT语句
SELECT * FROM 学生信息 '查询学生信息表中所有的信息
SELECT 姓名,性别,家庭住址 FROM 学生信息 '查询具体信息
SELECT 12*13 AS 计算结果 '查询执行结果
SELECT 姓名 AS 学生姓名,性别 FROM 学生信息
SELECT DISTINCT民族 FROM 学生信息
设置查询条件
SELECT * FROM 学生信息WHERE 姓名 = ‘张苗苗’
WHERE 民族 = ‘汉族’ AND 姓别 =’女’ AND 家庭住址 = ‘河南商丘’
SELECT * FORM 学生信息 WHERE 家庭住址 like ‘河南%’ ‘住址在河南省的都会搜索出来
排序
SELECT * FORM 成绩信息 where 考试编号 = ‘0801’ AND 课程编号 =’1’
Order by 分数
ORDER BY 默认查询结果为升序
SELECT * FORM 成绩信息 where 考试编号 = ‘0801’ AND 课程编号 =’1’
ORDER BY 分数 DESC
DESC代表降序
SELECT * FORM 成绩信息 where 考试编号 = ‘0801’ AND 课程编号 =’1’
'如果分数并列,则
ORDER BY 分数 DESC,学生编号 DESC
分组
SELECT * FROM 成绩信息 WHERE 考试编号=’0801’ '读取信息,进行筛选
SELECT AVG(分数), FROM 成绩信息 WHERE 考试编号=’0801’ '对所有分数求平均值
SELECT 课程编号,AVG(分数), FROM 成绩信息 WHERE 考试编号=’0801’ GROUP BY 课程编号 '按照课程编号进行排序
SELECT 课程编号,AVG(分数), FROM 成绩信息 WHERE 考试编号=’0801’ GROUP BY rollup (课程编号)
'对 0801的所有成绩进行取平均值
SELECT 课程编号,AVG(分数), FROM 成绩信息 WHERE 考试编号=’0801’ GROUP BY cube (课程编号)
'按照课程编号来平均
SELECT 考试编号,课程编号,AVG(分数), FROM 成绩信息 GROUP BY 考试编号,课程编号
SELECT 考试编号,课程编号,AVG(分数), FROM 成绩信息 GROUP BY rollup (考试编号,课程编号)
'会分别按照考试编号进行小计
使用函数
SELECT MAX(分数) FROM 成绩信息 WHERE 考试编号='0801' AND 课程编号=‘2’
MAX 可替换为:
MIN、AVG、SUM
SELECT TOP 3 分数 FROM 成绩信息 WHERE 考试编号='0801' AND 课程编号=‘2’
ORDER BY 分数 DESC
'可以查询到此次考试分数的前三名,并按照降序排列
使用HAVING 子句
SELECT 考试编号, 课程编号, AVG(分数) FROM 成绩信息 GROUP BY 考试编号,课程编号
HAVING AVG(分数)>=90
ORDER BY 考试编号
'对数据进行筛选
插入数据
INSERT INTO 学生信息 VALUES('2009100101','李明','男','1986-06-01','汉族','20050101','河南郑州')
INSERT INTO 学生信息(学号,姓名,家庭住址) VALUES('2009100101','李明','河南郑州')
'对所插入的数据列进行限制
INSERT ...SELECT 语句
INSERT 学生信息1
SELECT * FORM 学生信息
INSERT 学生信息1
SELECT * FORM 学生信息 WHERE 家庭住址 like '河南%'
SELECT...INTO 语句
SELECT *
INTO #STUDENT
FROM 学生信息
where 性别='男'
(先创建临时表,并从已有表中填入数据)
SELECT * FROM #STUDENT
(再进行查询)
UPDATE 语句
SELECT * FROM 学生信息
UPDATE 学生信息 SET 姓名='李军' WHERE 学号='2009100103'
'查询表信息,进行信息修改
在UPDATE 语句使用FROM 子句
select * form 学生信息
update 学生信息 set a_sex=b.性别, a_address=b.家庭住址, a_id=b.学号
from 学生信息 a join 学生信息 b on a_name = b.姓名
where b.性别 = '女'
多表链接进行数据更新
语句
select top 10 * from 成绩信息 '查询前十条记录
select top 10 percent * from 成绩信息 '查询总记录中10%的记录
declare @i int
set @i=20
select top (@i) percent * from 成绩信息 '定义变量
declare @i int
set @i=20
select top (@i) * from 成绩信息 ORDER BY 分数 '进行排序
declare @i int
set @i=20
select top (6) with ties * from 成绩信息 ORDER BY 分数
update top (6) 学生信息 set 民族 = '满族'
select * from 学生信息
修改所有学生民族为‘满族’
其中,with ties 指的是,如果成绩最后有三个分数相同的,能够不受显示条数的限制,而把三条分数相同的记录都显示出来
COMPUTE 语句
select * from result_Info where 课程编号 = 1
compute sum(分数), AVG(分数),max(分数), min(分数) '同时统计总分,平均分,最大值,最小值
select * from result_Info where 课程编号 = 1 order by 考试编号
compute sum(分数), AVG(分数),max(分数), min(分数) by 考试编号 '按照考试编号进行细分
在WHERE子句中使用运算符
select * from 成绩信息 where 考试编号= '0802' AND(分数 between 90 and 95)
select * from 成绩信息 where 考试编号= '0802' AND(分数 % 5=0) '求分数为5的倍数
select * from 成绩信息 where 考试编号= '0802' AND 分数 not in (85,90,87,86)
select * from 成绩信息 where 考试编号= '0802' AND 分数 in (85,90,87,86)