基础知识
数据库
- 数据库(Database)是按照数据结构来组织、存储和管理数据的仓库。
- 每个数据库都有一个或多个不同的 API 用于创建,访问,管理,搜索和复制所保存的数据。
- 我们也可以将数据存储在文件中,但是在文件中读写数据速度相对较慢。
- 所以,现在我们使用关系型数据库管理系统(RDBMS)来存储和管理的大数据量。所谓的关系型数据库,是建立在关系模型基础上的数据库,借助于集合代数等数学概念和方法来处理数据库中的数据。
- RDBMS 即关系数据库管理系统(Relational Database Management System)的特点:
- 数据以表格的形式出现
- 每行为各种记录名称
- 每列为记录名称所对应的数据域
- 许多的行和列组成一张表单
- 若干的表单组成database
RDBMS 术语
- 数据库:数据库是一些关联表的集合。
- 数据表:表是数据的矩阵。在一个数据库中的表看起来像一个简单的电子表格。
- 列:一列(数据元素) 包含了相同类型的数据, 例如邮政编码的数据。
- 行:一行(=元组,或记录)是一组相关的数据,例如一条用户订阅的数据。
- 冗余:存储两倍数据,冗余降低了性能,但提高了数据的安全性。
- 主键:主键是唯一的。一个数据表中只能包含一个主键。你可以使用主键来查询数据。
- 外键:外键用于关联两个表。
- 复合键:复合键(组合键)将多个列作为一个索引键,一般用于复合索引。
- 索引:使用索引可快速访问数据库表中的特定信息。索引是对数据库表中一列或多列的值进行排序的一种结构。类似于书籍的目录。
MySQL数据库
- MySQL 是一个关系型数据库管理系统,由瑞典 MySQL AB 公司开发,目前属于 Oracle 公司。
- MySQL 是一种关联数据库管理系统,关联数据库将数据保存在不同的表中,而不是将- 所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。
- MySQL 是开源的,所以你不需要支付额外的费用。
- MySQL 支持大型的数据库。可以处理拥有上千万条记录的大型数据库。
- MySQL 使用标准的 SQL 数据语言形式。
- MySQL 可以运行于多个系统上,并且支持多种语言。这些编程语言包括 C、C++、Python、Java、Perl、PHP、Eiffel、Ruby 和 Tcl 等。
- MySQL 对PHP有很好的支持,PHP 是目前最流行的 Web 开发语言。
- MySQL 支持大型数据库,支持 5000 万条记录的数据仓库,32 位系统表文件最大可支持 4GB,64 位系统支持最大的表文件为8TB。
- MySQL 是可以定制的,采用了 GPL 协议,你可以修改源码来开发自己的 MySQL 系统。
入门
配置
- 打开刚刚解压的文件夹 C:\web\mysql-8.0.11 ,在该文件夹下创建 my.ini 配置文件,编辑 my.ini 配置以下基本信息:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17[client]
# 设置mysql客户端默认字符集
default-character-set=utf8
[mysqld]
# 设置3306端口
port = 3306
# 设置mysql的安装目录
basedir=C:\\web\\mysql-8.0.11
# 设置 mysql数据库的数据的存放目录,MySQL 8+ 不需要以下配置,系统自己生成即可,否则有可能报错
# datadir=C:\\web\\sqldata
# 允许最大连接数
max_connections=20
# 服务端使用的字符集默认为8比特编码的latin1字符集
character-set-server=utf8
# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB
启动
启动MySQL
1 | net start mysql |
登录 MySQ
-h : 指定客户端所要登录的 MySQL 主机名, 登录本机(localhost 或 127.0.0.1)该参数可以省略;
-u : 登录的用户名;
-p : 告诉服务器将会使用一个密码来登录, 如果所要登录的用户名密码为空, 可以忽略此选项。
1 | mysql -h 主机名 -u 用户名 -p 密码 |
登录本机MySQL
1 | mysql -u 用户名 -p 密码 |
关闭MySQL
1 | net stop mysql |
管理
- USE $table
- SHOW DATABASES
- SHOW TABLES
- SHOW COLUMNS FROM $table
USE $database
选择要操作的Mysql数据库,使用该命令后所有Mysql命令都只针对该数据库。
1
2 > Database changed
>
SHOW DATABASES
列出 MySQL 数据库管理系统的数据库列表。
1
2
3
4
5
6
7
8
9 > +--------------------+
> | Database |
> +--------------------+
> | information_schema |
> | mysql |
> | performance_schema |
> | test |
> +--------------------+
>
SHOW TABLES
显示指定数据库的所有表,使用该命令前需要使用 use 命令来选择要操作的数据库。
1
2
3
4
5
6
7
8 > +------------------+
> | Tables_in_runoob |
> +------------------+
> | employee_tbl |
> | runoob_tbl |
> | tcount_tbl |
> +------------------+
>
SHOW COLUMNS FROM $database
显示数据表的属性,属性类型,主键信息 ,是否为 NULL,默认值等其他信息。
1 | +-----------------+--------------+------+-----+---------+-------+ |
SQL
- SQL (Structured Query Language ) 结构化查询语言
- 特点
- 以分号结尾;
- 不区分大小写。
- 分类
- DDL(Data Definition Language ) :定义数据库、表。
- DML(Data Manipulation Language) :对数据库中表的数据进行增删改。
- DQL (Data Query Language):查询数据库中表的数据。
- DCL(Data Control Language) :定义数据库的访问权限和安全级别,及创建用户。
- 注释
- 单行注释:“– ”(空格必须加)
- 单行注释:“#”(空格可加可不加)
- 多行注释:“/* */”
- 特点
DDL
Data Definition Language 数据定义语言
操作数据库
使用
1 |
|
创建
1 |
|
查询
1 |
|
修改
1 |
|
删除
1 |
|
操作表、列
创建
1 |
|
查询
1 |
|
修改
1 |
|
删除
1 |
|
DML
Data Manipulation Language 数据操作语言
操作记录、值
创建
1 |
|
删除
1 |
|
修改
1 |
|
DQL
Data Query Language 数据查询语言
基础查询
1 | # 查询表中的所有列 |
条件查询
1 |
|
模糊查询
1 |
|
排序查询
1 |
|
聚合函数
- 聚合函数排除了NULL值
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
# 计算指定列的 字段个数
SELECT COUNT($column) FROM $table;
# 计算指定列的 字段个数,且不排除NULL值
SELECT COUNT( IFNULL($column,0) ) FROM $table;
# 计算指定列的 最大值
SELECT MAX($column) FROM $table;
# 计算指定列的 最小值
SELECT MIN($column) FROM $table;
# 计算指定列的和
SELECT SUM($column) FROM $table;
# 计算指定列的平均值
SELECT AVG($column) FROM $table;
分组查询
1 |
分页查询
DCL
Data Control Language 数据控制语言
1 |