引言
一晃半年多过去了,一直没有与数据库相关的项目,所以基本上都快要忘记一些基本的 MySQL 使用技巧了。如今是时候重新复习一下了。本系列笔记把复习过程中实践的过程记录下来,以便后期回顾。
数据库基础
- 数据库(database, DB):保存有组织的数据的容器(通常是一个或者一组文件)。
- 需要注意的是,我们需要通过数据库管理系统(Database Management System, DBMS)与数据库打交道。
- 表(table):某种特定类型数据的结构化清单,同一个数据库中通常可以有多张表,每个表拥有一个唯一的表明。
- 模式(schema):关于数据库和表的布局及特性的信息。模式可以用拿过来描述数据库中特定的表及整个数据库(及其中的表的关系)。
- 列(column):表中的一个字段。每张表中都包含一个或多个列,可以类比一张电子表格。
- 数据类型(datatype):指定表列相应的数据类型(存储数据种类),它会限制列中存储数据的类型。数据类型还可以帮助正确地排序数据,并能够在优化磁盘使用方面发挥作用,所以在设计数据库表时,必须要注意数据类型的设定。
- 行(row):表中的一条记录。
主键(primary key):一列(或一组列),值能够唯一区分表中的各行。没有主键,将会导致更新或者删除表中特定行时很困难,因为没有安全的方法可以保证只涉及相关的行。故,我们在设计表时,应当总是定义主键。
- 任意两行都不具有相同的主键值;
- 每个行都必须具有一个主键值(主键列不允许 NULL 值存在)
多列作为主键:需要保证多列组合在一起是具有唯一性的,即需要满足上面两条类似的规则,但是需要注意的是,单个列也可以不是唯一的,重要的是多个列组合在一起能否满足主键设定要求。
良好习惯:
- 不更新主键列中的值;
- 不重用主键列的值;
- 不要在主键列中使用可能会发生改变的值。
结构化查询语言(Structured Query Language, SQL),专门用于和数据库通信的语言。
MySQL 是何方神圣
- 我们知道,数据的所有存储、检索、管理和处理实际上都是由数据库管理系统来完成的,MySQL 即为一个 DBMS。
MySQL 的特点:
- 成本低廉;
- 性能优异;
- 值得信赖;
- 简单易用。
DBMS 种类:
- 基于共享文件系统:Microsoft Access 和 FileMaker;
- 基于客户端-服务器:MySQL, Oracle 和 Microsoft SQL Server 等。在这里,服务器程序负责完成数据库的增删改查等操作;这些请求来自客户端程序,而客户端则是与用户交互的程序。客户端和服务器可以通过网络通信。
安装 MySQL
- Ubuntu 16.04 x64 安装 MySQL:
sudo apt install mysql-server mysql-client -y
; - 安装过程中设置 MySQL 服务器 root 账户密码,见下图:
- 安装完毕后,MySQL 服务器便会启动,我们可以使用
/etc/init.d/mysql status
查看 MySQL 服务器是否正常运行。 - MySQL 服务器控制脚本,控制启动、停止、查看状态等:
/etc/init.d/mysql start|stop|restart|reload|force-reload|status
- 有一些图形化的 MySQL 工具,我们可以在需要的时候使用它们:
MySQL Administrator
,MySQL Query Browser
等。
连接 MySQL 服务器
- 使用
mysql
实用程序,它同时可以用于快速测试和执行脚本。 连接方式:
# 添加较为完整的参数 mysql -u username -p password -h server_host -P port_num # 默认本地连接,默认端口为 3306 mysql -u username -p
连接成功后,可以得到如下的输出信息:
几点注意:
- 输入命令后,需要用
;
或\g
结束(单条 SQL 语句后也可以不加,但是最好还是都加分号),否则Enter
后,命令不会执行; - 使用
help
或\h
命令可以获得 MySQL 命令帮助信息。我们可以使用help command
查看某个命令具体帮助; - 使用
quit
或exit
退出。
- 输入命令后,需要用
使用 MySQL
上一小节已经告诉我们如何连接并登录到 MySQL 服务器,本小节将重点说说怎么开始使用数据库。
查看有哪些数据库:
SHOW DATABASES;
我们在使用某个数据库之前,必须要选中它,这时使用命令:
USE db_name;
mysql> USE sys Reading table information for completion of table and column names You can turn off this feature to get a quicker startup with -A Database changed
接下来,我们想要查看选定的数据库有哪些表,此时应使用命令:
SHOW TABLES;
若想查看表中有哪些列,我们只要使用命令:
SHOW COLUMNS FROM table_name;
或者DESC(RIBE) table_name;
其它一些命令:
SHOW STATUS
,显示服务器状态;SHOW CREATE DATABASE
和SHOW CREATE TABLE
分别用于显示创建特定数据库或表的 MySQL 语句;
SHOW GRANTS
,显示用户授权情况;SHOW ERRORS
和SHOW WARNINGS
,显示服务器错误或警告信息。
版权声明
- 本文由 Christopher L 发表,采用 知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议 进行许可。请确保你已了解许可协议,并在 转载 时声明。
- 本文固定链接:http://blog.chriscabin.com/?p=1430。