• 爱情文章
  • 亲情文章
  • 友情文章
  • 生活随笔
  • 校园文章
  • 经典文章
  • 人生哲理
  • 励志文章
  • 搞笑文章
  • 心情日记
  • 英语文章
  • 范文大全
  • 作文大全
  • 新闻阅读
  • 当前位置: 山茶花美文网 > 亲情文章 > 正文

    sql,server投影查询、选择查询:sqlserver使用教程

    时间:2020-05-29来源:山茶花美文网 本文已影响 山茶花美文网手机站

    --简单查询

    --投影查询

    /*

    简单查询关键字说明:

    all :指定显示所有的记录,包括重复行。all是默认设置。

    distinct :指定显示所有的记录,但不包括重复行。

    top n [percent]:指定从结果中返回前n行,或者前n%的数据记录

    * : 表示所有记录

    */

    --选择一个表中指定的列

    --查询学生表中“姓名”,“年龄”

    select Sname , Sage from Student

    --查询学生表中的所有记录

    select * from Student --用*表示所有的列

    --查询学生表中所有学生的姓名,去掉重复行

    select distinct Sname from Student

    /*

    用distinct关键字可以过滤掉查询结果中重复行

    */

    --查询学生表中前三行的记录

    select top 3 * from Student

    /*

    用top n 可以指定查询表中的前n行记录

    */

    --查询学生表中前50%的记录

    select top 50 percent * from Student

    /*

    用top n percent可以指定查询表中前n%的记录

    */

    --修改查询结果中的列标题

    /*

    修改查询列名的常用方法

    方法一:在列表达式后面直接给出列名

    方法二:用as关键字来连接列表达式和指定的列名

    */

    --将查询结果中的Sname给成“姓名”,Sno改成“学号”,Sage改成“年龄”

    --方法一:

    select Sno 学号,Sname 姓名,Sage 年龄 from Student

    --方法二:

    select Sno as 学号,Sname as 姓名,Sage as 年龄 from Student

    --计算列值

    select 100-Sage as 寿命 from Student

    --选择查询

    /*

    选择查询语法:

    select select_list from table_list

    where search_condition

    //其中有多种语句可以做为条件表达式

    分别是“关系表达式”、“逻辑表达式”、“between语句”、“in语句”、“like语句”、“is [not] null语句”、“复合语句”

    */

    --使用“关系表达式”做为查询条件。。。。。。

    select * from SC

    --查询所有成绩大于等于90分的记录

    select * from SC Student where Grade>=90

    --使用“逻辑表达式”做为查询条件。。。。。。

    /*

    SQL 中的逻辑表达式:

    not :非

    and :与

    or :或

    */

    select * from Student

    --在学生表中查询年龄是19岁的男学生

    select * from Student where Sage = 19 and Ssex = "男"

    --在学生表中查询年龄是19或20岁的学生

    select * from Student where Sage = 19 or Sage = 20

    --在学生表中查询年龄不是19岁的学生

    select * from Student where not Sage = 19

    --使用between关键之做为查询条件。。。。。。。

    /*

    between 语法:

    表达式 [not] between 表达式1 and 表达式2

    使用between关键字可以方便的控制查询结果数据的范围

    注意使用between形成搜索范围是一个“闭区间”

    */

    --查询所有年龄"大于等于"18岁且"小于等于"20岁的学生

    select * from Student where Sage between 18 and 20

    --查询所有年龄不在18到19岁之间的学生

    select * from Student where Sage not between 18 and 19

    --使用in(属于)关键字做为条件表达式......。。。。。

    /*

    同between关键字一样,in关键字的引入也是为了更加方便的限制检索数据的范围

    */

    /*

    in关键字的语法如下:

    表达式 [not] in (表达式1,表达式2,...)

    */

    select * from Student

    --查询所有年龄为18和19岁的学生

    select * from Student where Sage in (18,19)

    --使用like关键字语句做为条件语句。。。。。。

    /*

    like 关键字搜索与指定模式匹配的字符串

    */

    /*

    通配符介绍:

    % :包括零个或多个字符的任意字符串

    _ : 任何单个字符

    []: 代表指定范围内的单个字符,[]中可以是单个字符(如[acef]),也可以是字符范围(如[a-f])

    [^]: 表示不在指定范围内的单个字符,[^]中可以是单个字符(如[^abef]),也可以是字符范围[^a-f]

    */

    /*

    通配符的示例

    like "AB%" 返回以AB开始的任意字符串

    like "Ab%" 返回Ab开始的任意字符串

    like "%abc"返回以abc结尾的任意字符串

    like "%abc%"返回包含abc的任意字符串

    like "_ab"返回以ab结尾的任意三个字符的字符串

    like "[ACK]%"返回以A、C或K开始的任意字符串

    like "[A-T]ing" 返回四个字符的字符串,以ing结尾,其首字母的范围是A到T

    like "M[^c]%" 返回以M开始且第二个字符不是c的任意长度的字符串

    */

    select * from Student

    --查询所有姓王的学生

    select * from Student where Sname like "王%"

    insert into Student(Sno,Sname,Sage,Ssex,Sdept)

    values ("008","张四",20,"男","sc")

    --查询所有名字中带四字的学生

    select * from Student where Sname like "%四%"

    //

    --使用isnull(是否<不>为空)查询。。。。。。

    /*

    说明:在where语句中不能使用比较运算符来进行控制判断,只能使用空值表达式来判断某个表达式是否为空值

    语法如下:

    表达式 is null

    表达式 is not null

    */

    --查询所有学生姓名为空的学生。。。。。。。。。

    select * from Student where Sname is not null

    --使用复合条件查询。。。。。。。。。。。。。。

    /*

    使用复合语句的时候需要使用逻辑运算符把多个条件语句合并

    and

    or

    not

    每个单独的条件语句可以使用()小括号括起来

    */

    //聚合函数(求记录数据的处理结果)

    --聚合函数 (求记录数据的处理结果)

    /*

    聚合函数是在SQL Server 中已经定义好了的一些列函数

    注意:这些函数处理的是一个数据集合,而不是一行单独的记录

    */

    /*

    sum()返回一个数字列或计算列的总和

    avg()返回一盒数字列或计算列的平均值

    min()返回最小值

    max()返回最大值

    count() 返回一个数据列中数据项数

    count(*) 返回找到的行数

    */

    select * from SC

    --求SC表中成绩的平均值

    select AVG(Grade ) as 成绩平均值 from SC

    --求SC表中成绩的总和

    select sum(Grade ) as 成绩平均值 from SC

    --求SC表中的项数

    select count(Grade ) as 记录条数 from SC

    select COUNT(*) as 记录条数 from SC

    • sql,server投影查询、选择查询:sqlserver使用教程 相关文章:
    • 爱情文章
    • 亲情文章
    • 友情文章
    • 随笔
    • 哲理
    • 励志
    • 范文大全