https://mp.weixin.qq.com/s/uKFttOdaIXbw5NrYeeUJQg 嗨,你好小伙伴~ 这世上所有的“突然想起”,都是“一直放在心底

上一篇说明了整理这个系列的动机--我记录的还算认真, 同时达到复盘任务, 再同时对外输出,与大家一同进步. 上篇呢也介绍了数据库常用软件和两种类型的数据库系统,如果还没看,可以点击这个穿越链接: 数据库我来啦, 如果你对数据库感兴趣一起看看 这篇开始整理SQL, 在我没学sql的时候我哥们推荐了本书, SQL必知必会,后来学了一些速通课程,速通吗,学完了飘飘然,但是感觉不通透,最终还是买了哥们推荐的那本书,现在它就在手边, 这书呢确实好,因为它写明了不同系统的方言语法, 如果感兴趣可以去购买纸质版, 也可以私信我发你电子版. 另外SQL这门语言网上早有各位大神总结的几百句的精华帖,但精华也不如那本书全面, 所以既然有书的情况下还要写一遍,就慢下来,按自己的理解认真整理一遍, 而这篇帖子,就是先不说SQL具体语法,不说增删改查, 只说前置知识.

啥是SQL语言

● 见人说人话,见鬼说鬼话, 面对什么就要讲对方听得懂的话

我还比较小的时候看过一本书说的是全世界旅游的所见所闻,其中篇篇提及文化差异, 从那会我就知道了跟不同文化背景的人说话你要会翻译自己的意思, 这样才能避免误会. 所以SQL语言就是跟支持SQL语言的系统说话用的. SQL语言全称:“结构化查询语言(Structured Query Language)” 用好它, 复杂的数据库则为我们所用.

SQL语言减少bug点

● 开门见山,先把注意事项说

写代码总会出现错误,其中很多高发问题都是由于不清楚规则造成的,SQL语言有以下这么几个规则:

  • SQL语句不分大小写,但是字符串区分大小写, 也就是操作时候的语句大写小写无区别,但如果写入内容,则区分大小写.
  • 推荐查询语句大写, 这样看着好看, 查着放心
  • 推荐关键字大写,非关键字小写 , 这样看着好看, 有节奏感
  • SQL 语句必须以分号结尾 " ; " ,注意是英文输入法状态下
  • SQL语句中空白和换行没有限制,但空格不能加在一个词的内部,也就是不能破坏语法结构
  • SQL的注释用双横线 或者#号注释, 如果用双/ 可以注释一段文字,举例如下,被注释的字是灰色的. 多写注释方便检索

SQL语言分类

● 人以群分物以类聚,语言何尝不是如此

这里把语言分模块理解主要是为了好记, 一个点牵引出一个面来~ SQL语言大体分为三类:

1、数据操纵语言(DML):用来操纵数据库中数据的命令。包括:insert、delete、update、select。 2、数据控制语言(DCL):用来控制数据库组件 如用户\权限\事务。 3、数据定义语言(DDL):用来建立数据库、数据库对象和定义列的命令。包括:create、alter、drop。

SQL数据类型

● 贴标签只是给事物分类, 但基因决定了物种属性,数据类型好比基因

承接上边的话,数据类型决定了数据表中的内容"是什么东西"这个东西界定了它的能力范围,就像"昆虫"这个属性,就代表––分头胸腹3体段,头有口器和触角,成虫时胸部有3对足(6条腿),一般还有2对翅,腹部是无行走用的附肢。 关系型数据库中数据类型包括Text(文本)、Number(数字)和 Date/Time(日期/时间)类型。分别看一下: ● 数字类型: 解决编号\数额这类需求, 之所以分这么多类,完全是因为硬盘空间是要花钱的呀! DECIMAL这行10代表整数+小数一共10位,小数后2位

● 文本类型-字符串:解决姓名\地址\标题之类需求

● 日期类型-date/time:解决日期计算\时间戳\日志时间这类需求

SQL约束规矩

● 无规矩不成方圆,无约束后续数据乱套

承接上边的话,数据约束是为了在填入数据的时候符合要求, 这样不会丢数据,也不会填报不符合要求的数据, 尽量保证数据的干净规范. 否则就像拿到一个电话本,只有人名没有电话,或者有电话都是瞎填的,你想拨号怎么打? 上面的NULL是空值的意思,NOT NULL就是不能为空,必须填

这篇帖子能做什么? 有什么用?

现在设想一个场景,老王开了个商品交易中心,参加各种活动,跑各种场,认识了很多供货商,也认识了很多客户,然后他想给公司建立个客户联系表,方便管理自己的这些联系人.因此可以设计三张表. 场景表: 因为老王到处跑,所以在很多不同的场景下认识了对方,并且这些场景不是死的,还有很多没去过,未来还会增加. 因此场景表要求可以增加,场景表的编号就是主键且是唯一的,场景内容是非空的. 这就要求每次要增加场景就必须填全了,但还不能重复填写,因此要求是唯一约束的. 行业表: 与场景表类似,接触的行业也有重复,并且会新增, 因此行业表编号是数字自增加的,行业是不能重复的字符串,8个字或者16个字就能说明了. 姓名电话表: 而姓名电话表增加人的时候为了避免犯懒,所有列也要求必填,这样就都是NOT NULL了. 而人名后的认识场景\所属行业就都是外键约束了 且这三张表的编号都是数字格式的,姓名\场景\行业名都是字符串格式的 ok ,这个例子就结束了.

撰写整理加编辑:MINUS

上篇: 数据库我来啦, 如果你对数据库感兴趣一起看看

——The End—— 欢迎留言、转发、关注SUMER、点击[在看]一条龙~