关于数据库的几个概念

单词 意义
DB DateBase,即数据库,用来存储有组织的数据的仓库
DBMS DateBase Manager System 数据库管理系统,也称数据库软件,常见的有MySQL,Oracel等
database 具体的数据库,DB是个大的概念,database表示具体的数据库
table 表,存在于数据库中,可以类比Excel的sheet工作表
columns 列,表是由无数列构成的,每一列可以存储不同的类型的数据
row 行,有时也称记录
primary key 主键,用于确保该项记录的唯一性

初次接触数据库的人对其中的一些概念可能有些模糊,其实可以类比我们日常使用的Excel和表格文档
数据库软件就像Excel软件一样,我们需要这样的软件来帮助我们操作数据,而具体的数据库可以类比我们的.xlsx文件,一个数据库中可以存放若干个数据表table,就和.xlsx文件可以放多个sheet工作表一样,但是在同一数据库下不能存在同名的数据表。至于列和行,就完全和Excel中的列和行一样,列用于存放同一类数据,行用于表示一条具体的记录。

MySQL的优点

  • 开源,免费
  • 用户群巨大,相对安全和稳定
  • 可参考的文档较多
  • 安装方便(如果算的话)

因此,对于中小型网站而言,MySQL是建站和存储数据的首选。

MySQL的安装

MySQL基础命令

可以使用多个工具来操作MySQL,其中不乏一些可视化用鼠标来操作的软件,但归根结底还是要使用底层的命令来操作数据库,因此我们主要用命令行来学习MySQL的各种操作。
在命令行界面下,输入以下命令

  1. mysql -u用户名 -p -h主机 -P端口号

对于大多数用户而言,在安装MySQL的时候都是设置一个root用户名,而如果我们在本地安装MySQL练习的话,主机一般是localhost(可省略),端口号默认是3306(可省略,除非另外设置),因此我们通常连接到MySQL时输入的命令是这样的:

  1. mysql -uroot -p

然后回车,紧接着输入密码,即可成功连接到MySQL,如图所示。
image.png

查看现有的数据库和数据表

查看现有数据库

登录成功之后我们的第一件事就是查看我们现有的数据库,命令如下

  1. SHOW DATABASES;

这里有几点需要注意:

  1. 对于我们输入的命令,MySQL不区分大小写,例如 show databases;SHOW DATABASES; 可以实现一样的效果,但还是建议使用大写,这样可以和数据库/表名以及字段区分开
  2. 命令以; 结束,而不是Enter,这点尤其要注意

如果输入无误的情况下,系统会打印当前所有存在的数据库,如图所示
image.png

切换到某一数据库

我们已经通过SHOW DATABASES; 查看到我们所有的数据库,但注意此时你并没有真正进入到某个数据库中,因此我们要先选择我们接下来要操作的数据库,我们使用USE 命令来完成

  1. USE test;

注意 :尽管没有强制规定,但我们在输入数据库/表或列字段时还是建议使用小写。

查看某数据库下的所有表

此时,我们已经成功进入test这个数据库,下一步我们可以查看该数据库下的所有表,我们同样使用SHOW命令

  1. SHOW TABLES;

正常情况下我们就可以看到屏幕上打印出当前数据库的所有表(可能为空)
image.png
除此之外我们也可以不切换到某个数据库来查看其下的所有表,我们要使用SHOW TABLES FROM 数据库名;
的命令,例如

  1. SHOW TABLES FROM test;

如果存在数据库test,我们也可以看到该数据库下的所有表。

查看某表下所有的列(字段)

现在我们已经看到我们test数据库下的所有表,如果我们对其中一张表感兴趣,我们可以查看该表更详细的信息,比如该表下所有的列(字段),只需要一行简单的命令,如下

  1. SHOW COLUMNS FROM students;
  2. SHOW COLUMNS FROM test.students;

即可看到students这张表下所有的列和一些更详细的信息,如图。
image.png
我们可以看到一共有4列,其中student_id列为该表的主键列。
对于MySQL而已,还有一条快捷方式也可以实现同样的效果,那就是 DESCRIBE 表名;,命令如下

  1. DESCRIBE students;

这条命令和之前命令将返回一样的结果,如下图所示。
image.png
好了,我们今天的学校就到这里,最后我们来总结下我们今天学习的命令

命令 含义
mysql -uroot -p -hlocalhost -P3306 以用户名为root,主机为localhost,端口号为3306的参数登录MySQL服务端,其中localhost和3306均为默认值,可以省略
SHOW DATABASES; 查看所有的数据库
USE test; 切换到数据库test下
SHOW TABLES; 查看某个数据库下所有的表(必须选择某个数据库后)
SHOW TABLES FROM test; 查看test数据库下的所有表,可以在数据库中使用
SHOW COLUMNS FROM students;
SHOW COLUMNS FROM test.students;
查看数据表students下所有的列和相关信息
DESCRIBE students;
DESCRIBE test.students;
作用同上

注意:在MySQL中,凡是用表名的地方默认是在当前数据库下,我们也可以去为表指定数据库,例如

  1. DESCRIBE test.teachers;

此时,不管我们在哪个数据库中,都可以返回我们想要得到的内容。
End.