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 行专列 列转行 普通行列转换 /* 标题:普通行列转换 ...
随机推荐
- POJ 2104:K-th Number(整体二分)
http://poj.org/problem?id=2104 题意:给出n个数和m个询问求区间第K小. 思路:以前用主席树做过,这次学整体二分来做.整体二分在yr大佬的指点下,终于大概懂了点了.对于二 ...
- 单向链表仿LinkedList
public class ChainTable { private Node firstNode;//第一个节点 private Node lastNode;//最后一个节点 private int ...
- Hadoop之MapReduce分布式计算
简单介绍一下项目背景——很简单,作死去接下老师的活,然后一干就是半个月,一直忙着从零基础到使用Hadoop中的MapReduce来解决一个实际问题,也就是用来计算一个数据量较大的二度朋友关系. 那么首 ...
- 如何查看centos系统版本
[root@LAMP1 config]# cat /proc/version Linux version 2.6.32-279.el6.x86_64 (mockbuild@c6b9.bsys.dev. ...
- 《Intel汇编第5版》 汇编调用子过程
一.Call和Ret指令 二.在子过程中需要自己保存可能会修改掉的寄存器值,这里可以使用USES伪指令来生成 三.一个数组求和的汇编例子 TITLE Call a Proc Demo INCLUDE ...
- mysql中文显示问号
mysql插入中文后显示为?,查到http://blog.csdn.net/chenxingzhen001/article/details/7567812中方法,即 在my.ini配置文件中的[myd ...
- 四步安装typecho(LNMP环境)
##1 安装nginx,mysql,php环境 sudo apt-get install nginx php5-fpm php5-cgi php5-cli php5-curl php5-gd php5 ...
- hibernate异常:org.hibernate.exception.GenericJDBCException
异常:org.hibernate.exception.GenericJDBCException 提示:Cannot open connection 提示:不能打开链接 一般这个异常是由 java.sq ...
- freemarker(FTL)常见语法大全
[转载]freemarker(FTL)常见语法大全 FreeMarker的插值有如下两种类型:1,通用插值${expr};2,数字格式化插值:#{expr}或#{expr;format} ${boo ...
- servlet之过滤器(转载)
林炳文Evankaka原创作品.转载请注明出处http://blog.csdn.net/evankaka 一.Filter 1.过滤器的概念 Java中的Filter 并不是一个标准的Servlet ...