惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

云风的 BLOG
云风的 BLOG
The GitHub Blog
The GitHub Blog
A
About on SuperTechFans
P
Proofpoint News Feed
G
Google Developers Blog
Stack Overflow Blog
Stack Overflow Blog
IT之家
IT之家
Microsoft Security Blog
Microsoft Security Blog
F
Fortinet All Blogs
人人都是产品经理
人人都是产品经理
博客园 - 叶小钗
C
Check Point Blog
Microsoft Azure Blog
Microsoft Azure Blog
aimingoo的专栏
aimingoo的专栏
月光博客
月光博客
美团技术团队
D
Docker
博客园 - Franky
Y
Y Combinator Blog
大猫的无限游戏
大猫的无限游戏
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
博客园 - 【当耐特】
罗磊的独立博客
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报

Chenxu's Blog

写出一份好的代码 linux 的基本操作 启动我的服务 更舒适地写代码(含学生白嫖指南) RAG检索优化:从 68% 到 82.2% 学习深度学习 北邮计算机研究生选课指北 学习机器学习 上海篇 提出一个好问题 写代码的环境 选购一台合适的设备 计算机的第零课 序言 内蒙古篇 山东篇 一篇对transformers的疑惑 浅析GPUStack 浅谈后端项目分层 浙江篇 河南篇 一些三端协同的开发工具记录 浅谈编程语言中的 GC 在 Windows 上安装 Rust 美化博客 消息队列 MyBatis 现代交换原理2024年题目 回忆版 北邮计科本科课程指北 ClkLog埋点用户分析系统研究报告 大数据梧桐实验分享
《MySQL必知必会》读书笔记(1)
Chenxu · 2023-06-23 · via Chenxu's Blog

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