从零开始学数据库
文章平均质量分 59
从浅至深学习数据库
Xucc_
这个作者很懒,什么都没留下…
展开
-
MySQL从零开始 22-索引创建原则
基于合理的数据库设计,经过深思熟虑后为表建立索引,是获得高性能数据库系统的基础。而未经合理分析便添加索引,则会降低系统的总体性能。索引虽然说提高了数据的访问速度,但同时也增加了插入、更新和删除操作的处理时间。 是否要为表增加索引、索引建立在那些字段上,是创建索引前必须要考虑的问题。解决此问题的一个比较好的方法,就是分析应用程序的业务处理、数据使用,为经常被用作查询条件、或者被要求排序的字段建...原创 2018-07-25 18:13:01 · 1518 阅读 · 0 评论 -
MySQL从零开始 20-关系型数据库与非关系型数据库
1. 关系数据库 关系型数据库模型是把复杂的数据结构归结为简单的二元关系(即二维表格形式)。 2. 非关系数据库 非关系型数据库也被称为NoSQL数据库,NOSQL的本意是”Not Olnly SQL”。指的是非关系型数据库,而不是“No SQL”的意思,因此,NoSQL的产生并不是要彻底地否定关系型数据库,而是作为传统关系型数据库的一个有效补充。NOSQL数据库在特定的场景下可以...原创 2018-07-25 10:41:03 · 1982 阅读 · 0 评论 -
MySQL从零开始 19-索引的哲学
当我们使用desc查看表的结构时,会看到如下结果:mysql> desc t1;+-------+-------------+------+-----+---------+-------+| Field | Type | Null | Key | Default | Extra |+-------+-------------+------+-----+-----...原创 2018-07-25 08:41:12 · 1183 阅读 · 0 评论 -
JDBC是什么
JDBC全称Java DataBase Connectivity。我们主要使用的是JDBC API。 JDBC API是一个Java API可以访问任何类型的数据库的数据,尤其是存储在关系数据库中的数据。 JDBC的工作原理与Java在各种平台一样,如Windows,Mac OS和各种版本的UNIX系统。从根本上说,JDBC是一种规范,它提供的接口,一套完整的,可移植的访问底层数据库的程...原创 2018-06-20 16:33:03 · 2047 阅读 · 0 评论 -
MySQL从零开始 18-内连接与外连接
表的连接分为内连和外连。 同样,本次的测试用数据库还是为scott数据库,大家可以在我的GitHub进行scott数据库创建脚本的下载。1. 内连接 内连接实际上就是利用where子句对两种表形成的笛卡儿集进行筛选,前面介绍的查询都是内连接,也是在开发过程中使用的最多的连接查询方式。 语法:select 字段 from 表1 inner join 表2 on 连接条...原创 2018-06-29 09:44:47 · 1223 阅读 · 0 评论 -
MySQL从零开始 17-union合并查询,表的自我复制
除了之前介绍的多表查询,单表查询之外,还可以使用union/union all集合操作符将多个多个select的执行结果进行合并然后进行查询。 同样,本次的测试用数据库还是为scott数据库,大家可以在我的GitHub进行scott数据库创建脚本的下载。1. 合并查询1.1 union union用于取得两个结果集的并集。当使用该操作符时,会自动去掉结果集中的重复行。...原创 2018-06-29 09:17:40 · 1316 阅读 · 1 评论 -
MySQL从零开始 16-多表查询进阶
上一节介绍了数据库的多表查询,这一节,我们深入了解一下多表查询。 同样,本次的测试用数据库还是为scott数据库,大家可以在我的GitHub进行scott数据库创建脚本的下载。 接下来,对多表查询中几个常见的技巧进行介绍。1. 自连接 自连接是指在同一张表上连接查询。例1:显示员工FORD的上级领导姓名 我们先使用常规的子查询进行查找。mysql&g...原创 2018-06-29 08:37:44 · 1305 阅读 · 1 评论 -
MySQL从零开始 15-单表查询进阶以及简单多表查询
在对数据库的查询时,我们遇到的大多数场景是在多张表中进行数据的查询,而不是单单使用一张表,这也是我们业务中90%以上的场景,本节将介绍数据库的多表查询技巧。 在进入正题之前,我们要先构建一个测试数据库,创建脚本如下:DROP database IF EXISTS `scott`;CREATE database IF NOT EXISTS `scott` DEFAULT CHARAC...原创 2018-06-23 13:30:43 · 1401 阅读 · 0 评论 -
MySQL从零开始 14-user(),md5(),database(),password(),ifnull
MySQL函数体系除了前面介绍的日期函数(日期函数),字符串函数(字符串函数),数学函数(数学函数)之外,还有一些常用的函数,在某些场合还是很有用的。1. user() user()的功能是查看当前用户名,使用如下:mysql> select user();+----------------+| user() |+----------------+...原创 2018-06-22 21:00:39 · 1410 阅读 · 0 评论 -
MySQL从零开始 13-数学函数
虽然数据库主要进行的是查询操作,对数据的操作不是很常见,例如前面介绍的日期函数和字符串函数在查询时使用率很高,但是关于数据操作的函数我们还是要了解的。 常见的数学函数如下所示:1. abs(num) abs()返回所传入的参数的绝对值,使用如下:mysql> select abs(-100);+-----------+| abs(-100) |+-----...原创 2018-06-22 20:36:13 · 1228 阅读 · 0 评论 -
MySQL从零开始 12-字符串函数
上一节我们介绍了日期函数,这一节我们来看看有关于字符串的函数。 SQL里字符串的类型是char和varchar,本节所有的字符串函数都是围绕着这两个数据类型展开的,对于这两个数据类型有疑问可以参考: MySQL的数据类型 常用的字符串函数有下面几种:1. charset(str) charset()函数返回传入参数的字符集,参数可以是一个自定义的字符串也可以是一...原创 2018-06-22 20:35:43 · 1296 阅读 · 0 评论 -
MySQL从零开始 11-日期函数
数据库特别提供了对有关日期和时间数据的支持,从专门列出的date,datetime,timestamp数据类型就可以看出(对SQL数据类型想深入了解可以参考MySQL的数据类型),除了对时间日期数据类型的支持,SQL还提供了相关的日期函数供我们使用。常用日期函数如下:1. current_date() current_date()返回当前日期,包括年月日,与date数据类型对应,...原创 2018-06-22 20:34:53 · 1293 阅读 · 1 评论 -
MySQL从零开始 10-count,sum,avg,max,min函数的使用
上一节介绍了select语句的构成与使用(select语句以及where,order by, group by子句的使用),但是只单单依靠select的字句们,是不能发挥出select的全部能力的,本节将介绍select与函数的搭配使用。本节测试用表为student表,创建脚本如下:create table student (id int not null default 1,na...原创 2018-06-16 11:43:44 · 2129 阅读 · 0 评论 -
MySQL从零开始 9-表数据查找之select语句以及where,order by, group by子句的使用
数据库使用的大多数操作就是查找,所以熟悉select操作是非常重要的。 在讲解select之前,我们先要创建一个表来支撑我们的查找,创建脚本如下,大家直接复制粘贴到命令行即可。create table student (id int not null default 1,name varchar(20) not null default '',chinese float not...原创 2018-06-16 11:13:52 · 2044 阅读 · 0 评论 -
MySQL从零开始 8-表数据的增删查改:insert, update, delete, truncate
表示数据库的主要操作对象,今天介绍关于表的增删改。增加:insert修改:update删除:delete/truncate1. insert增加 insert语法如下insert into tableName(colName name1, colName name2, ...) values(value1, value2, ...); 在插入数据时,我们可以指定...原创 2018-06-16 09:50:31 · 1589 阅读 · 0 评论 -
MySQL从零开始 7-表约束之主键,自增长,唯一键
表约束除了空属性,默认值,描述符以及零填充外(空属性,默认值default,列描述comment以及零填充zerofill),还有主键,自增长,唯一键等对字段的索引和扩展约束。1. 主键 使用 primary key 进行主键的定义。 主键用于唯一的约束该字段里的数据,主键约束的字段不能为空,不能重复,一张表里最多只能有一个主键,但是可以定义复合主键来突破这个限制。-- ...原创 2018-06-09 18:17:46 · 1652 阅读 · 0 评论 -
MySQL从零开始 6-表约束之空属性,默认值default,列描述comment以及零填充zerofill
在数据库中创建一张表,然后使用desc进行表结构查看的时候会显示出一张表格,表格中会有很多的字段,如下:mysql> create table t1(id int);Query OK, 0 rows affected (0.48 sec)mysql> desc t1;+-------+---------+------+-----+---------+-------+...原创 2018-06-09 14:48:52 · 8795 阅读 · 0 评论 -
MySQL从零开始 5-set,enum数据类型
枚举和集合时MySQL中重要的数据类型,有些场景下使用它们能起到事半功倍的作用。 关于MySQL其它的数据类型,大家点击 [MySQL的数据类型] 进行了解,这里就不进行赘述了。枚举和集合 枚举,其实就是“单选”类型,对应界面或表单中的“单选项”的数据值。enum('选项1','选项2','选项3',...); set就是“多选”类型,对应于界面或表单的“多选项”的数...原创 2018-06-09 10:01:21 · 1811 阅读 · 0 评论 -
MySQL从零开始 4-MySQL的数据类型
数据库是与数据打交道的工具,所以也存在自己的数据类型,接下来介绍MySQL提供的数据类型。1. MySQL数据类型1.1 数值类型bit(m) 1字节。m指定位数,默认为1,存储范围依次为1~64.tinyint [unsigned] 1字节。存储范围为 -128 ~ 127,unsigned为 0~256。smallint [unsigned]...原创 2018-06-09 09:10:08 · 1518 阅读 · 0 评论 -
MySQL从零开始 3-关于 '表' 的那点事
MySQL中,我们会对不同的项目创建不同的数据库来容纳它们的数据,而在这些库结构(关于 ‘库’ 的那点事)中,又细分成很多的表,而数据就是存储在这些表里的。 表是数据库中最小的结构,也是我们大部分时间进行操作的对象。 本篇就将介绍常用的表操作。1. 表的创建 创建表的语法如下:// 创建一个名为tableName的表create table tableName( ...原创 2018-06-03 22:01:28 · 1261 阅读 · 0 评论 -
MySQL从零开始 2-关于 '库' 的那点事
接下来,介绍一下MySQL数据库的几个入门级操作。 我们在使用MySQL的时候,是围绕着数据库(database)这一独立单元进行操作的,所以有关于库的操作方法我们必须掌握。1. 创建库 接下来,介绍一下MySQL数据库的几个入门级操作。 创建库的语法很简单:-- 创建一个名为 databaseName 的数据库字符集为charsetName,校验规则为collation...原创 2018-05-31 13:02:25 · 1477 阅读 · 0 评论 -
MySQL从零开始 1-数据库那些事
1. 数据库简介 关于MySQL介绍的课本介绍我就不赘述了,直接百度就行了,这里我们探讨一些实在的。 顾名思义,数据库就是存储数据的库。那存储数据,我们可以有Windows自带的记事本,vscode,notepad等等文件编辑器,能能很方便的打开以及在硬盘上存储数据,为什么要专门使用数据库呢?1.安全性 直接保存在硬盘上的文件很容易丢失,损坏,以及被他人获取,而数据库就不会...原创 2018-05-30 22:29:37 · 1909 阅读 · 0 评论