zoukankan      html  css  js  c++  java
  • 聚合函数,数学、字符串、函数,时间日期函数

    create database lianxi0425--创建一个名字为lianxi0425的数据库
    go
    use lianxi0425 --使用练习0425这个数据库
    go
    
    --创建一个学生xinxi1的表,填写学号、名字、出生年份、性别、分数、班级
    create table xinxi1
    (
        code int not null,
        name varchar(50)      not null,
        birth varchar(50)    not null,   
        sex char(10)    not null,
        score decimal(18,2),
        banji varchar(20)        not null   
    )
    go
    --向表中添加值
    insert into xinxi1 values(1,'张三',87,'',98.5,'一班')
    insert into xinxi1 values(2,'李四',88,'',97.5,'一班')
    insert into xinxi1 values(3,'王五',89,'',96.5,'一班')
    insert into xinxi1 values(4,'赵六',90,'',95.5,'一班')
    insert into xinxi1 values(5,'冯七',91,'',94.5,'一班')
    insert into xinxi1 values(6,'周小红',92,'',93.5,'一班')
    insert into xinxi1 values(7,'孙小明',93,'',92.5,'二班')
    insert into xinxi1 values(8,'吴小刚',94,'',91.5,'二班')
    insert into xinxi1 values(9,'郑克爽',95,'',90.5,'二班')
    insert into xinxi1 values(10,'冯锡范',96,'',99.5,'二班')
    go
    --查询全部
    select*from xinxi1
    --修改表中的值
    --把编号为6的周小红班级改为二班
    --用update修改xinxi1表中的数据,set列名为banji的列表中改名为二班,where条件name中'周小红'只修改这一个
    update xinxi1 set banji = '二班' where name = '周小红'
    --查询多个列(姓名,性别,生日)
    select name,sex,birth from xinxi1
    --根据条件查询一行(code=2)
    select*from xinxi1 where code=2
    --根据条件查找一个数据(code为3的姓名)
    select name from xinxi1 where code=3
    --根据条件查找多个数据(code为4的姓名,性别,分数)
    select name,sex,score from xinxi1 where code=4
    --插入一条数据(自己的信息)
    insert into xinxi1 values(11,'索额图',88,'',98,'二班')
    --删除code为8的学生的数据
    delete from xinxi1  where code=8
    --查询所有分数在95分以上的
    select*from xinxi1 where score between 95 and 100 --between and二者之间,在分数95到90之间
    select*from xinxi1 where score>95
    --查询模糊  用%表示
    --%可以表示任意字符,不管长度如何
    --like 像
    --查看所有名字中有小的
    select*from xinxi1 where name like '%小%'
    --查看所有姓张的
    select*from xinxi1 where name like '张%'
    --查看所有名字后面是七的
    select*from xinxi1 where name like '%七'
    --下划线表示此位置只有一个完整字符
    --查看姓李的并且名字只有两个字
    select*from xinxi1 where name like '李_'
    
    --根据分数从小到大把学生信息排出来  后缀为asc 默认不写就是升序
    select*from xinxi1 order by score asc --order by排序,用法order by加上列名
    --降序  后缀为desc
    select*from xinxi1 order by score desc --后面加desc排序就会从大到小降序
    --查询排名前三的人员所有信息
    select top 3*from xinxi1 order by score desc--首先查询xinxi1中数据按照分数从大到小排列,再选取从上到下前三个人,用top,表示从上面开始,3表示选取三个
    
    
    --聚合函数
    --AVG()求平均数
    --求平均分数  as表示列名显示为***
    select AVG(score)as 平均分 from xinxi1
    --查询一班的平均分
    select AVG(score)as 平均分 from xinxi1 where banji='一班'
    --Count 求个数
    select COUNT(*)from xinxi1 
    --查询姓王的人有几个
    select COUNT(*)from xinxi1 where name like'王%'
    --查询有几个女的
    select COUNT(*)from xinxi1 where sex=''
    --MAX 求最大  最高分
    select MAX(score) from xinxi1
    --求二班最高分
    select MAX(score) from xinxi1 where banji='二班'
    --MIN 求最小
    --求分数最少的
    select MIN(score) from xinxi1 
    --求一班最低分
    select MIN(score) from xinxi1 where banji='一班'
    --SUM求总和
    --求分数总和
    select SUM(score) from xinxi1 
    --求一班分数总和
    select SUM(score) from xinxi1 where banji='一班'
    
    --group by 分组
    select banji from xinxi1 group by banji
    --分组之后看看每个班级的人数和平均分
    select banji,AVG(score)as 平均分,COUNT(*)as 人数  from xinxi1 group by banji
    
    --having 后面只允许跟聚合函数
    select banji,AVG(score)as 平均分 from xinxi1 where score>92 group by banji having COUNT(*)>3--having后面加的属于一个筛选条件,看看前面函数是否有符合这个条件的,不符合的不显示,只显示符合
    
    
    --select   作用   查询
    select 7+19
    
    --数学函数
    --ABS    绝对值
    select ABS(-44)
    --ceiling    上线
    select CEILING(3.14)
    --floor     下线
    select FLOOR(3.14)
    --POWER     谁得几次方
    select POWER(6,4)--这个表示6的4次方
    --ROUND      四舍五入,逗号后边表示小数点后有几位
    select ROUND(44.444,0)--44.4440四舍五入,小数点后面有零位
    --SQRT    平方根
    select SQRT(4)--开平方 
    --square     2次方
    select SQUARE(4)
    
    
    --字符串函数
    --ASCII            将字符转化为数值
    select ASCII('a')
    select ASCII(name) from xinxi1
    --CHAR            将数值转化为字符
    select CHAR(97)
    select CHAR(score) from xinxi1
    --CHARINDEX     查看此字符串首次出现的位置
    select CHARINDEX('efg','abcdefghijklmn')
    
    --left    从左侧截取多少个
    select LEFT('abcdefg',3)
    --right    从右截取几个
    select RIGHT('abcdefg',3)
    --LEN    查看字符串的长度,前面的空格算,后面的不算
    select LEN('     abc     ')
    --时间日期函数
    SET DATEFIRST 1--程序默认一周的第一天是周日,需要把它先改为1,周一
    SELECT @@DATEFIRST AS '1st Day', DATEPART(dw, GETDATE()) AS 'Today'
    SELECT GETDATE()--获取当前时间
    select SYSDATETIME()--获取更精确的系统时间

  • 相关阅读:
    服务器图片等资源在8080端口保存
    thinkphp 3.2.1 URL 大小写问题 下面有具体说明
    linux samba smb 在客户端无法连接使用
    php连接redis服务
    服务器死机 导致 mongo 挂掉
    同一个页面引用不同版本jquery库
    CSS3阴影 box-shadow的使用和技巧总结
    php 中使用正则
    Hbase-1.1.1-java API
    hive1.2.1问题集锦
  • 原文地址:https://www.cnblogs.com/zyg316/p/5568810.html
Copyright © 2011-2022 走看看