学习笔记
参考书籍:《Mysql必知必会》等
基本概念
数据: 能够输入到计算机中并被识别处理的信息集合。
数据结构:研究一个数据集合中数据之间关系的。
数据库 : 按照数据结构,存储、管理数据的仓库。数据库是在数据库管理系统(就是一个软件,通过这个软件我们可以创建数据库)管理和控制下,在一定介质(通常情况下,这个介质是磁盘,但少数也有也有硬盘/优盘/内存)上的数据集合。
备注:简单的来说,我们通过这个软件(数据库管理系统)在我们的磁盘上开辟了一块空间;然后将数据通过软件,存入这个磁盘空间;这个磁盘空间就叫做存贮数据的仓库,我们简称为数据库。
数据库管理系统 (DBMS):管理数据库的软件,用于建立和维护数据库 (图数据库系统)。
注意!不要混淆数据库和DBMS,人们通常认为数据库这个术语来代表数据库软件,其实不然!确切的说,数据库软件为DBMS,数据库是通过DBMS创建和操纵的容器。我们不会直接访问数据库,帮我们访问数据库的是DBMS.
数据库系统: 由数据库和数据库管理系统,开发工具等组成的集合。
表:某种特定类型数据的结构化清单.数据库中每个表都有一个名字,来标识自己。这个名字在这个表中是唯一的,虽然在相同的数据库中不能两次使用相同的表名,但是在不同的数据库中却可以使用相同的表名。
模式:关于数据库和表的布局及特性的信息。
列:表中的一个字段。所有表都是由一个或多个列组成的。
数据类型:数据类型定义某一列可以存储的数据种类,每个列都有相同的数据类型。
行:表中的一个记录。从很大程度上来说,“行”和"记录"两个术语是可以相互替代的,但是从技术上来说,行才是真正的术语。
主键:表中的每一行都应该有可以唯一标识自己的一列(或者一组列),唯一标识表中每一行的这个列(或者一组列)就叫做主键。没有主键,更新或删除表中的特定行会很困难。表中的任何列都可以作为主键,只要他们满足:①任何两行都不具有相同的主键值②每个行必须有一个主键值(主键列不允许有NULL
, 也就是说主键列NOT NULL
).
数据库分类和常见数据库
①关系型数据库和非关系型数据库
关系型(在数据库中占大部分): 采用关系模型来组织数据结构的数据库 (二维表)
非关系型: 不采用关系模型组织数据结构的数据库
②开源数据库和非开源数据库
开源:MySQL、SQLite、MongoDB(常见的非关系型数据库)
非开源:Oracle、DB2、SQL_Server
③常见的关系型数据库
MySQL、Oracle、SQL_Server(微软)、DB2、SQLite(开源、小型数据库。大概只有几百KB,支持10GB数据的存储)
备注:SQLite是python唯一标准库支持的数据库。(import sqlite3)
数据库结构 (图库结构)
数据库的组成:数据元素 --组成–> 记录 –组成–>数据表 –组成–> 数据库
数据表图示:
MySQL服务图示:
备注:一个数据库系统中可能会有多个库,每个库中可能会有多张表。所有这些数据都是放在磁盘中,那么该怎么放入磁盘中呢?这就需要用到我们的数据库管理软件。
连接MySQL服务
Mysql客户端连接命令的格式为:
mysql -h主机地址 -u用户名 -p密码
#注意-h选项可以省略
比如:
mysql -hlocalhost -uroot -p19970928
注意这里的-p
选项后的密码是可以省略的,但是之后我们还是得输一遍密码。如下图所示:
SQL语句(所有的关系型数据库都使用sql语句)
- 什么是SQL
SQL是结构化查询语言(Structured Query Language),一种有特殊目的的编程语言,是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统。
- SQL语句使用特点
①SQL语言基本上独立于数据库本身
②各种不同的数据库对SQL语言的支持与标准存在着细微的不同
③每条命令必须以 ;
结尾
④SQL命令关键字不区分字母大小写