当前位置: 首页 > news >正文

SQL笔记

总结一下常用到的sql语句,以及一些sql的优化相关的内容。(以MySQL为例)

1.数据类型

a.整型

tinyint 1字节 范围(-128~127)

smallint 2字节 范围(-32768~32767)

mediumint 3字节 范围(-8388608~8388607)

int 4个字节 范围(-2147483648~2147483647)

注意默认是有符号,若加unsigned,最大值乘2


b.浮点型

float 4字节

double 8字节


c.字符串

char 255个字符

varchar 65535个字符

tinytext 255个字符

text 65535个字符

注意1.char是固定长度的,其它都是变长的 2.varchar可直接创建索引,text创建索引要指定前多少个字符

d.日期时间

data 2018-12-2 日期

time 12:30:20 时间

datetime 2018-12-2 12:30:44 日期时间

timestamp 自动存储记录修改的时间


这些数据类型都有哪些属性

NULL 数据列可以包含NULL值

NOT NULL 数据列不能包含空值

DEFAULT 默认值、

PRIMARY KEY 主键

AUTO_INCREMENT 自动递增,用于整数类型

UNSIGEND 无符号

2.常用语句

UNION:连接两个以上的 SELECT 语句的结果组合到一个结果集合中

ORDER BY :使用字段来作为排序的条件,从而返回排序后的查询结果。(ASC:升序,DESC:降序,默认升序)

GROUP BY:根据一个或多个列对结果集进行分组

INNER JOIN:内连接,或等值连接:获取两个表中字段匹配关系的记录

LEFT JOIN: 左连接获取左表所有记录,即使右表没有对应匹配的记录

RIGHT JOIN :右连接 用于获取右表所有记录,即使左表没有对应匹配的记录


3.SQL的一些简单优化技巧

a.尽量不查询多余的数据

避免select * ,where严格限定要查询的条件,使用limit

b.建立索引,对于复合索引的使用要谨慎

c.like谨慎使用(可能造成非常严重的慢查询)

d. != 或 <> IS NULL 或 IS NOT NULL 会使索引失效




4.重要概念理解

游标:为用户开设的一个数据缓冲区,存放SQL语句的执行结果,主要特点是可以进行行集操作(游标的有很多非常经典的场景,有时间单独列一下)

事务:主要用来处理操作量大,复杂度高的数据,它是对数据库的一系列操作,主要特点是一个事中的所有操作,要么全部完成,要么全部不完成

存储过程:SQL语句需要先编译然后执行,而存储过程是一组为了完成特定功能的SQL语句集,经编译后存储在数据库中,用户通过指定存储过程的名字并给定参数(如果该存储过程带有参数)来调用执行它。

触发器:它是一个表级的数据库对象,在满足相应的条件是被触发





相关文章:

  • 让你成为前端,后端或全栈开发程序员的进阶指南,一门学到老的技术
  • 剑指offer-数值的整数方
  • 阿里研究院入选中国企业智库系统影响力榜
  • 实战:基于Spring Boot快速开发RESTful风格API接口
  • 开工的欲望 | AI Studio悄然上线新功能,用你的模型生成在线预测服务
  • 阿里云爬虫风险管理产品商业化,为云端流量保驾护航
  • 集群概念
  • 周末时间学习Linux
  • Brief introduction of how to 'Call, Apply and Bind'
  • CSS样式:覆盖规则
  • 猴子数据域名防封接口降低小说被封的风险
  • hadoop搭建之hive安装
  • 构造函数(constructor)与原型链(prototype)关系
  • css3省略……
  • ASP.NET MVC从视图传参到控制器的几种形式
  • -------------------- 第二讲-------- 第一节------在此给出链表的基本操作
  • [译]前端离线指南(上)
  • 「译」Node.js Streams 基础
  • 【划重点】MySQL技术内幕:InnoDB存储引擎
  • 5分钟即可掌握的前端高效利器:JavaScript 策略模式
  • ERLANG 网工修炼笔记 ---- UDP
  • es6要点
  • Invalidate和postInvalidate的区别
  • Laravel Telescope:优雅的应用调试工具
  • log4j2输出到kafka
  • Python学习笔记 字符串拼接
  • QQ浏览器x5内核的兼容性问题
  • Twitter赢在开放,三年创造奇迹
  • vue-cli在webpack的配置文件探究
  • 测试如何在敏捷团队中工作?
  • 猴子数据域名防封接口降低小说被封的风险
  • 开发了一款写作软件(OSX,Windows),附带Electron开发指南
  • 理解IaaS, PaaS, SaaS等云模型 (Cloud Models)
  • 码农张的Bug人生 - 见面之礼
  • 每个JavaScript开发人员应阅读的书【1】 - JavaScript: The Good Parts
  • 使用iElevator.js模拟segmentfault的文章标题导航
  • No resource identifier found for attribute,RxJava之zip操作符
  • 新海诚画集[秒速5センチメートル:樱花抄·春]
  • # 飞书APP集成平台-数字化落地
  • (1)bark-ml
  • (145)光线追踪距离场柔和阴影
  • (9)目标检测_SSD的原理
  • (博弈 sg入门)kiki's game -- hdu -- 2147
  • (二十五)admin-boot项目之集成消息队列Rabbitmq
  • (免费领源码)python#django#mysql公交线路查询系统85021- 计算机毕业设计项目选题推荐
  • (五)MySQL的备份及恢复
  • (转)Android学习笔记 --- android任务栈和启动模式
  • ***监测系统的构建(chkrootkit )
  • .aanva
  • .bat批处理(十):从路径字符串中截取盘符、文件名、后缀名等信息
  • .Net CF下精确的计时器
  • .NET Core实战项目之CMS 第一章 入门篇-开篇及总体规划
  • .Net Winform开发笔记(一)
  • .NET 使用 JustAssembly 比较两个不同版本程序集的 API 变化
  • .NET/C# 使用 #if 和 Conditional 特性来按条件编译代码的不同原理和适用场景