• SQL 基本知识


    四个基础语法
    1. insert into 表名 (列名) [values] 值列表
    insert into 表名 values 值列表
    【扩展】插入多行:
    1. insert into <表名> (列名)
    select 列名
    from <源表名>

    2. select 列名
    into <表名>
    from <源表名>
    【注】创建表,复制列名的结构及数据到新表中,但是,这个SQL语句只能使用一次

    3. insert into <表名> (列名)
    select 值列表 union
    select 值列表

    2. delete [from] 表名 [where条件]

    3. update 表名 set 列名=值 , 列名2=值2 [where条件]

    4. select 列名 from 表名 [where 条件]

    多表查询:
      内连接(inner join ):
        select 表1.列名,表2.列名 from 表名1 as 表1 inner join 表名2 as 表2
        on 表1.字段名=表2.字段名
        inner join 表名3 as 表3
        on 表1.字段名=表3.字段名

      还可以用另一种写法

        select 表1.列名,表2.列名 from 表名1 as 表1,表名2 as 表2,表名3 as 表3 

        where 表1.字段名=表2.字段名

        and  表1.字段名=表3.字段名

      外连接:
        左外:
          select 表1.列名,表2.列名 from 表名1 as
          表1 left outer join 表名2 as 表2
          on 表1.字段名=表2.字段名
        右外:
          select 表1.列名,表2.列名 from 表名1 as
          表1 right outer join 表名2 as 表2
          on 表1.字段名=表2.字段名

      其它知识点

         1. 模糊查询三种方式
          第一种:select 列名 from 表名 where 列名 like '表达式'
          /*
          常见通配符有以下四种:
            _ : 一个字符
            % : 任意长度的字符
            []:区间内的字符
            [^]: 不区间内的字符
            */
          第二种:select 列名 from 表名 where 列名 in (值1,值2)
          第三种:select 列名 from 表名 where 列名 between 值1 and 值2

          【注】:值2不大小于值1


        2. 判断是否为空
          空: 列名 is null or 列名=''
          不为空: 列名 not is null and 列名!=''

        3. 分组(group by...having)
          select 列名(group by 的列名,或者函数) from 表名
          where [条件]
          group by 列名
          having 条件
          order by 排序[asc|desc]

    函数

      1. 聚合函数
        SUM(列名):和
        MAX(列名):最大值
        MIN(列名):最小值
        AVG(列名):平均值
        COUNT(列名):列数

        聚合函数是求不为空的个数、值、或者和

      2. 日期:当前日期:getdate()
        datediff(日期部分,日期1,日期2):求日期部分的差
        dateadd(日期部分,增加值,指定日期)
        datepart(日期部分,指定日期)
        datename(日期部分,指定日期)

      3. 字符串函数

        a. charindex(寻找的字符,搜索列[,起始位置]);
          在一段字符中搜索字符或字符串,返回起始位置,(注:起始位置从1开始,如果没有找到返回0)
          e.g select * from Student where charindex('金',StudentName)>0
        b. len(字符串|列名):返回字符串长度
          select len('hello world'); 返回11
        c. upper(字符串|列名):把传递的值转换成大写
          select upper('hello world'); HELLO WORLD
        d. ltrim(字符串|列名):去字符串左边的空格
          rtrim(字符串|列名):去字符串右边的空格
          e.g:select ltrim(' hello world ');
            select rtrim(' hello world ');
        e. right(字符串,长度):
          从字符串右边返回指定数目的字符
         left(字符串,长度)
          从字符串左边返回指定数目的字符
        f. replace(待搜索字符,待查询字符,替换用的字符)
          替换一个字符串中的字符
          e.g select replace('hello world','hello','hi');结果hi world

  • 相关阅读:
    Luogu P4892 GodFly的寻宝之旅【状压dp】By cellur925
    Luogu P1092 虫食算【搜索/剪枝】 By cellur925
    搜索之蜜汁剪枝
    Luogu P1514引水入城【搜索】 By cellur925
    Luogu P1074靶形数独【搜索/剪枝】By cellur925
    常用算法(冒泡、插入、选择、快速)和二叉树详解
    Java面试常问问题及答案(非常详细)
    GitHub代码上传教程
    停更一段时间
    线程之间状态和转换(新建、就绪、运行、阻塞、死亡)
  • 原文地址:https://www.cnblogs.com/doubleyong/p/4312843.html
Copyright © 2020-2023  润新知