vlambda博客
学习文章列表

数据酷学|重温mySQL




数据酷学

重温mySQL





01

引言


各位看官,身为大数据专业的高材生,以后肯定是各式各样的"大数据"加身。那么我们怎么能够承受这大数据的体量呢?那这数据库不就来了吗!


数据库有两个类型——关系型与非关系型数据库。


      关系型数据库最典型的数据结构就是表,非关系型数据库则是文档或键值对等。常见的关系型数据的有MySQL、Oracle、SQL Server,非关系型数据库有Redis、MongoDB、HBase、Neo4J等。


数据库各有优劣,不能说哪个数据库不行,应用场景多种多样,总有适合它们的时候。从功能来讲,数据库绝大多数都是增、删、改、查操作。


下面以MySQL为例,简单介绍一下其中的DDL、DML、DQL这三门语言。


02

DDL(数据定义语言)


DDL可不是我们耳熟能详的deadline,而是Data Definition Language的缩写,用来定义数据库对象,如数据库(database)、表(table)、列(column)、视图(view)等。


查询


首先来讲讲查询,主要关键字是SHOW


查询所有数据库——

"SHOW DATABASES;"

数据酷学|重温mySQL


查询创建数据库——

"SHOW CREATE DATABASE 数据库名;"

数据酷学|重温mySQL


以上两个语句在操作中还是很常见的,有助于我们了解数据库的具体信息。对于表就如法炮制,将"DATABASE"换成"TABLE"就可以了。


此外还有"SELECT DATABASE();"用于查询目前使用的数据库、"DESCRIBE 表名;"用于获取相关列信息。


创建


接下来讲讲创建,上述的查询是在此基础上才有的,不然我们查点啥呢,你说是吧?创建的关键字是CREATE。


创建数据库——

"CREATE DATABASE [IF NOT EXISTS] 数据库名称

[CHARACTER SET 字符集] [COLLATE 校对规则];"

(如果不指定字符集和校对规则,则默认为utf8和utf8_general_ci)


然已经创建数据库了,当然得创建表啦——

"CREATE [TEMPORARY] TABLE [IF NOT EXISTS]

表名(字段名 数据类型(长度) [...],...);"


如果你加上了TEMPORARY,那么你就创建了一张临时表,那它有什么特点呢?这张临时表无法通过"SHOW TABLES;"命令看到,并且在你退出MySQL会话时该表就被删除了。


视图其实就是SELECT之后的产物,只是把它保存起来罢了。

"CREATE VIEW 视图名 AS SELECT ..."


修改


再来讲讲这修改,在这个信息瞬息万变的时代,修改是不可避免的。它的关键字是ALTER


ALTER和SET搭配常用于修改默认值等;和ADD搭配增加字段、主键、外键等;DROP搭配删除字段、主键、外键等;和MODIFY搭配修改数据类型、非空约束、唯一约束、默认值、自动增加等;和CHANGE搭配修改数据类型和表名;和RENAME搭配修改表名...


删除


最后就是删除了,作为数据,终究会有过时的时候,这时候数据就没有了意义。删除的关键字是DROP。

"DROP DATABASE|TABLE [IF EXISTS] 数据库名|表名;"

数据酷学|重温mySQL


03

DML(数据操纵语言)


数据库顾名思义,就是一个数据集合体。怎么可能只是简简单单的库和表的操作呢?这数据操纵语言(Data Manipulation Language)不就来了吗!大体与上述差不多,也就关键字发生了变化。

数据酷学|重温mySQL


数据是从哪里来的呢?那当然是我们添加的呗!添加方式主要有两种,一种是INSERT,另一种则是LOAD DATA。


首先是INSERT语句——

"INSERT INTO 表名[(字段列表)]

VALUES(值列表)[,...];"


当数据量很大时,使用INSERT不仅效率低,对人也是一种煎熬,那么就可以使用LOAD DATA,最简单的语句——

"LOAD DATA LOCAL INFILE '文件所在路径' INTO TABLE 表名;"

数据酷学|重温mySQL


数据既然能添加,当然能够删除。删除的关键字回到了我们熟悉的DELETE——

"DELETE FROM 表名

 [WHERE 条件];"

数据酷学|重温mySQL


当然也有其他方式删除表数据,比如TRUNCATE,它直接删除整个表,然后创建一个新表,而且不支持事务回滚,因此比较不安全,正如那“黄河之水天上来,奔流到海不复回”,一旦删除就找回不来了。


此外,数据库怎么可能没有修改数据的能力呢?

"UPDATE 表名 SET 字段名=值[,...]

[WHERE 条件];"

这看着是不是很简单呢?


04

DQL(数据查询语言)


数据查询语言(Data Query Language)在日常工作中运用得最为广泛。查询在MySQL中使用的关键字是SELECT。在MySQL中变化最多的就是它。它可以很简单,也可以很复杂。在不涉及到多表查询的情况下,它的基本语法如下:

"SELECT [ALL|DISTINCT]目标列表达式[, ...] 

FROM 表名 [WHERE 条件] 

[GROUP BY 字段名列表

 [HAVING 逻辑表达式]] 

[ORDER BY 字段名 [ASC|DESC]] 

[LIMIT [OFFSET, ] n];"


首先DISTINCT用于去重,默认为ALL;

其次GROUP BY就相当于抱团,HAVING相当于WHERE的翻版;

然后ORDER BY是按该字段排序,ASC升序,DESC降序,默认为升序;

最后LIMIT中OFFSET默认为0,取n个数据。

数据酷学|重温mySQL


小结


数据库分为关系型与非关系型两类,mySQL属于典型的关系型数据库。数据库语言可分为DDL、DML、DQL三种。mySQL的四大基础操作分别为创建、添加、修改、删除。


如果想了解多表查询,请听下回给您娓娓道来!


今天的小知识就到这儿啦

下周一锁定SUIBE数据科学系

我们继续与你分享专业小知识!


数据酷学|重温mySQL

关注

掌握

第一手知识与讯息


内容制作|陈昊

图文排版|侯天莅

内容审核|侯天莅