博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
SQL 基本知识
阅读量:5147 次
发布时间:2019-06-13

本文共 2328 字,大约阅读时间需要 7 分钟。

四个基础语法

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

转载于:https://www.cnblogs.com/doubleyong/p/4312843.html

你可能感兴趣的文章
TC 配置插件
查看>>
关于异步reset
查看>>
索引优先队列的工作原理与简易实现
查看>>
并发编程简介
查看>>
wow 各职业体验(pvp)
查看>>
字符串的操作
查看>>
性能优化之Java(Android)代码优化
查看>>
盒子游戏
查看>>
处理程序“PageHandlerFactory-Integrated”在其模块列表中有一个错误模块“Manag
查看>>
01: socket模块
查看>>
mysql触发器
查看>>
淌淌淌
查看>>
web页面实现指定区域打印功能
查看>>
win10每次开机都显示“你的硬件设置已更改,请重启电脑……”的解决办法
查看>>
VMware环境和Window环境进行网络连接的问题
查看>>
macOS10.12允许所有来源设置
查看>>
C++有关 const & 内敛 & 友元&静态成员那些事
查看>>
函数积累
查看>>
python搜索引擎(转)
查看>>
关于height,line-height导致的样式混乱的问题
查看>>