SQL 课程
今天,我主要学习了数据库的基本查询,模糊查询、排序查询、聚合函数、计数和分组,以及数学函数、字符串函数、时间日期函数。
create database lianxi0720
go
use lianxi0720
go
create table student
(
code int not null,--学号,不可为空
name varchar(10),--学生姓名
sex varchar(10),--性别
banji varchar(10),--班级
yufen decimal(18,2),--语文分数
shufen decimal(18,2),--数学分数
yingfen decimal(18,2),--英语分数
)
go
--添加学生信息
insert into student values(1001,'张三','男','一班',80,90,95)
insert into student values(1002,'李四','女','一班',34,55,77)
insert into student values(1003,'王五','男','一班',23,77,87)
insert into student values(1004,'赵六','女','一班',36,64,87)
insert into student values(1005,'冯七','男','二班',22,34,55)
insert into student values(1006,'王八','女','二班',76,35,24)
insert into student values(1007,'邓超','男','二班',87,42,76)
insert into student values(1008,'王祖蓝','女','二班',23,54,98)
insert into student values(1009,'王宝强','男','三班',53,42,54)
insert into student values(1010,'陈赫','女','三班',66,77,88)
insert into student values(1011,'郑凯','男','三班',12,43,76)
insert into student values(1012,'郭德纲','女','三班',78,79,72)
go
--修改1011学生的语分为66
update student set yufen =66 where code=1011
--查看所有信息
select * from student
--查看前三条信息
select top 3 * from student
--查看一班的所有同学信息
select * from student where banji='一班'
--查看一班所有女生的姓名
select name as 性别 from student where sex='女' and banji='一班'
--删除一班的所有女生
delete from student where banji='一班' and sex='女'
--删除所有信息
delete from student
--修改1003学号的同学的数学分数为88(现在是77)
update student set shufen = 88 where code=1003
--模糊查询
--查看所有姓李的人的信息
select * from student where name like'李%'
--查看所有姓名中含有"王"这个字的学生的所有信息
select * from student where name like '%王%'
--排序查询 order by
--查看语文分数升序排列 后缀是asc可以不写,默认是升序
select yufen from student order by yufen
--查看语文分数的降序排列 后缀是desc
select yufen from student order by yufen desc
--语分按照降序排列之后选择前三名的所有信息
select top 3 * from student order by yufen desc
--查看一班语分最高的人的所有信息
select top 1 * from student where banji='一班' order by yufen desc
--聚合函数
--AVG 平均值
--查看所有人的语分平均分
select AVG(yufen) from student
--查看一班所有人的语文平均分
select AVG(yufen) from student where banji='一班'
--计数 COUNT
--查看所有数据的总条数
select COUNT(*) from student
--查看姓王的总共有及格
select COUNT(*) from student where name like '王%'
--查看总共有几个班级
select COUNT(distinct banji) from student
--最大MAX
--查看一班的语文最高分
select MAX(yufen) from student where banji ='一班'
--最小 MIN
--查看一班的语文最小分数
select MIN(yufen) from student where banji='一班'
--求和 SUM
--查看一班的语文总分
select SUM(yufen) from student where banji='一班'
--分组 group by
select banji from student group by banji
--查看每个班级的语文平均分
select banji as 班级 , AVG(yufen) as 语文平均分 from student group by banji
--查看每个班有多少人
select banji, COUNT(*) from student group by banji
--having 增加什么限制 后面只允许跟聚合函数,前面必须是group by
--查看分数超过30并且人数超过2个人的班级以及班级及格人数
select banji ,COUNT(*) from student where yufen>30 group by banji having COUNT(*)>2
--查看分数超过30并且人数超过2个人的班级以及班级及格人数,根据超过30分的人数来进行升序排序
select banji ,COUNT(*) from student where yufen>30 group by banji having COUNT(*)>2 order by COUNT(*)
--数学函数
--绝对值
select ABS(-7)
--取上线
select CEILING(3.14)
--取下线
select FLOOR(3.14)
--次方
select POWER(2,4)
--四舍五入
select ROUND(2.5,0)
--平方根
select SQRT(4)
--平方
select SQUARE(4)
--字符串函数
--将字符转换为ascii码
select ASCII('i')
--将ascii码转换为字符
select CHAR(110)
--查看第一次出现的索引号
select CHARINDEX('eabc','abcdefghjklmn')
--截取,从左往右
select LEFT('abcdefghjklmn',4)
--截取,从右往左
select RIGHT('abcdefghjklmn',4)
--字符串长度,若前面有空格,那就算上,后面的不算
select LEN(' abcde ')
--转大写
select UPPER('abcdefg')
--转小写
select LOWER('ABCDEFG')
--去除前面的空格
select LTRIM(' abcd')
--去除后面的空格
select RTRIM(' abcd ')
--复制
select REPLICATE('abc',2)
--将小数转换为字符串
select STR(2332.32121,3,1)
--时间日期函数
SET DATEFIRST 1
SELECT @@DATEFIRST AS '1st Day', DATEPART(dw, GETDATE()) AS 'Today'
select GETDATE()
--增加月份
select DATEADD(MONTH,5,'2016-8-31')
--算时间差
select DATEDIFF(DAY,'2008-8-8','2016-8-31')
--精确获取时间
select SYSDATETIME()
SQL 课程的更多相关文章
- SQL 课程 连接查询
今天,我主要是对前面所学习过的子查询进行了复习,然后学习了连接查询join on 的内容. 如: select renyuan.code,name,age ,sex , bumen.bname,bce ...
- SQL 课程 子查询
今天,我主要学习了子查询的内容. create database lianxi0720 go use lianxi0720gocreate table bumen( bcode int primary ...
- SQL Server中行列转换 Pivot UnPivot
SQL Server中行列转换 Pivot UnPivot PIVOT用于将列值旋转为列名(即行转列),在SQL Server 2000可以用聚合函数配合CASE语句实现 PIVOT的一般语法是:PI ...
- SQL中PIVOT 行列转换
来源:http://www.studyofnet.com/news/295.html PIVOT通过将表达式某一列中的唯一值转换为输出中的多个列来旋转表值表达式,并在必要时对最终输出中所需的任何其余列 ...
- Ms sql行转列。汇总
SQL行转列汇总 PIVOT 用于将列值旋转为列名(即行转列),在 SQL Server 2000可以用聚合函数配合CASE语句实现 PIVOT 的一般语法是:PIVOT(聚合函数(列) FOR 列 ...
- sql server 行转列(转载)
SQL Server中行列转换 Pivot UnPivot PIVOT用于将列值旋转为列名(即行转列),在SQL Server 2000可以用聚合函数配合CASE语句实现 PIVOT的一般语法是:PI ...
- sql:pivot unpivot
pivot 行转列 unpivot 列转行 源码跑步起来 这是能跑起来的 源码转自 http://www.cnblogs.com/zhangzt/archive/2010/07/29/178782 ...
- Sql 行转列问题总结
行转列问题总结 1.行转列 ---1.最简单的行转列/* 问题:假设有张学生成绩表(tb)如下:姓名 课程 分数张三 语文 74张三 数学 83张三 物理 93李四 语文 74李四 数学 84李四 物 ...
- sql 行专列 列转行 普通行列转换
转载:http://www.cnblogs.com/newwind521/archive/2010/11/25/1887203.html sql 行专列 列转行 普通行列转换 /* 标题:普通行列转换 ...
随机推荐
- HTTP 错误 404.8 - Not Found
HTTP 错误 404.8 - Not Found请求筛选模块被配置为拒绝包含 hiddenSegment 节的 URL 中的路径. 详细错误信息模块 RequestFilteringModule 通 ...
- Python之软件管理
常用软件包管理工具 一般python软件包管理工具,主要有以下: 图 常用python包管理工具 可以看到distribute是setuptools的替代方案(因为Setuptools包不再维护了), ...
- 给Cygwin重新安装curl
之前已经安装过了cygwin了,但是重装了系统了. 不过发现cygwin倒是还可以继续使用. 现在想要使用其中的curl工具. 但是却在cygwin安装目录 E:\dev_install_root\c ...
- mouseover和this的巧用
mouseover & mouseout 的问题 在JS中,使用mouseover & mouseout会有触发多次的问题,这里Jquery有了替代的新属性 mouseover == ...
- vim 常用操作
a 进入INSERT MODE x 删除当前光标下的字符dw 删除光标之后的单词剩余部分.d$ 删除光标之后的该行剩余部分.dd 删除当前行. c 功能和d相同,区别在于完成删除操作后进入INSERT ...
- 矩阵赋值实例(matrixAssign)
题目:给一个二维数组赋值. 分析:主机端代码完成的主要功能: 启动CUDA,使用多卡时应加上设备号,或使用cudaSetDevice()设置GPU设备. 为输入数据分配内存空间 初始化输入数据 为GP ...
- 利用GCD实现单利模式的宏代码
以下是.h文件,使用时,直接在需要实现单例模式的类中导入头文件即可. // .h文件 #define DenglSingletonH(name) + (instancetype)shared##nam ...
- vim menu乱码
syntax enable syntax on colorscheme desert set nocompatible set filetype=c set number set wrap " ...
- hibernate异常:org.hibernate.NonUniqueObjectException
异常:org.hibernate.NonUniqueObjectException 提示:a different object with the same identifier value was a ...
- 利用poi向excle写入数据
import java.io.FileInputStream;import java.io.FileOutputStream;import java.io.IOException;import org ...