• 查询方法和聚合函数


      1 --使用昨天创建好的lianxi0425的数据库
      2 --1.创建一个学生信息表xinxi
      3 --列名分别为:
      4 --code(int) not null
      5 --name(varchar(50))      not null
      6 --birth(varchar(50))    not null   
      7 --sex(char(10))    not null
      8 --score(decimal(18,2))
      9 --banji(varchar(20))        not null   
     10 --创建表格
     11 use lianxi0425
     12 go
     13 create table xinxi
     14 (
     15  code int not null,
     16  name varchar(50) not null,
     17  birth varchar(50) not null,
     18  sex   char(10)  not null,
     19  score  decimal(18,2) not null,
     20  banji  varchar(20)  not null,
     21 )
     22 go
     23 
     24 
     25 
     26 --插入信息:
     27 --插入十个人的信息,插入班级时要求有两个班级
     28 --创建一班数据
     29 insert into xinxi values(101,'张三','1990年3月2日','',86,'一班')
     30 insert into xinxi values(102,'王丽','1991年5月5日','',95,'一班')
     31 insert into xinxi values(103,'王五','1990年10月3日','',86,'一班')
     32 insert into xinxi values(104,'李四','1992年11月11日','',89,'一班')
     33 insert into xinxi values(105,'张红','1990年9月5日','',80,'一班')
     34 
     35 --创建二班数据
     36 insert into xinxi values(201,'赵六','1990年4月2日','',94,'二班')
     37 insert into xinxi values(202,'赵红','1991年6月6日','',95,'二班')
     38 insert into xinxi values(203,'马七','1990年5月9日','',86,'二班')
     39 insert into xinxi values(204,'刘九','1992年12月20日','',78,'二班')
     40 insert into xinxi values(205,'马丽','1990年7月5日','',92,'二班')
     41 --1)查询全部
     42 select *from xinxi
     43 --2)查询一列(姓名)
     44 select  name from xinxi
     45 --3)查询多个列(姓名、性别、生日)
     46 select name,sex,birth from xinxi
     47 --4)根据条件查询一行(code=102)
     48 select * from xinxi where code=102
     49 --5)根据条件查找一个数据(code为102的姓名)
     50 select name from xinxi where code =102
     51 --6)根据条件查找多个数据(code为102的姓名性别)
     52 select name , sex from xinxi where code=102
     53 --7)插入一条数据(自己的信息)
     54 insert into xinxi values(206,'张全蛋','1989年3月3日','',60,'二班')
     55 --8)更改code为102的学生的生日为1990-1-1
     56 update xinxi set birth='1990年1月1日' where code=102
     57 --9)删除code为205的学生的数据
     58 delete from xinxi where code=205
     59 
     60 --查询所有分数在90分以上的
     61 select * from xinxi where score between 90 and 100
     62 select * from xinxi where score>90
     63 
     64 --模糊查询  用% 表示
     65 --%可以表示任意的字符,不管长度如何
     66 --like     像
     67 --查看所有姓赵的
     68 select * from xinxi where name like '赵%'
     69 select * from xinxi where name like '%四'
     70 --下划线表示此位置只有一个完整字符
     71 --查看姓李的并且名字只有两个字
     72 select * from xinxi where name like '李_'
     73 
     74 --分数从小到大排出来   后缀为asc   默认不写就是升序
     75 select * from xinxi order by score
     76 --降序        后缀为desc
     77 select * from xinxi order by score desc
     78 
     79 --查看分数排名前三的人员的所有信息
     80 select top 3 * from xinxi order by score desc
     81 
     82 
     83 
     84 --聚合函数
     85 --AVG()    求平均数
     86 --求平均分数        as表示列名显示为***
     87 select AVG(score) as 平均分 from xinxi
     88 --查询一班的平均分
     89 select AVG(score) as 平均分 from xinxi where banji='一班'
     90 
     91 --Count   求个数
     92 select COUNT(*) from xinxi
     93 --查询姓王的人有几个
     94 select COUNT(*) from xinxi where name like '王%'
     95 
     96 --MAX  求最大
     97 select MAX(score) from xinxi where banji='二班'
     98 --MIN  求最小
     99 
    100 --SUM   求总和
    101 select SUM(score) from xinxi where banji = '一班'
    102 
    103 --group by 分组
    104 select banji from xinxi group by banji
    105 --分组之后看看每个班级的平均分
    106 select banji , AVG(score) as 平均分,COUNT(*) as 人数 from xinxi group by banji
    107 --having     后面只允许跟聚合函数
    108 select banji ,AVG(score) as 平均分 from xinxi where score>85 group by banji having COUNT(*)>3
    109 
    110 
    111 --select   作用   查询
    112 select 7+19
    113 
    114 --数学函数
    115 --ABS    绝对值
    116 select ABS(-44)
    117 --ceiling    上线
    118 select CEILING(3.14)
    119 --floor     下线
    120 select FLOOR(3.14)
    121 --POWER     谁得几次方
    122 select POWER(6,4)
    123 --ROUND      四舍五入,逗号后边表示小数点后有几位
    124 select ROUND(44.444,0)
    125 --SQRT    平方根
    126 select SQRT(4)
    127 --square     2次方
    128 select SQUARE(4)
    129 
    130 
    131 --字符串函数
    132 --ASCII            将字符转化为数值
    133 select ASCII('a')
    134 select ASCII(name) from xinxi
    135 --CHAR            将数值转化为字符
    136 select CHAR(97)
    137 select CHAR(score) from xinxi
    138 --CHARINDEX     查看此字符串首次出现的位置
    139 select CHARINDEX('efg','abcdefghijklmn')
    140 
    141 --left    从左侧截取多少个
    142 select LEFT('abcdefg',3)
    143 --right    从右截取几个
    144 select RIGHT('abcdefg',3)
    145 --LEN    查看字符串的长度,前面的空格算,后面的不算
    146 select LEN('     abc     ')
    147 
    148 
    149 --时间日期函数
    150 SET DATEFIRST 1
    151 SELECT @@DATEFIRST AS '1st Day', DATEPART(dw, GETDATE()) AS 'Today'
    152 SELECT GETDATE()--获取当前时间
    153 select SYSDATETIME()--获取更精确的系统时间
  • 相关阅读:
    JVM学习-垃圾回收算法
    JVM学习-jvm判断对象已死的方法
    JVM学习-jvm内存区域
    python 多线程
    Python+unittest+requests+excel实现接口自动化测试框架
    linux 运行tensorflow文件缺少_bz2问题及解决
    获取url地址
    微信小程序的小问题(2)
    微信小程序的小问题(1)
    前端知识
  • 原文地址:https://www.cnblogs.com/mazhijie/p/5587406.html
Copyright © 2020-2023  润新知