查询语句:
简单的select语句
select [all|distinct] select_list [into new_table] from table_source [where search_conditions] [group by group_by_expression] [having search_conditions] [order by order_expression [asc | desc]]
例子:
select * from 学生信息 select 姓名, 性别, 家庭住址 from 学生信息 select 12 * 14 select 12 * 14 as 计算结果 select 姓名 as 学生姓名, 性别 from 学生信息 select 民族 from 学生信息 select distinct 民族 from 学生信息
设置查询条件
select * from 学生信息 where 姓名 = ‘张苗苗‘ select * from 学生信息 where 民族 = ‘汉族‘ and 性别 = ‘女‘ select * from 学生信息 where 民族 = ‘汉族‘ or 性别 = ‘女‘ select * from 学生信息 where 民族 = ‘汉族‘ or 性别 = ‘男‘ select * from 学生信息 where 民族 = ‘汉族‘ and 性别 = ‘女‘ and 家庭住址 = ‘河南商丘‘ select * from 学生信息 where 家庭住址 like ‘河南%‘
排序:
select * from 成绩信息 where 考试编号 = ‘0801‘ and 课程编号 = ‘1‘ order by 分数 asc select * from 成绩信息 where 考试编号 = ‘0801‘ and 课程编号 = ‘1‘ order by 分数 desc select * from 成绩信息 where 考试编号 = ‘0801‘ and 课程编号 = ‘1‘ order by 分数 desc, 学生编号 select * from 成绩信息 where 考试编号 = ‘0801‘ and 课程编号 = ‘1‘ order by 分数 desc,学生编号 desc
使用函数
select * from 成绩信息 where 考试编号 = ‘0801‘ and 课程编号 = ‘2‘ select MAX(分数) from 成绩信息 where 考试编号 = ‘0801‘ and 课程编号 = ‘2‘ select MIN(分数) from 成绩信息 where 考试编号 = ‘0801‘ and 课程编号 = ‘2‘ select avg(分数) from 成绩信息 where 考试编号 = ‘0801‘ and 课程编号 = ‘2‘ select sum(分数) from 成绩信息 where 考试编号 = ‘0801‘ and 课程编号 = ‘2‘ select top 3 分数 from 成绩信息 where 考试编号 = ‘0801‘ and 课程编号 = ‘2‘ order by 分数 desc
分组
select 课程编号,avg(分数) from 成绩信息 where 考试编号 = ‘0801‘ group by 课程编号 select 课程编号,avg(分数) from 成绩信息 where 考试编号 = ‘0801‘ group by rollup (课程编号) select 课程编号,avg(分数) from 成绩信息 where 考试编号 = ‘0801‘ group by cube (课程编号) select 考试编号,课程编号,avg(分数) from 成绩信息 group by rollup (考试编号,课程编号) 对不同考试的考试编号分别求平均分,然后总的平均分 select 考试编号,课程编号,avg(分数) from 成绩信息 group by cube (考试编号,课程编号) --对不同课程求平均分,对不同考试求平均分,最后求总的平均分。
having 子句
select 考试编号,课程编号,avg(分数) from 成绩信息 group by 考试编号,课程编号 having avg(分数) >= 90 order by 考试编号
插入数据:
insert 语法:
insert 语法: insert [into] table_or_view [(column_list)] values data_values
- table_or_view 用于指定向表中添加数据的表或视图名称。
- column_list 用于指定该数据表的列名,可以指定一列或多列,所有这些列都必须放在圆括号()内。如果要指定多个列时,各列必须用逗号隔开。如果指定了列名,那么在目标数据表中所有未被指定的列必须支持空值或默认值。
- data_values 用于指定向数据表中插入的数据值。这些值也必须放在圆括号内,如果指定的值为多个时,这些值之间也必须用逗号隔开。如果指定了列名,那么该数据必须与各列一一对应。如果没有列名,该数据必须与数据表中各列的顺序一一对应。
insert into 学生信息 values(‘2111123456‘,‘李明‘,‘男‘,‘1996-1-29‘,‘汉族‘,‘20180314‘) insert into 学生信息(学号,姓名,性别,家庭住址) values(‘201803115‘, ‘李雷‘, ‘男‘, ‘湖北武汉‘)
insert ... select 语句语法:
--将一个表得内容插入另一个表 insert table_name[column_list] select column_list from table_list where search_conditions
例子:
insert 学生信息1 select * from 学生信息 insert 学生信息1 select * from 学生信息 where 家庭住址 like ‘武汉%‘
select ... into语句:
select <select_list> into new_table from {<table_source>[,...n]} where <search_condition>
例子:
select * into #student from 学生信息 where 性别 = ‘男‘ select * from #student
修改数据
update语句语法:
update [top] {table_name | view_name} set {column_name = {expression | default | null}@varible = expression}[...,n] where {search_conditions}
例子:
select * from 学生信息1 update 学生信息 set 姓名 = ‘李俊‘ where 学号 = ‘20181112‘ select * from 学生信息1 update 学生信息 set 姓名 = ‘李军‘,出生日期 = ‘1996-12-10‘ where 学号 = ‘20181113‘
在update语句使用from子句:
select * from studentInfo update studentInfo set s_sex = b.性别, s_address = b.家庭住址, s_id = b.学号 from studentInfo a join 学生信息 b on a.s_name = b.姓名 where b.性别 = ‘女‘
删除数据
delete语句语法:
delete from <table_name> [where <search condition>]
top关键字和top表达式:
[ top (expression) [percent] [with ties] ]
例子:
select top 10 * from 成绩信息 select top 10 percent * from 成绩信息 declare @i int set @i = 20 select top (@i) percent * from 成绩信息 declare @i int set @i = 20 select top (@i) 成绩信息 order by 分数 declare @i int set @i = 6 select top (@i) with ties * from 成绩信息 order by 分数
compute子句:对已经查询出得结果产生一个合计
语法格式:
[ compute { {avg|count|max|min|stdev|stdevp|var|varp|sum} (expression)}[,...n] [by expression [,...n]] ]
例子:
select * from 成绩信息 where 课程编号 = 2 compute sum(分数),avg(分数), max(分数), min(分数) select * from 成绩信息 where 课程编号 = 2 order by 考试编号 compute sum(分数), avg(分数), max(分数), min(分数) by 考试编号
在where子句使用运算符
select * from 成绩信息 where 考试编号 = ‘0802‘ and 课程编号 = 1 select * from 成绩信息 where 考试编号 = ‘0802‘ and (分数 between 80 and 90) select * from 成绩信息 where 考试编号 = ‘0802‘ and (分数 % 5 = 0) select * from 成绩信息 where 考试编号 = ‘0802‘ and 分数 in (85, 90, 87, 86) select * from 成绩信息 where 考试编号 = ‘0802‘ and 分数 not in (85, 90, 87, 86)