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 行专列 列转行 普通行列转换 /* 标题:普通行列转换 ...
随机推荐
- Android Studio新手
目标:Android Studio新手–>下载安装配置–>零基础入门–>基本使用–>调试技能–>构建项目基础–>使用AS应对常规应用开发 AS简介 经过2年时间的研 ...
- 【Python】考虑用生成器改写直接返回列表的函数
使用生成器的好处是显而易见的,可以使代码更加清晰,同时减小内存的消耗,当函数需要返回列表,把函数改写为生成器是相对容易的. 下面这两个函数返回字符串中每个单词的索引: def index_words1 ...
- Windows 多用户远程访问 Ubuntu 14.04桌面
使用X2Go实现多用户远程访问 Ubuntu 14.04桌面:VNC也可以,但是每次连接VNC就回新创建一个Seession,想要在下次远程登录的时候返回上次活动,需要记住开启的线程,这种繁琐的操作不 ...
- git出错
查询git的版本是否装对 32 位 64位
- JavaFX基础学习之OkHttp/Gson2
222 package application; import java.io.IOException; import java.net.URL; import java.util.ResourceB ...
- UI_APPEARANCE_SELECTOR 延伸
iOS后属性带UI_APPEARANCE_SELECTOR 可以统一设置全局作用 例如: 1>开关控件 @property(nullable, nonatomic, strong) UIColo ...
- KVM guest caching modes
kvm中host和guest各自维护自己的page caches,使得内存中有两份缓存数据.host的缓存为page cache可以理解为读缓存,guest的缓存为disk write cache,可 ...
- 在Eclipse中设置文件的默认打开方式
在Eclipse中,我们可以设置jsp.xml.js.sql等文件默认打开方式: ①.打开配置选项 ②.找到文件设置 ③.选中我们要设置的文件,默认即可:
- eclipse 使用hadoop-plugins 插件出现EOFException问题
相当郁闷的一个问题,之前也看了好多外国的网站,也没有解答 主要出在了使用http访问 http://192.168.5.128:50030/jobtracker.jsp http://192.168. ...
- toString--->转字符串
因为它是Object里面已经有了的方法,而所有类都是继承Object,所以“所有对象都有这个方法”.它通常只是为了方便输出,比如System.out.println(xx),括号里面的“xx”如果不是 ...