《sql必知必会笔记》

第一章 了解SQL

  • 表中应放同一种类型的数据
  • 模式:描述表的布局及特征信息
  • 每列都有相应的数据类型,数据类型可以帮助分类数据,并在优化磁盘使用方面起到重要作用

第二章 检索数据(select

  • SQl语句不区分大小写
  • 使用select需要指出选什么和从哪选择,格式为select xxx,xxx from xxx
  • select * from xxx:检索所有列
  • SQL数据一般是先进行格式化,在表示出来
  • select后面加distinct,可以让数据库返回不同的值,该关键字作用于所有的列
  • Oracle可以在select..from..后面加上where rownum<=5,达到只输出前五行的效果
  • 使用--或者/.../表示注释

第三章 排序检索数据(order by

  • 子句:SQL由子句构成,有些子句是必须的,有些是可选的。一个子句由关键字和数据构成,from和order by都是子句
  • select...from...order by xxx1,xxx2,表示按照xxx1和xxx2来排序要显示的数据,xxx可以是多个,出现顺序即是排序依据的优先级(如果xxx1相等,那么在按照xxx2进一步排序
  • order by 必须是最后一条子句,否则出错
  • 默认是升序排序,可以通过DESC关键字实现降序
  • 与distinct不同,DESC关键字只作用与它前面的列名

第四章 过滤数据(where

  • where也是子句,放在from后面,order by 前面,基本格式:where xxx 表达式 xx
  • 如果要比较的值是字符串,需要用单引号括起来
  • 可以检查某个范围:where xxx between x and x
  • 检索出具有NULL值的列:where xx is null
  • 在进行匹配过滤或者非匹配过滤时,不会返回包含NULL值的结果

第五章 高级数据过滤(and,or,in,not

  • 为避免运算优先级造成影响,应使用()
  • IN操作指定条件范围,in后面跟由逗号分隔的合法值,这些值必须在括号内
    • where xx in (xxx):将xx属于xxx范围内的行检索出来,起到or的效果
  • NOT否定后面跟着的条件(放在条件前面

第六章 用通配符进行过滤(%_

  • 通配符:用来匹配值的一部分的特殊字符
  • 想使用通配符,需要LIKE操作符,该操作符指示DBMS后面的搜索模式利用通配符匹配
  • 通配符搜索只能用于字符串(文本
  • %匹配多个任意字符,_只能匹配一个
    • 例如搜索含bean bag的行:where prod_name LIKE '%bean bag%'

第七章

  • 字段:通常与列含义相同
  • 操作符||:用于拼接字段
    如select vend_name || '(' || vend_country || ')' from ...select将返回这四个元素拼接成的列,但没有名字
  • 可以使用AS关键字来赋予别名,AS前面不用加逗号
    • 如select vend_name || '(' || vend_country || ')' AS vend—title from ...select将返回这四个元素拼接成的列,名字为vend—title
    • 别名可以是单词或者字符串,后者需要用引号括
  • select里面可以进行算术运算,支持基本的加减乘除
  • select常用于检索数据,如果省略了from,就是简单的访问处理表达式,可以用select来验证测试语句效果
  • RTRIM()函数去掉值右边的所有空格,LTRIM是左边,TRIM去掉两边

第八章 使用函数处理数据

  • 使用函数的语句没有移植性,因为不同数据库,函数名和使用方法很可能不同
  • soundex()将返回和参数读起来相似的结果
  • Oracle里面extract()函数有两个参数,可以提取日期的一部分,月份用month,年份用year
    • extract(year,order—date)=2020,检索条件为:年份为2020
  • Oracle里面to_date() 函数将字符串转化为日期
posted @   穿过雾的阴霾  阅读(55)  评论(0编辑  收藏  举报
编辑推荐:
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?
点击右上角即可分享
微信分享提示