zoukankan      html  css  js  c++  java
  • 插入信息,模糊查询,聚合函数,时间函数,排序,字符串函数,数学函数,求个数,球最大

    --使用昨天创建好的lianxi0425的数据库
    --1.创建一个学生信息表xinxi
    --列名分别为:
    --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   
    --创建表格
    use lianxi0425
    go
    create table xinxi
    (
     code int not null,
     name varchar(50) not null,
     birth varchar(50) not null,
     sex   char(10)  not null,
     score  decimal(18,2) not null,
     banji  varchar(20)  not null,
    )
    go
    
    
    
    --插入信息:
    --插入十个人的信息,插入班级时要求有两个班级
    --创建一班数据
    insert into xinxi values(101,'张三','1990年3月2日','',86,'一班')
    insert into xinxi values(102,'王丽','1991年5月5日','',95,'一班')
    insert into xinxi values(103,'王五','1990年10月3日','',86,'一班')
    insert into xinxi values(104,'李四','1992年11月11日','',89,'一班')
    insert into xinxi values(105,'张红','1990年9月5日','',80,'一班')
    
    --创建二班数据
    insert into xinxi values(201,'赵六','1990年4月2日','',94,'二班')
    insert into xinxi values(202,'赵红','1991年6月6日','',95,'二班')
    insert into xinxi values(203,'马七','1990年5月9日','',86,'二班')
    insert into xinxi values(204,'刘九','1992年12月20日','',78,'二班')
    insert into xinxi values(205,'马丽','1990年7月5日','',92,'二班')
    --1)查询全部
    select *from xinxi
    --2)查询一列(姓名)
    select  name from xinxi
    --3)查询多个列(姓名、性别、生日)
    select name,sex,birth from xinxi
    --4)根据条件查询一行(code=102)
    select * from xinxi where code=102
    --5)根据条件查找一个数据(code为102的姓名)
    select name from xinxi where code =102
    --6)根据条件查找多个数据(code为102的姓名性别)
    select name , sex from xinxi where code=102
    --7)插入一条数据(自己的信息)
    insert into xinxi values(206,'张全蛋','1989年3月3日','',60,'二班')
    --8)更改code为102的学生的生日为1990-1-1
    update xinxi set birth='1990年1月1日' where code=102
    --9)删除code为205的学生的数据
    delete from xinxi where code=205
    
    --查询所有分数在90分以上的
    select * from xinxi where score between 90 and 100
    select * from xinxi where score>90
    
    --模糊查询  用% 表示
    --%可以表示任意的字符,不管长度如何
    --like     像
    --查看所有姓赵的
    select * from xinxi where name like '赵%'
    select * from xinxi where name like '%四'
    --下划线表示此位置只有一个完整字符
    --查看姓李的并且名字只有两个字
    select * from xinxi where name like '李_'
    
    --分数从小到大排出来   后缀为asc   默认不写就是升序
    select * from xinxi order by score
    --降序        后缀为desc
    select * from xinxi order by score desc
    
    --查看分数排名前三的人员的所有信息
    select top 3 * from xinxi order by score desc
    
    
    
    --聚合函数
    --AVG()    求平均数
    --求平均分数        as表示列名显示为***
    select AVG(score) as 平均分 from xinxi
    --查询一班的平均分
    select AVG(score) as 平均分 from xinxi where banji='一班'
    
    --Count   求个数
    select COUNT(*) from xinxi
    --查询姓王的人有几个
    select COUNT(*) from xinxi where name like '王%'
    
    --MAX  求最大
    select MAX(score) from xinxi where banji='二班'
    --MIN  求最小
    
    --SUM   求总和
    select SUM(score) from xinxi where banji = '一班'
    
    --group by 分组
    select banji from xinxi group by banji
    --分组之后看看每个班级的平均分
    select banji , AVG(score) as 平均分,COUNT(*) as 人数 from xinxi group by banji
    --having     后面只允许跟聚合函数
    select banji ,AVG(score) as 平均分 from xinxi where score>85 group by banji having COUNT(*)>3
    
    
    --select   作用   查询
    select 7+19
    
    --数学函数
    --ABS    绝对值
    select ABS(-44)
    --ceiling    上线
    select CEILING(3.14)
    --floor     下线
    select FLOOR(3.14)
    --POWER     谁得几次方
    select POWER(6,4)
    --ROUND      四舍五入,逗号后边表示小数点后有几位
    select ROUND(44.444,0)
    --SQRT    平方根
    select SQRT(4)
    --square     2次方
    select SQUARE(4)
    
    
    --字符串函数
    --ASCII            将字符转化为数值
    select ASCII('a')
    select ASCII(name) from xinxi
    --CHAR            将数值转化为字符
    select CHAR(97)
    select CHAR(score) from xinxi
    --CHARINDEX     查看此字符串首次出现的位置
    select CHARINDEX('efg','abcdefghijklmn')
    
    --left    从左侧截取多少个
    select LEFT('abcdefg',3)
    --right    从右截取几个
    select RIGHT('abcdefg',3)
    --LEN    查看字符串的长度,前面的空格算,后面的不算
    select LEN('     abc     ')
    
    
    --时间日期函数
    SET DATEFIRST 1
    SELECT @@DATEFIRST AS '1st Day', DATEPART(dw, GETDATE()) AS 'Today'
    SELECT GETDATE()--获取当前时间
    select SYSDATETIME()--获取更精确的系统时间
  • 相关阅读:
    HDU 3681 Prison Break 越狱(状压DP,变形)
    POJ 2411 Mondriaan's Dream (状压DP,骨牌覆盖,经典)
    ZOJ 3471 Most Powerful (状压DP,经典)
    POJ 2288 Islands and Bridges (状压DP,变形)
    HDU 3001 Travelling (状压DP,3进制)
    POJ 3311 Hie with the Pie (状压DP)
    POJ 1185 炮兵阵地 (状压DP,轮廓线DP)
    FZU 2204 7
    POJ 3254 Corn Fields (状压DP,轮廓线DP)
    ZOJ 3494 BCD Code (数位DP,AC自动机)
  • 原文地址:https://www.cnblogs.com/zhangdemin/p/5570549.html
Copyright © 2011-2022 走看看