• SQL语法常用函数及高级查询


    基本增删改查

    1.新增INSERT  基本语法

    INSERT INTO [TABLE_NAME](表名) (column1, column2, column3,...columnN) VALUES (value1, value2, value3,...valueN)

    INSERT INTO Student(NAME,AGE,HEIGHT) VALUES('布朗尼',18,'180')

    ———————————————————————————————————————————————————————————————————————————————————————————————————————

    2.查询SELECT 基本语法

    SELECT * FROM TABLE_NAME   SELECT COLUMN,COLUMN2,COLUMN3 FROM TABLE_NAME

    SELECT * FROM STUDENT  *号直接查询当前列表所有行 可以直接查询需要显示的行数    

    ———————————————————————————————————————————————————————————————————————————————————————————————————————

    3.删除DELETE基本语法

    DELETE FROM TABLE_NAME WHERE COLUMNX=‘条件’    如果不加条件   会删除列表所有信息,开发谨慎使用

    DELETE FROM STUDENT WHERE NAME='乔丹' 

     ——————————————————————————————————————————————————————————————————————————————————————————————————————

    3.修改UPDATE基本语法

    UPDATE TABLE_NAME SET COLUMNX='',COLUMNX2=‘’ WHERE COLUMNX3=''      where后面加条件语句    UPDATE 后面直接+表名 不能加FROM

    UPDATE STUDENT SET AGE=100 WHERE NAME='科比'

    ——————————————————————————————————————————————————————————————————————————————————————————————————————

    部分函数介绍

    --substring(字段名,n,m)  分割字符串 某个字段 街区 从 第n位字符 到后面m个字符
    select SUBSTRING(NAME,1,3),NAME from Student where ID=1    

    ——————————————————————————————————————————————————————————————————————————————————————————————————————

    --STUFF(str1,n,m,str2)    第一个子串 从第n位删除 m位数 插入 第二个字符串
    select STUFF(NAME,2,1,'qqqqq'), Name from Student where ID=1    

    ——————————————————————————————————————————————————————————————————————————————————————————————————————

    --left 函数     left(字段,N个数) 从左边开始N个字符
    select left(NAME,4),NAME from Student where ID=1 

    ——————————————————————————————————————————————————————————————————————————————————————————————————————

    --right 函数 right(字段,N个数) 从右边开始N个字符
    select right(NAME,4),NAME from Student where ID=1

    ——————————————————————————————————————————————————————————————————————————————————————————————————————

    --REPLICATE 函数 以指定次数重复字符表达式

    select REPLICATE(NAME,3),NAME from Student where ID=1

    ——————————————————————————————————————————————————————————————————————————————————————————————————————

    -- ltrim和rtrim函数 删除左边空格和右面空格  TRIM 去中间空格  2017SQl才能使用

    select LTRIM(NAME),RTRIM(NAME),TRIM(NAME),NAME from Student where ID=1

     

    ——————————————————————————————————————————————————————————————————————————————————————————————————

    --reverse函数 将字符串反转
    select REVERSE(NAME),NAME from Student where ID=1

     

    高级查询介绍

    子查询

    1.作为查询条件使用  where

     子查询作为条件  查询学号在杜兰特前边的同学

      select * from Student where ID < (select ID from Student where NAME='杜兰特')

     ——————————————————————————————————————————————————————————————————————————————————————————————————

    2.作为临时表使用  from

    select * from
    (select * from Student where NAME='乔丹') s1,
    (select * from StudentScore where SCORE<100) s2 where s1.ID=s2.STUDENTID 

     ——————————————————————————————————————————————————————————————————————————————————————————————————

    3.使用EXISTS和NOT EXISTS子查询

    1.EXISTSNOT EXISTS表示存在不存在的意思

    2.在语句中会判断EXISTS和NOT EXISTS后接的子句是否存在和是否存在

    3.NOT EXISTS的用法与EXISTS一样,唯一的区别就是意义相反。

    --查询存在分数>70的学员的信息
    SELECT * FROM Student inner join StudentScore on Student.ID=StudentScore.STUDENTID
    WHERE EXISTS (SELECT * FROM StudentScore WHERE StudentScore.STUDENTID = Student.ID and StudentScore.SCORE>70)

    --查询存在分数<=70的学员的信息

    SELECT * FROM Student inner join StudentScore on Student.ID=StudentScore.STUDENTID
    WHERE not EXISTS (SELECT * FROM StudentScore WHERE StudentScore.STUDENTID = Student.ID and StudentScore.SCORE>=70)

     —————————————————————————————————————————————————————————————————————————————————————————————————

    可能有人没看懂  inner join   内连接

    SELECT * FROM Student inner join StudentScore on Student.ID=StudentScore.STUDENTID

    两个表中 有关联的id进行连接   学生表 和学生成绩表   主外键关系

    ———————————————————————————————————————————————————————————————————————————————————————————————————————

     

  • 相关阅读:
    IP分片与TCP分片的考虑
    snort-2.9.16在ubuntu16.04环境下的安装,配置与运行
    snort 程序流程图
    宿主机、容器、真实时间不一致问题
    ffi动态链接库的使用
    docker容器中nginx日志的分割
    dockerFile指令详解
    关于如何查看多网卡物理机中网卡序号与物理网卡的对应该关系
    Curl相关参数意义及使用方式
    docker 基础入门
  • 原文地址:https://www.cnblogs.com/wangyihui/p/12553222.html
Copyright © 2020-2023  润新知