网站导航网学 原创论文 原创专题 网站设计 最新系统 原创论文 论文降重 发表论文 论文发表 UI设计定制 论文答辩PPT格式排版 期刊发表 论文专题
返回网学首页
网学原创论文
最新论文 推荐专题 热门论文 论文专题
当前位置: 网学 > 交易代码 > SQL语法 > 正文

sql常用语句

论文降重修改服务、格式排版等 获取论文 论文降重及排版 论文发表 相关服务

【网学网提醒】:文章导读:在新的一年中,各位网友都进入紧张的学习或是工作阶段。网学会员整理了sql常用语句的相关内容供大家参考,祝大家在新的一年里工作和学习顺利!


    
    
    
    
    
    二、表的数据操作
    1.插入记录
    (1)向XSCJ数据库的表XS中插入如下一行:
    1112罗林琳计算机01/30/19800:0:040
    USEXSCJ
    InsertintoXS
    Values(‘1112’,’罗林琳’,’计算机’,’0’,’1/30/19800:0:0’,40,NULL)
    GO
    
    
    
    
    
    
    
    (2)假如有一个表XS1,内容如下:
    numchar(6)NOTNULL,
    namechar(8)NOTNULL,
    speialitychar(10)NOTNULL
    现在将XS表中专业名为’计算机’的各记录的、和专业名列的值插入到XS1表的各行中。
    USEXSCJ
    InsertIntoXS1
    Select,,专业名
    FromXS
    Where专业名=’计算机’
    
    
    
    
    
    
    
    
    2.删除语句
    (1)将XSCJ数据库的XS表中总学分小于39的行删除。
    USEXSCJ
    DeleteFromXS
    Where总学分<39
    GO
    
    
    
    
    
    (2)将XSCJ数据库的XS表中备注为空的行删除
    DeleteFromXS
    Where备注isNULL
    GO
    
    
    
    
    
    (3)删除表数据
    TruncateTableXS
    3.Update语句修改表数据
    (1)将XSCJ数据库的XS表中为1110的学生的备注列改为“三好生”。
    USEXSCJ
    UpdateXS
    Set备注=“三好生”Where=1110
    GO
    
    
    
    
    
    
    
    (2)将XS表中的所有学生的总学分都增加10,将为“罗林琳”的同学的专业改为“通信工程”,备注改为“转专业学习”,改为001241。
    UpdateXS
    Set总学分=总学分+10
    GO
    
    UpdateXS
    Set专业=’通信工程’,
    备注=’转专业学习’,
    =’001241’
    Where=’罗林琳’
    GO
    
    
    
    
    
    
    
    
    
    
    
    
    三、数据库的查询和视图
    1.数据库查询
    (1)查询XSCJ数据库的XS表中各个同学的、专业名和总学分。
    USEXSCJ
    Select,专业名,总学分FromXS
    
    
    
    
    (2)查询XS表中计算机专业同学的、和总学分。
    Select,,总学分
    FromXS
    Where专业名=’计算机’
    GO
    
    
    
    
    
    
    2.修改查询结果中的列标题
    查询XS表中计算机系同学的、和总学分,结果中各列的标题分别指定为number,name和mark。
    SelectASnumber,ASname,总学分ASmarkFromXS
    Where专业名=’计算机’
    
    
    
    
    
    或者:
    Selectnumber=,name=,mark=总学分FromXS
    Where专业名=’计算机’
    
    
    
    
    
    注意:当自定义的列标题中含有空格时,必须用引号将标题括起来。
    Select‘Studentnu
    mber’=,AS‘Studentname’,mark=总学分
    FromXS
    Where专业名=’计算机’
    
    
    
    
    
    3.替换查询结果中的数据
    要替换查询结果中的数据,则要使用查询中的CASE表达式:
    CASE
    WHEN条件1THEN表达式1
    WHEN条件2THEN表达式2
    WHEN条件3THEN表达式3
    ……………
    ELSE表达式
    END
    
    
    
    
    
    
    
    
    
    
    
    查询XS表中计算机系各同学的、和总学分,对其总学分按以下规则进行替换:若总学分为空值,替换为“尚未选课”;若总学分小于50分,替换为“不及格”;若总学分在50至52分之间,替换为“合格”;若总学分大于52,替换为“优秀”。列标题改为“等级”。
    Select,,
    等级=
    CASE
    WHEN总学分ISNULLTHEN‘尚未选课’
    WHEN总学分<50THEN‘不及格’
    WHEN总学分>=50AND总学分<=52THEN‘’合格’
    ELSE‘优秀’
    END
    FromXS
    Where专业名=’计算机’
    
    
    
    
    
    
    
    
    
    
    
    
    
    3.消除结果集中的重复行
    对XSCJ数据库中的XS表只选择专业名和总学分,消除结果中的重复行。
    SelectDistinct专业名,总学分
    FromXS
    
    
    
    
    
    4.限制结果集返回行数
    对XSCJ数据库的XS表选择、专业名和总学分,只返回结果集的前6行。
    SelectTOP6,专业名,总学分
    FromXS
    
    
    
    
    
    5.模式匹配(Like谓词使用)
    查询XSCJ数据库中XS表中计算机系的学生情况。查询XSCJ数据库中XS表中姓“王”且单名的学生情况。
    Select*FromXS
    Where专业名Like‘计算机’
    GO
    
    Select*FromXS
    WhereLike‘王_’
    GO
    
    
    
    
    
    
    
    
    
    
    6.范围比较
    用于范围比较的关键字有两个:Between和In。
    (1)Between关键字指出查询范围,格式为:
    “表达式[NOT]Between表达式1And表达式2”
    注意:表达式1的值不能大于表达式2
    (2)使用IN关键字可以指定一个值表,值表中列出所有可能的值,当值表中的任一个匹配时,即返回True,否则返回False。使用IN关键子指定值表的格式为:
    “表达式IN(……)”
    (3)查询XSCJ数据库XS表中不在1979年出生的学生情况。查询XSCJ数据库XS表中专业名为“计算机”、“通信工程”或“无线电”的学生情况。
    Select*FromXS
    Where出生时间NOTBetween‘1979-1-1’and‘1979-12-31’
    GO
    
    Select*FromXS
    Where专业名IN(’计算机’,’通信工程’,’无线电’)
    GO
    
    
    
    
    
    
    
    
    
    
    7.子查询
    子查询通常与IN,Ex
    it谓词以及比较运算符结合使用。
    (1)在XSCJ数据库中有描述课程情况的表KC和描述学生成绩表的表XS_KC,要查找选修了课程号为101的课程的学生的情况。
    Select*FromXS
    WhereIN
    (SelectFromXS_KCWhere课程号=’101’)
    
    
    
    
    
    
    注意:IN和NOTIN子查询只能返回一列数据。对于较复杂的查询,可以使用嵌套的子查询。
    (2)查找未选修离散数学的学生情况。
    Select*
    FromXS
    WhereNOTIN
    (
    Select
    FromXS_KC
    Where课程号IN
    (Select课程号
    FromKC
    Where课程名=’离散数学’
    )
    )
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    (3)查找比所有计算机系的学生年龄都大的学生。
    Select*FromXS
    Where出生时间    (
    Select出生时间FromXS
    Where专业名=’计算机’
    )
    
    
    
    
    
    
    
    
    
    (3)查找课程号206的成绩不低于课程号101的最低成绩的学生的。
    SelectFromXS_KC
    Where课程号=’206’AND成绩!    (
    Select成绩FromXS_KC
    Where课程号=’101’
    )
    
    
    
    
    
    
    
    
    
    (4)EXISTS子查询。
    EXISTS谓词用语测试子查询的结果是否为空表,若子查询的结果集不为空,则EXISTS返回TRUE,否则返回FALSE。
    
    查找选修206号课程的学生
    SelectFromXS
    WhereEXISTS
    (
    Select*FromXS_KC
    Where=XS.AND课程号=’206’
    )
    
    
    
    
    
    
    
    
    
    查找选修了全部课程的同学的。
    SelectFromXS
    WhereNOTEXISTS
    (
    Select*FromKC
    WhereNOTEXISTS
    (
    Select*FromXS_KC
    Where=XS.AND课程号=KC.课程号
    )
    
    
    
    
    
    
    
    
    
    
    
    
    查找选修了与为001102同学所选修的全部课程的同学的。
    SelectDISTINCT
    FromXS_KCASCJ1
    WhereNOTEXISTS
    (
    Select*FromXS_KCASCJ2
    WhereCJ2.=’001102’ANDNOTEXISTS
    (
    Select*FromXS_KCASCJ3
    WhereCJ3.=CJ1.ANDCJ3.课程号=CJ2.课程号
    )
    )
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    (5)在XS表中查找1980年1月1日以前出生的学生的和专业名,分别使用别名stu_name和speciality表示。
    Selectm.stu_name,m.speciality
    From(Select*FromXSWhere出生时间<‘1980-01-01’)AS
    m(num,stu_name,speciality,sex,birthday,score,mem
    )
    
    
    
    
    
    8.连接查询
    (1)查找XSCJ数据库每个学生的情况以及选修的课程情况。
    SelectXS.*,XS_KC.*FromXS,XS_KC
    WhereXS.=XS_KC.
    
    
    
    
    
    (2)自然连接查询
    SelectXS.*,XS_KC.课程号,XS_KC.成绩
    FromXS,XS_KC
    WhereXS.=XS_KC.
    
    
    
    
    
    
    (3)查找选修了206课程且成绩在80分以上的学生及成绩。
    Select,成绩FromXS,XS_KC
    WhereXS.=XS_KC.AND课程号=’206’AND成绩>=80
    
    
    
    
    
    (4)JOIN关键字
    内连接:
    内连接按照ON所指定的连接条件合并两个表,返回满足条件的行。
    查找XSCJ数据库每个学生的情况以及选修课程情况。
    Select*FromXSInnerJoinXS_KC
    ONXS.=XS_KC.
    
    
    
    
    注意:内连接是系统默认的,可以省略INNER关键字,使用内连接后仍可使用WHERE子句指定条件。
    查找选修了206课程且成绩在80分以上的学生及成绩。
    Select,成绩
    FromXSJOINXS_KCONXS.=XS_KC.
    Where课程号=’206’AND成绩>=80
    
    
    
    
    
    
    查找选修了“计算机基础”课程且成绩在80分以上的学生、、课程名及成绩。
    Select,,课程名,成绩
    FromXSJOINXS_KCJOINKC
    ONXS_KC.课程号=KC.课程号
    ONXS.=XS_KC.
    Where课程名=’计算机基础’AND成绩>=80
    
    
    
    
    
    
    
    自连接:
    若要在一个表中查找具有相同列值的行,则可以使用自连接。使用自连接时需要为表指定两个别名,且对所有列的引用均要用别名限定。
    查找不同课程成绩相同的学生的、课程号和成绩。
    Selecta.,a.课程号,b.课程号,a.成绩
    FromXS_KCaJOINXS_KCb
    ONa.成绩=b。成绩ANDa.=b.ANDa.课程号!=b.课程号
    
    
    
    
    
    
    外连接:
    左连接(LeftOuterJoin):结果表中除了包括满足连接条件的行外,还包括左表的所有行;
    右连接(RightOuterJoin):结果表中除了包括满足连接条件的行外,还包括右表的所有行。
    完全连接(FullOuterJoin):结果表中除了包括满足连接条件的行外,还包括两个表的所有行。
    查找所有学生情况及他们选修的课程号,若学生未选修任何课,也要包括其情况。
    
  • 上一篇资讯: SQL常用语法
  • 下一篇资讯: SQL常用的几个数据类型
  • 设为首页 | 加入收藏 | 网学首页 | 原创论文 | 计算机原创
    版权所有 网学网 [Myeducs.cn] 您电脑的分辨率是 像素
    Copyright 2008-2020 myeducs.Cn www.myeducs.Cn All Rights Reserved 湘ICP备09003080号 常年法律顾问:王律师