0. 前言
上一篇文章讲了MySQL在Windows平台的安装与简单测试,先体验一下使用MySQL的乐趣,以激发继续学习的兴趣。
但净顾着上手操作体验快感了,基本上没管什么细节。本文开始从使用角度去快速理解MySQL,争取尽快把握其本质~
本文主要讲了MySQL的数据库–>表格–>属性的存储结构,介绍了MySQL的数据类型,以及对于数据库和表格的创建、删除等语句。
1. MySQL是什么
1.1 有关名词
首先需要了解几个名词:数据库(DataBase, DB)、数据库管理系统(DataBase Management System, DBMS)、SQL(Structured Query Language)。
- 数据库:按照一定规则存放数据的文件库,其表现形式甚至可以是一个txt,但一般都不这么干;
- 数据库管理系统:决定怎么存数据,以及提供接口对数据进行增删改查的软件系统;比如MySQL就是一个数据库管理系统,类似还有Oracle,Accessk等;人们也比较习惯在很多场合用数据库指代DBMS;
- SQL:结构化查询语言,只是一门语言,和C、Python等的概念是一样的,只不过它被用在数据库接口中了。
所以MySQL是一个数据库管理系统,它提供了数据存储、管理的方法,采用SQL语言能实现数据管理。
1.2 MySQL数据存储结构
另外,需要从使用角度稍微了解一下MySQL的存储结构。
MySQL作为一种关系型数据库,是基于表结构(table)来管理数据的,一般行表示条目,列表示属性,如下图:
多数场合人们会将行称为数据库记录(record);
这个表结构与结构体数组的模式不能说基本一样,只能说完全一致。
在各种属性中,还有一个 主键(primary key) 概念,它被用于作为某一行的唯一标识。如果没有主键,无法区分所有属性都一样的记录了。
在 表(table) 之上,还有一个 数据库(database) 的概念,用来存放各种表。这可以根据表内容对其进行分类。
小结一下,在MySQL中:
- 表规定一条记录的各种属性;
- 主键是每条记录的唯一标识;
- 数据库中可以存放很多表,但不允许同名表;
2. MySQL操作
在使用SQL语言操作MySQL时,指令语句是不区分大小写的,但一般习惯使用大写来标识关键字。如show databases;
语句,以下写法都能识别,但似乎更推荐SHOW DATABASES;
show databases;
Show DataBases;
sHOw daTaBaSes;
SHOW DATABASES;
- 在连接上到服务器后,使用
HELP SHOW
命令可以查看SHOW
的帮助文档,如下图,帮助文档中的name
提供的是全大写格式。 - 当我们对于某个语句记忆不清时,墙裂推荐
HELP XXX
语句查询用法。
2.1 数据库操作
在MySQL中数据库的关键字为DATABASE
或DATABASES
,在连接上MySQL服务器后,对数据库主要可采取的操作有:
- 显示所有数据库:
SHOW DATABASES;
- 使用某个数据库:
USE db_name;
db_name为某个数据库的名称; - 创建数据库:
CREATE DATABASE db_name;
- 删除数据库:
DROP DATABASE db_name;
2.2 表操作
2.2.1 数据类型
在了解表操作之前,先需要了解MySQL中的数据类型,因为表格中的每种属性都需要指定数据类型。
MySQL数据类型主要有 文本、数值、日期 3种。
- 文本类: 首先需要了解定长串和变长串的概念,前者使用的存储空间确定,后者不确定,类似于整型数组与整型vector的区别。另外,MySQL在处理定长串时效率更高。
此处贴出《MySQL必知必会》中关于串数据类型的表格:
- 数值类: 需要了解数值类默认为有符号数,但可使用UNSIGNED 关键字表明为无符号数,这与C++基本一致。
此处贴上《MySQL必知必会》中关于数值类型的表格:
- 日期类: 专门用于存储日期和时间,除了YEAR类型外,需要用引号
'
将日期或时间类型起来。
此处贴上《MySQL必知必会》中的关于日期类型的表格:
2.2.2 基本语句
- 在
USE db_name;
后显示所有表格:SHOW TABLES;
- 创建表:
CREATE TABLE tbl_name( col_name data_type, col_name data_type, ...);
- 用户自定义数据库名、表名等,推荐使用下划线命名法,因为MySQL将自定义的数据库名和表名均储存成小写了;
- 表的属性名可以使用驼峰命名法,MySQL保留属性名的大小写区分。
- 删除表:
DROP TABLE tbl_name;
- 显示某个表的所有列:
SHOW COLUMNS FROM tbl_name;
3. 小结
本文的内容相对较多一些,小结如下:
- MySQL是一种DBMS(数据库管理系统);
- MySQL服务器中可以存储很多数据库,每个数据库中可以存储很多表格,每个表格中可以存储很多属性;
- 数据库名和表格名建议使用下划线命名法,属性名可以采用驼峰命名法;
- 创建的关键字是
CREATE
,后面可接TABLE
或DATABASE
用于创建表格或是数据库;删除的关键字是DROP
; - 在操作表格之前,别忘了先使用
USE db_name;
语句选择一个数据库; - 如果忘了某个语句的具体用法,可以放心地使用
HELP
指令; - MySQL的数据类型主要有3种:文本型、数值型、日期型;
如有错误欢迎指正,共同进步~
今天你学废了吗?