Mysql必知必会系列二、了解SQL和使用Mysql

Mysql必知必会系列二、了解SQL以及Mysql的初步使用

1、数据库基础

  • 数据库(DataBase)

    这个其实在系列一中已经作出了说明,但由于此概念贯穿学习之路,所以这里再次作出介绍。

    数据库是一个以某种有组织的方式存储的数据集合,其本质就是为一个文件系统。理解数据库的一种最简单的办法就是将其想象成一个文件柜。此文件柜是一个存放数据的物理位置,不管数据是什么以及如何组织的。

  • 表(table)

    表是一种结构化的文件,可用来存储某种特定类型的数据。这里最关键的一点在于,存储在表中的数据是一种类型的数据或一种清单。我们需要做到的一点就是,表中的每一个分量必须是一个不可分的数据项,也就是说不允许表中还有表。

  • 模式(schema)

    关于数据库和表的布局及特性的信息。注意有的人会将模式误解为数据库,实际上并不是,我们需要区分两者。

  • 列(column)和数据类型(datatype)

    列是表中的一个字段。所有的表都是由一个或多个列组成的。理解列的最好办法就是将数据库想象成一个网格。网格中的每一列都存储着一条特定的信息。数据库中的每一个列都有相应的数据类型。这和其他语言中的数据类型理解方式是一致的。这里不作解释。

  • 行(row)

    表中的数据都是按行存储的,所保存的每个记录存储在自己的行内。通俗的来讲行其实就是记录。但我们讲究标准这里还是说行。

  • 主键(primary key)

    一列(或一组列),其值能够唯一的区分表中的每个行。表中的任何列都可以作为主键,只要它满足一下条件:

    • 任意两行都不具有相同的主键值;
    • 每个行都必须具有一个主键值(主键列不允许NULL值)。
  • 外键(foreign key)

    外键为某个表中的一列,它包含另一个表的主键值,其定义了两个表之间的关系。

  • 视图(view)

    视图是从一个或几个基本表导出的表。它本身不独立存储在数据库中,即数据库中只存放视图的定义而不存放视图对应的数据。这些数据仍存放在导出视图的基本表中,因此视图是一个虚表。但视图在概念上和基本表等同,用户可以在视图上再定义视图。

  • 索引(index)

    索引的作用相当于图书的目录,可以根据目录中的页码快速找到所需的内容。

2、SQL

我们学的不是mysql吗?为什么这里还需要介绍 S Q L SQL SQL语句呢?

因为SQL是关系数据库的标准语言,Mysql几乎支持所有的SQL语法,了解SQL对我们之后学习Mysql要方便很多。

2.1、SQL概述

SQL是Structured Query Language(结构化查询语言)的缩写。SQL是专为数据库而建立的操作命令集,是一种功能齐全的数据库语言。在使用它时,只需要发出“做什么”的命令,“怎么做”是不用使用者考虑的。SQL功能强大、简单易学、使用方便,已经成为了数据库操作的基础,并且现在几乎所有的数据库均支持标准sql。 但是截至目前,没有一个操作系统能够支持SQL标准的所有概念和特性。所以我们在学习具体的 D B M S DBMS DBMS和操作系统时要参考其 a p i api api文档或用户手册。

2.2、SQL功能

SQL功能动词
数据查询SELECT
数据定义CREATE,DROP,ALTER
数据操纵INSERT,UPDATE,DELETE
数据控制GRANT,REVOKE

这些功能在mysql中同样适用。

2.3、SQL规范

  1. 在数据库系统中,SQL语句不区分大小写(建议用大写) 。但字符串常量区分大小写。建议命令大写,表名库名小写;
  2. SQL语句可单行或多行书写,以“;”结尾。关键词不能跨多行或简写。
  3. 用空格和缩进来提高语句的可读性。子句通常位于独立行,便于编辑,提高可读性。
  4. 注释:单行注释:-- …,多行注释://。(这里特别说明,在mysql中不仅兼容这两种注释,还可以单行注释还可以为:#…)
  5. sql语句可以折行操作,这在mysql中同样适用。

2.4、数据定义

关系数据库系统支持三级模式结构,其模式、外模式和内模式中的基本对象有模式、表、视图和索引等。因此SQL的数据定义功能包括模式定义、表定义、视图和索引的定义。如下表所示:

创建删除修改
模式CREATE SCHEMADROP SCHEMA
CREATE TABLEDROP TABLEALTER TABLE
视图CREATE VIEWDROP VIEW
索引CREATE INDEXDROP INDEXALTER INDEX

SQL标准不停供修改模式定义和修改视图定义的操作。 所以用户如果想修改这些对西昂,就必须删了重建。

这里特别说明一下模式,在mysql中其实就是数据库框架。我们怎么理解模式的定义呢?实际上就是定义个命名空间namespace。在这个命名空间中,你可以创建基表,视图,和有关的授权等等。正如在C++中, 你可以在你的命名空间中,定义你自己的类和结构体,以及其他的信息。

2.5、数据类型

