关于数据库的几个概念
| 单词 | 意义 |
|---|---|
| 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的各种操作。
在命令行界面下,输入以下命令
mysql -u用户名 -p -h主机 -P端口号
对于大多数用户而言,在安装MySQL的时候都是设置一个root用户名,而如果我们在本地安装MySQL练习的话,主机一般是localhost(可省略),端口号默认是3306(可省略,除非另外设置),因此我们通常连接到MySQL时输入的命令是这样的:
mysql -uroot -p
然后回车,紧接着输入密码,即可成功连接到MySQL,如图所示。
查看现有的数据库和数据表
查看现有数据库
登录成功之后我们的第一件事就是查看我们现有的数据库,命令如下
SHOW DATABASES;
这里有几点需要注意:
- 对于我们输入的命令,MySQL不区分大小写,例如
show databases;和SHOW DATABASES;可以实现一样的效果,但还是建议使用大写,这样可以和数据库/表名以及字段区分开 - 命令以
;结束,而不是Enter,这点尤其要注意
如果输入无误的情况下,系统会打印当前所有存在的数据库,如图所示
切换到某一数据库
我们已经通过SHOW DATABASES; 查看到我们所有的数据库,但注意此时你并没有真正进入到某个数据库中,因此我们要先选择我们接下来要操作的数据库,我们使用USE 命令来完成
USE test;
注意 :尽管没有强制规定,但我们在输入数据库/表或列字段时还是建议使用小写。
查看某数据库下的所有表
此时,我们已经成功进入test这个数据库,下一步我们可以查看该数据库下的所有表,我们同样使用SHOW命令
SHOW TABLES;
正常情况下我们就可以看到屏幕上打印出当前数据库的所有表(可能为空)
除此之外我们也可以不切换到某个数据库来查看其下的所有表,我们要使用SHOW TABLES FROM 数据库名;
的命令,例如
SHOW TABLES FROM test;
查看某表下所有的列(字段)
现在我们已经看到我们test数据库下的所有表,如果我们对其中一张表感兴趣,我们可以查看该表更详细的信息,比如该表下所有的列(字段),只需要一行简单的命令,如下
SHOW COLUMNS FROM students;SHOW COLUMNS FROM test.students;
即可看到students这张表下所有的列和一些更详细的信息,如图。
我们可以看到一共有4列,其中student_id列为该表的主键列。
对于MySQL而已,还有一条快捷方式也可以实现同样的效果,那就是 DESCRIBE 表名;,命令如下
DESCRIBE students;
这条命令和之前命令将返回一样的结果,如下图所示。
好了,我们今天的学校就到这里,最后我们来总结下我们今天学习的命令
| 命令 | 含义 |
|---|---|
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中,凡是用表名的地方默认是在当前数据库下,我们也可以去为表指定数据库,例如
DESCRIBE test.teachers;
此时,不管我们在哪个数据库中,都可以返回我们想要得到的内容。
End.
