【SQL实战】员工信息管理

SQLite数据类型

1、NULL空值

2、INTEGER整数

3、TEXT文本

4、REAL浮点数

5、BLOB二进制数据

可以看到,SQLite 中有两种类型的数字,分别是专门用来表示 整数INTEGER,以及用来表示带有小数点的数字,也就是 浮点数REAL。整数、浮点数类型,加上用来表示 文本 类型信息的 TEXT 类型,构成了 SQLite 数据类型的三大支柱。

需要注意的是,我们看到的数据表,展示的是 TEXT 类型数据本身的内容。但在编程过程中使用、表示 TEXT 类型数据时,需要用一对英文 单引号 ' 把文本内容包裹起来,就像图片中那样。

除此之外,如果录入数据时,忘记输入了一些值,这个值会被 SQLite 记作 NULL,属于 NULL 类型。

而如果创建数据表时,没有指定某列属于什么数据类型,SQLite 会默认它为 BLOB 类型,原封不动地进行存储。在计算机看来,它既不属于数字,也不是普通意义上的文本,因此几乎无法对它进行计算、处理、分析。所以我们在创建数据表时,一定要注意各个字段的数据类型。

标准时间格式

SQLite 会把符合 标准时间格式 的文本视作一个日期或是时间。具体格式为 年-月-日 时:分:秒,年、月、日之间用一个 - 连接,时、分、秒之间用一个 : 连接,日期部分和时间部分中间用一个空格隔开。并且当年份不足 4 位,或者月、日、时、分不足 2 位时,需要在前面补 0。比如 2021 年 1 月 1 日下午 2 点整,写成标准时间格式就是 '2021-01-01 14:00'

这套标准时间格式不仅可以用来表示日期,还能用来表示一段时间。比如 3 小时 15 分钟可以表示为 '03:15:00'

使用 INTEGER 整数类型表示的时间,其实是计算机世界里一种特殊的时间格式——Unix 时间戳。它表示从 1970 年 1 月 1 日午夜开始直到现在某一时刻所经过的秒数。比如 2021 年 1 月 1 日午夜的 Unix 时间戳是 1609430400

Unix 时间戳只能用来表示某一天的具体时刻,不能表示一段时间。不过它也有自己的优点,那就是 计算方便

比如我们想知道 2021 年 1 月 1 日到 5 月 20 日之间经过了多少天,由于前者午夜时分的 Unix 时间戳是 1609430400,后者午夜的 Unix 时间戳是 1621440000,两个时间戳的差为 12009600 秒,换算一下,也就是 139 天。

SELECT…FROM…子句

如同我们在第一关中学习的那样,SQL 是一门通用、简单、专精的语言,SQL 语句中涉及到的,都是一些描述性强、易于记忆的单词。这些“单词”,有个专业的称呼,叫做 关键字

与中文、英文等自然语言类似,SQL 的词与词之间,也需要遵循一定的规律组合在一起,才能表达完整的含义。而这种“规律”即是 SQL 的语法,也是我们学习的重点。遵循 SQL 语法编写语句,我们就能使用关键字完成不同的功能,如搜索、排序、联结,等等。

所有关键字中,最为根本的也最为常用的,大约就是 SELECTFROM 了。

SELECT,顾名思义,表示 选择 这一动作。放在 SQL 里,表示 选择 一个或若干个字段。

在 SQL 语言中,除了 TEXT 类型的数据,也就是那些用单引号包裹起来的值,其它的要素,比如关键字、数据表名、列名,以及我们后面学到的函数的名字,都是 不区分大小写 的。

其中还有一个很重要的细节,FROM staff 后面有一个英文的分号 ;分号 在 SQL 中表示一条 SQL 语句的结束,所以每当写完一条 完整 的 SQL 语句,需要在末尾加上分号,与其它的语句进行区分。

-- 写法一:
SELECT name FROM staff;

-- 写法二:
SELECT name
FROM staff;

-- 写法三:
SELECT  name
FROM    staff;

-- 写法四:
SELECT
name
FROM
staff;

如果我们想从 staff 数据表中选择出 nameagehire_date 这三列的话,只需要把把这三列的名字作为待选字段,依次写在 SELECT 关键字后面,列名与列名之间用英文逗号 , 隔开即可。

SELECT  name, age, hire_date
FROM    staff;

那如果想选择一张数据表中的 所有列 该怎么办?难不成把所有列明都抄写一遍吗?

咳咳,这么做当然可以。但 SQL 语言还提供了一种更简便的方法:

SELECT  *
FROM staff

DISTINCT关键字

单词 distinct 本身就有“独特”的含义,放到 SQL 中,DISTINCT 关键字表明在选择时,只保留 首次 出现的组合,在位置上,则需要紧紧跟在 SELECT 关键字之后。

SELECT  DISTINCT department
FROM    staff;
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值