数据类型描述
CHARACTER(n)字符/字符串。固定长度 n。
VARCHAR(n) 或 CHARACTER VARYING(n)字符/字符串。可变长度。最大长度 n。
BINARY(n)二进制串。固定长度 n。
BOOLEAN存储 TRUE 或 FALSE 值
VARBINARY(n) 或 BINARY VARYING(n)二进制串。可变长度。最大长度 n。
INTEGER§整数值(没有小数点)。精度 p。
SMALLINT整数值(没有小数点)。精度 5。
INTEGER整数值(没有小数点)。精度 10。
BIGINT整数值(没有小数点)。精度 19。
DECIMAL(p,s)精确数值,精度 p,小数点后位数 s。例如:decimal(5,2) 是一个小数点前有 3 位数,小数点后有 2 位数的数字。
NUMERIC(p,s)精确数值,精度 p,小数点后位数 s。(与 DECIMAL 相同)
FLOAT§近似数值,尾数精度 p。一个采用以 10 为基数的指数计数法的浮点数。该类型的 size 参数由一个指定最小精度的单一数字组成。
REAL近似数值,尾数精度 7。
FLOAT近似数值,尾数精度 16。
DOUBLE PRECISION近似数值,尾数精度 16。
DATE存储年、月、日的值。
TIME存储小时、分、秒的值。
TIMESTAMP存储年、月、日、小时、分、秒的值。
INTERVAL由一些整数字段组成,代表一段时间,取决于区间的类型。
ARRAY元素的固定长度的有序集合
MULTISET元素的可变长度的无序集合
XML存储 XML 数据

3、使用mysql

这一部分,我们只是基础的使用mysql。系列一中已经介绍了如何启动mysql服务以及登录mysql,这里不在作解释。

3.1、选择数据库

当你连接到数据库中,并没有任何数据库打开供你使用。在你能执行任意数据库操作前,需要选择一个数据库。这里即可使用 S H O W SHOW SHOW U S E USE USE关键字(由于mysql的关键字过多,我们仅在用到的时候列举出关键字)。

数据库、表、列、用户、权限等的信息被存储在数据库和表中。不过,内部的表一般不直接访问。可用 MySQL的SHOW命令来显示这些信息(MySQL从内部表中提取这些信息)。
我们输入SHOW DataBases;即可返回可用数据库的一个列表。包含在这个列表中的可能是mysql内部使用的数据库,如其中的information_schema、mysql、performance_schema、test,这里不介绍这四个数据库。

image-20210522124046345

那么,我们需要选择数据库后才可以对数据库进行操作。我们通过USE 数据库名;来使用数据库,该数据库保持为默认数据库,直到语段的结尾,或者直到发布一个不同的USE语句。例如这里我们需要使用myemployees数据库,我们输入以下内容:

USE myemployees;

程序就会返回Database changed,需要注意的是, U S E USE USE语句并不返回任何结果。而是依赖于使用的客户机,显示某种形式的通知。例如这里显示出的Database changed消息是mysql命令行实用程序在数据库选择成功后显示的。

谨记:必须先使用USE打开数据库,才能读取其中的数据。

3.2、查看数据库

当我们选择好数据库之后,为了获得一个数据库内的可用表的列表,我们就可以使用SHOW Tables,如下所示:

在这里插入图片描述

当然,SHOW也可以用来使用表列,使用方法是:SHOW Columns FROM 表名;这里的 F R O M FROM FROM同样是关键字,含义即同其本意,从…获取,即给出相应地址供使用。在myemployees中我们可以查看employees表。如下:

image-20210522135016441

我们发现,它对每个字段返回一行,行中包含字段名、数据类型、是否允许NULL、键信息、默认值以及其他信息(如字段employess_idauto_increment)。

auto_increment(自动增量):某些表列需要唯一值。例如,订单编号、雇员ID或(如上面例子中所示的)顾客ID。在每个行添加到表中时,MySQL可以自动地为每个行分配下一个可用编号,不用在添加一行时手动分配唯一值(这样做必须记住最后一次使用的值)。这个功能就是所谓的auto_increment。如果需要它,则必须在用CREATE语句创建表时把它作为表定义的组成部分。我们在之后会介绍CREATE语句。

3.3、其他SHOW语句

除了以上的SHOW语句,mysql还支持其他的语句。例如:

  1. SHOW Status,用于显示广泛的服务器状态信息。
  2. SHOW CREATE DataBaseSHOW CREATE Table,分别用来显示创建特定数据库或表的Mysql语句。
  3. SHOW GRANTS,用来显示授权用户(所有用户或特定用户的安全权限)。GRANT语句也会在之后介绍。
  4. SHOW ERRORSSHOW WARNINGS,用来显示服务器错误或警告消息。

这里列举的都是比较常用的,当然SHOW语句并不只有这么点,我们可以执行命令HELP SHOW来查看允许的SHOW语句。

来显示授权用户(所有用户或特定用户的安全权限)。GRANT语句也会在之后介绍。

posted @   unique_pursuit  阅读(26)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)
点击右上角即可分享
微信分享提示