虽然之前学过 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 语句中, 大写的部分为固定不变的, 小写的部分是变量 (但有时候可能大小写没改过来, 具体情况还需自行甄别)