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 行专列 列转行 普通行列转换 /* 标题:普通行列转换 ...
随机推荐
- .net 在数据访问层中写一个DBhelper优化类
复习了在学校的时候做的WinForm端的一个学生信息管理系统,用的三层架构,看了一下里面的数据优化类 这个类是用来把对数据库的操作封装成静态方法,增删改查的时候直接调用这个类,减少项目里代码的冗余和方 ...
- 【锋利的Jquery】读书笔记二
一.jquery选择器 基本选择器 层次选择器 过滤选择器 基本过滤 内容过滤 可见性过滤 属性过滤 子元素过滤 first : 获取单个元素 $("div:first&quo ...
- 浙大pat1020题解
1020. Tree Traversals (25) 时间限制 400 ms 内存限制 32000 kB 代码长度限制 16000 B 判题程序 Standard 作者 CHEN, Yue Suppo ...
- ubuntu开放防火墙端口
root@jbxue:$ sudo ufw enable Firewall started and enabled on system startup root@jbxue:$ sudo ufw ...
- 华硕笔记本进pe之前的设置
1.开机的时候长按F2键进入BIOS界面,通过方向键进[Secure]菜单,通过方向键选择[Secure Boot Control]选项,将其设定为 "Disabled"2.通过方 ...
- Linux_jdk
先查看下 yum list java* yum install java-1.7.0-openjdk* -y 环境变量应该是会自动配置的 或者手动配置编辑/etc/profile #vi /etc/p ...
- Q & A
1 使用linux命令或者shell实现:文件words存放英文单词,格式为每行一个英文单词(单词可以重复),统计这个文件中出现次数最多的前10个单词. cat words.txt | sort | ...
- php生成图片缩略图的类方法
//php生成缩略图片的类 class ResizeImage{ public $type;//图片类型 public $width;//实际宽度 public $height;//实际高度 publ ...
- Android内存泄漏检测利器:LeakCanary
Android内存泄漏检测利器:LeakCanary MAR 28TH, 2016 是什么? 一言以蔽之:LeakCanary是一个傻瓜化并且可视化的内存泄露分析工具 为什么需要LeakCanary? ...
- python密码强口令检测
主要就是输入判断检测,以及一些正则的学习.刚开始玩python项目,代码写的不好.我以前玩C的!! 代码的价值与其是否能够实现功能等价! #密码输入检测 密码长度不少于8个字符,而且必须包含大写/小写 ...