首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

MySQL基础

一、数据库基本概念

1.1 数据库 - Database

从字面意思看,数据库就是一个存储数据的仓库。从计算机的角度来讲,数据库(Datebase)是按照数据结构来组织、存储和管理数据的仓库。

简单来说,可以将数据库视为电子化的一个文件柜。用户可以对文件中的数据进行新增、更新和删除等操作。

数据库中的一些常见术语:

实体与实体集:客观存在并相互区别的事物。可客观理解为类似于面向对象中的对象,但又不完全相同。而实体集就是这些事物的集合。

属性:实体所具有的某一特性。可类比于面向对象中对象的属性,即对象的成员变量。

联系与联系集:实体与实体之间的关系,而联系集就是这些关系的集合。

联系一般分为三种,分别为一对一,一对多和多对多

比如学生实体与班级实体,就是一对多,即一个学生只属于一个班级,而一个班级里有多个学生

1.2 数据库管理系统 - DBMS

管理关系型数据库的计算机软件就是关系数据库管理系统。常用的关系数据库管理软件有Oracle、MySQL、SQL Server等。

这里以MySQL的学习为主。

1.3 关系型数据库 - RDBMS

所谓关系型数据库,是建立在关系模型基础上的数据库,借助于集合代数等数学概念和方法来处理数据库中的数据。现实世界中的各种实体以及实体之间的各种联系均用关系模型来表示。简单说:关系型数据库是由多张能互相联接的二维行列表格组成的数据库。

基于关系型数据库的管理系统,我们称之为关系数据库管理系统(RDBMS)。

RDBMS的特点:

数据以表格的形式出现

每行为各种记录名称

每列为记录名称所对应的数据域

许多的行和列组成一张表单

若干的表单组成database

RDBMS中的一些常见术语:

数据表、列、行:如下图一个简单的学生表所示

数据库:类似于上图中学生表一样的很多个表的集合。

冗余:存储两倍的数据,冗余降低了性能,但提高的数据的安全性。

简单理解就是当一个字段在A表中有,而在B表中也有的时候,就称之为冗余

为什么需要设置冗余呢?详见解释:http://blog.csdn.net/small_whale/article/details/52468193

主键唯一标识数据表的一列或多列的组合。

外键:关联其他表的列。

索引:用于提高访问数据库表中特定信息的速度。索引是对数据库表中一列或多列的值进行排序的一种结构。可类比于书籍中的目录,可提高我们查询的效率。

二、E-R 模型

实体 - 联系模型,就是 E-R 模型。它给我们提供了一种不受任何 DBMS 约束的面向用户的表达方法。在数据库设计中被广泛用作数据建模的工具。

E-R 模型的构成成分是实体集、属性和联系集。通过 E-R 模型,我们能得到一个较为清晰的关于整个数据结构的关系图,因为 E-R 模型也称为 E-R 图。

E-R 模型的表示方法:

矩形框表示实体,实体名写在矩形框内。

椭圆表示实体的属性,属性名写在椭圆内,并用无向边,即直线与其对应的实体连接。

菱形表示实体间的联系,联系名写在菱形框内,将有联系的两个实体分别用无向边与菱形相连,并在连线上标明联系类形,即 1 - 1、 1 - N、M - N 。

简单 E-R 图示例:

三、SQL 语句简介

3.1 什么是 SQL

SQL,全称是 Structured Query Language,即结构化查询语言,它是一种特殊的编程语言,专用于对数据库进行操作而设计的,用于对数据库进行增、删、改、查等操作。

3.2 SQL 分类

数据定义语言,简称为 DDL(Data Definition Language) ,用来定义数据库对象,如数据库表、列等。关键字包括:create,alter,drop 等。

数据操作语言,简称为 DML(Data Manipulation Language) ,用来对数据库表进行操作。关键字包括:insert,delete,update 等。

数据控制语言,简称为 DCL(Data Control Language) ,用来定义数据库的访问权限和安全级别以及创建用户。

数据查询语言,简称为 DQL(Data Query Language) ,用来查询数据库表的记录。关键字包括:select,from,where等。

3.3 SQL 的通用语法

SQL 语句通常以分号结尾,它可以单行或多行进行书写

可以使用 /**/、—、#的方式进行注释

四、MySQL

MySQL是当前最流行的关系型数据库管理系统之一。

3.1 mac 下 MySQL 的安装

mac下安装软件一般有两种方式,一是在官网上下载安装包,像安装普通软件一样进行安装;另一种则是使用 mac 上的包管理器 homebrew 来进行安装。

两种安装方式可参考:

https://www.jianshu.com/p/fd3aae701db9

安装完后输入:mysql -u root -p,回车后输入密码即可登录 MySQL 命令行界面。

3.2 MySQL 常用数据类型

MySQL 中常见数据类型如下表所示:

详细可参考:

http://www.runoob.com/mysql/mysql-data-types.html

3.3 简单的 SQL 语句

MySQL中的SQL语句是不区分大小写的,推荐 SQL 关键字使用大写。

这里以在一个 test 数据库中创建一个学生表为例。学生有学号、姓名、性别、年龄四个属性。

创建数据库

查看已有的数据库

选择一个数据库或者切换数据库

查看当前选择的数据库

创建数据表

查看创建的数据表

修改数据表结构

插入数据

查询数据

LIKE 查询

条件查询

修改数据

数据排序

删除数据行

修改数据库表名

删除数据表

删除数据库

3.4 聚合函数

使用聚合函数的基础就是使用分组语句,使用语法如下:

常见的聚合函数如下几种:

AVG:求平均值

COUNT:求总个数

MIN / MAX:求最小或最大值

SUM:求和

3.5 表关联查询

准备数据,上面已经建立了一个学生表,学生应该隶属于一个班级,我们再建立一个班级表 class ,班级表的字段有班级编号、班级名称。

内联 - INNER JOIN

左关联与右关联 - LEFT JOIN or REIGHT JOIN

3.6 子查询

子查询的概念就是查询嵌套,简单说就是 SELECT 后或者 WHERE 条件后依然嵌套有 SELECT 语句。其实也很好理解,因为 FROM 关键字后面接受的是一个表,而一个表其实就是一个数据集,而我们使用 SELECT 语句查询得到就是一个数据集。所以我们只需要简单地将子查询里的 SELECT 语句单独看成一个数据表就能简化整个查询语句了。

愿关注我们的人都能找到

属于自己的皮球

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180303G1A5MH00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券