什么是数据库?
数据库(Database)是按照数据结构来组织、存储和管理数据的仓库。
每个数据库都有一个或多个不同的 API 用于创建,访问,管理,搜索和复制所保存的数据。
现在我们使用关系型数据库管理系统(RDBMS)来存储和管理大数据量。所谓的关系型数据库,是建立在关系模型基础上的数据库,借助于集合代数等数学概念和方法来处理数据库中的数据。
RDBMS 即关系数据库管理系统(Relational Database Management System)特点
- 1.数据以表格的形式出现
- 2.每行为各种记录名称
- 3.每列为记录名称所对应的数据域
- 4.许多的行和列组成一张表单
- 5.若干的表单组成database
RDBMS术语
- 数据库: 数据库是一些关联表的集合。
- 数据表: 表是数据的矩阵。在一个数据库中的表看起来像一个简单的电子表格。
- 列: 一列(数据元素) 包含了相同类型的数据, 例如邮政编码的数据。
- 行:一行(=元组,或记录)是一组相关的数据,例如一条用户订阅的数据。
- 冗余:存储两倍数据,冗余降低了性能,但提高了数据的安全性。
- 主键:主键是唯一的。一个数据表中只能包含一个主键。你可以使用主键来查询数据。
- 外键:外键用于关联两个表。
- 复合键:复合键(组合键)将多个列作为一个索引键,一般用于复合索引。
- 索引:使用索引可快速访问数据库表中的特定信息。索引是对数据库表中一列或多列的值进行排序的一种结构。类似于书籍的目录。
- 参照完整性: 参照的完整性要求关系中不允许引用不存在的实体。与实体完整性是关系模型必须满足的完整性约束条件,目的是保证数据的一致性。
表格的组成
- 表头(header): 每一列的名称;
- 列(col): 具有相同数据类型的数据的集合;
- 行(row): 每一行用来描述某条记录的具体信息;
- 值(value): 行的具体信息, 每个值必须与该列的数据类型相同;
- 键(key): 键的值在当前列中具有唯一性。
SQL(Structured Query Language)
结构化查询语言简称SQL,是一种特殊目的的编程语言,是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统。
数据库的分类
关系型数据库
access、mysql、Oracle、SQL server
非关系型数据库
redis、monogdb
MySQL基本操作
登录MySQL
mysql -u用户名 -p密码 -h主机名或者IP地址 -P端口号 -D进入数据库
mysql -uroot -p
修改MySQL密码
set password for root@localhost = '新密码';
set password for root@localhost = '123456';
退出MySQL
exit
\q
quit
查看查看当前MySQL中存在那些数据库
show databses;
MySQL自带数据库
information_schema:主要存储了系统中的一些数据库对象信息。如:用户表信息、列信息、权限信息、字符集信息、分区信息等。
performance_schema:主要存储数据库服务器的性能参数。
mysql:存储了系统的用户权限信息及帮助信息。
sys:5.7新增,之前版本需要手工导入。这个库是通过视图的形式把information_schema和performance_schema结合起来,查询出更加令人容易理解的数据。
创建数据库
create database 数据库名称;
create database db_test;
查看创建的数据库的详细信息
show create database 数据库名称;
show create database db_test;
删除数据库(慎用)!
drop database 数据库名称;
drop database db_test;
进入到某个数据库中
use 数据库名称;
use db_test;
创建表
create table [if not exists] 表名称(
字段名称 字段对应的类型 [约束条件],
字段名称 字段对应的类型 [约束条件],
字段名称 字段对应的类型 [约束条件]
)ENGINE=引擎 DEFAULT CHARSET=编码
create table t_test(
id int primary key not null auto_increment,
name varchar(50) not null,
gender enum('男','女') not null,
age int,
class int default 1,
teacher int
);
删除表(慎用)!
drop table 表名称;
drop table t_test;
查看创建表时的详细信息
show create table 表名称;
show create table t_test;
以表格的形式查看表的信息
describe 表名称;
desc t_test;
显示当前数据库下的表
show tables;
在表中插入信息
insert into 表名称 values(字段一,...,字段n);
insert into t_test values(1,'张三','男',22,1,111);
查询表中的所有内容
select * from 表名称;
select * from t_test;