虽然之前学过 mysql, 但是也就只会简单的增删改查, 甚至遇到点复杂的逻辑连 crud 都写不明白, 所以找了这本<MySQL 必知必会>再来重新入一下门. 顺便也为下学期的数据库课程预一下习 (虽然知道学校学的和这东西可能一点关系都没有)

了解 SQL

数据库(database): 保存有组织的数据的容器 (通常是一个或者一组文件)

tips: 数据库不是数据库软件, 数据库软件应当是数据库管理系统(DBMS)

表(table): 某种特定类型数据的结构化清单

存储在表中的数据是一种类型的数据活一个清单 表名具有唯一性(数据库名+表名标识)

模式(schema): 关于数据库和表的布局及特性的信息 (如: 表中存储了什么样的数据, 数据如何命名等)

模式有时可以作为数据库的同义词, 但因为其定义并不清晰, 所以不再多说

列(column): 表中的一个字段, 所有表都是由一个或多个列组成的

数据类型(datatype): 所容许的数据的类型. 每个表列都有相应的数据类型, 它限制 (或容许) 该列中存储的数据

tips: mysql 中的布尔类型就是 tinyint(1), 如果在使用中传入一个 false 的话则会自动忽略该值 (相当于没有传入这个参数), 此时数据库中该字段的值为默认设定的值. 所以切记: 在实际使用中, 一定要将该类型字段的默认值设为 flase(或者是 0).

行(row): 表中的一个记录

主键(primary key): 一列 (或一组列), 其值能够唯一区分表中的每个行

虽然并不总是都需要主键, 但是设计时应当保证每张表都具有一个主键, 以便于以后的操作和管理

主键的规则:
    1. 任意两行都不具有相同的主键值;
    2. 每个行都必须具有一个主键值 (主键列不能为NULL)

主键的最好习惯:
    3. 不更新主键列中的值;
    4. 不重用主键列的值;
    5. 不在主键列中使用可能会更改的值

以上五点可以总结为: 不重不漏不更改

MySQL 简介

本章节主要介绍了一下 mysql 的安装以及几个实用程序

MySQL 的安装教程网上一堆, 这里就不在赘述了

书里图形化界面用的是 MySQL Query Browser 这款软件, 我用的是 navicat, 这个全凭个人喜好吧

mysql 登录的选项和参数: mysql -u 用户名 -p密码 -h 主机名 -P 端口号;

使用 MySQL

mysql 的语句和命名都不区分大小写, 所以有多个单词组合的命名建议用下划线分开

关键字(key word): 作为 MySQL 语言组成部分的一个保留字. 决不要使用关键字命名一个表或列

小声 BB: 其实可以的, 只要加上反引号 ` 即可(就是键盘左上角 esc 下面那个), 但是不建议, 因为可能会出现许多玄学问题

使用 crashcourse 数据库: USE crashcourse;

显示所有数据库: SHOW DATABASES;

显示一个数据库内的所有表: SHOW TABLES;

显示 customers 表中的所有列: SHOW COLUMNS FROM customers; 或者是 DESCRIBE customers;

显示广泛的服务器状态信息: SHOW STATUS;

显示创建特定数据库或表的 MySQL 语句: SHOW CREATE DATABASE; SHOW CREATE TABLE;

显示属于用户的安全权限: SHOW GRANTS;

显示服务器错误或警告信息: SHOW ERRORS; SHOW WARNINGS;

进一步了解 SHOW: HELP SHOW;

mysql5: 获得和过滤模式信息: INFORMATION_SCHEMA



注: 在这套笔记的所有 sql 语句中, 大写的部分为固定不变的, 小写的部分是变量 (但有时候可能大小写没改过来, 具体情况还需自行甄别)