数据库简介
数据库介绍和分类
-
数据库
- 指长期存储在计算机内、有组织的数据集合
- 简而言之,数据库就是一个存储数据的地方(仓库)
-
数据库的分类
- 关系型数据库
- Oracle:在大型项目中使用,例如:银行、电信等项目
- MySQL:Web项目中使用最广泛的关系型数据库
- Microsoft SQL Server:在微软的项目中使用
- SQLite:轻量级数据库,主要应用在移动平台
- 非关系型数据库
- redis
- mongodb
- hbase
关系型数据库:表格方式展示
- 关系型数据库
非关系型数据库:以 键-值对 方式展示
关系型数据库核心要素和SQL的分类
-
关系型数据库核心要素
- 数据行(相当于excel表格中的一行数据)
- 数据列(相当于excel表格中的一列数据)
- 数据表(excel表格中某个表)
- 数据库(相当于所有表的集合)
-
SQL的分类:SQL是一个结构化的查询语句,通过SQL能够对数据库进行相关的操作
- DQL:数据查询语言,用于对数据进行查询,例如:select
- data query language
- DML:数据操作语言,对数据进行增加、修改、删除,例如:insert 、 update、delete
- data manipulation language
- TPL:事务处理语言,对事务进行处理,例如:begin transaction 、commit、rollback
- transaction processing language
- DCL:数据控制语言,进行授权与权限回收,例如:grant、revoke
- data control language
- DDL:数据定义语言,进行数据库、表的管理等,例如:create、drop
- data definition language
- CCL:指针控制语言,通过控制指针完成表的操作,例如:declare cursor
- cursor control language
- DQL:数据查询语言,用于对数据进行查询,例如:select
MySQL
MySQL简介
- mysql是oracle公司的产品
- 社区版开源免费,商业版本收费
- 特点:
- 可移植性好
- 支持多操作系统
- 支持多编程语言
- 开源、社区版免费
- 支持多线程
- 优化SQL查询算法
- 多种数据库连接方式
- 支持多语言编码格式
MySQL组成和命令连接数据库
-
MySQL组成:
-
MySQL服务器
- 存储数据并解析编译后的SQL语句,将执行结果返回给客户端。
-
MySQL客户端
- 下发用户要执行的SQL语句,并显示服务器返回的执行结果。
-
-
命令连接MySQL数据库
- 前置条件:
- 确定mysql数据库的IP地址
- 可以通过ifconfig来确认
- 确认mysql数据库服务是否开启
- netstat -anptu |grep 3306
- 确定mysql数据库的IP地址
- 前置条件:
-
连接命令:
mysql -h数据库IP -P端口号 -u数据库登录用户名 -p数据库登录密码
- -h不加时则表示为本机
- -P不加则表示默认3306端口
工具连接数据库
Navicat 操作数据库
通过navicat操作数据库
- 使用数据库
- 在navicat窗口中,双击左侧已连接的连接名称即可打开并连接到数据库
- 创建数据库
- 打开数据库后,右击 连接名称,选中“创建数据库”然后输入对应的数据,点击确定。
- 修改数据库
- 打开数据库后,右击要修改的数据库名称,选中 数据库属性。
- 删除数据库
- 打开数据库后,右击要删除的数据库名称,选择“删除数据库”
数据类型与约束
-
数据约束
-
主键(primary key):物理上存储的顺序
- 当把某个字段设为主键后,该字段的值必须唯一,且不能为空
- 针对主键的字段,可以设定自动自增,自动在原来最大ID值上加1
-
非空(not null):此字段不允许填写空值
- 空(Null)和 ‘ ’ 空字符串是不一样的
-
唯一(unique):此字段的值不允许重复
- 主键只能有1个
- 唯一的字段可以是多个
-
-
- 默认值(default):当不填写此值时会使用默认值,如果填写时以填写为准
- 外键(foreign key):维护两个表之间的关联关系。
数据库的备份和还原
-
备份
-
还原:
-
注意:要还原的数据库不存在时,需要先创建数据库
-
命令行客户端
命令行操作数据库
-
前置条件:
-
命令行先连接数据库
mysql -uroot -p123456
-
-
常见数据库操作命令:
- 查看所有数据库:show databases;
- 使用数据库:use 数据库名;
- 查看当前使用数据库:select database();
- 创建数据库:create database 数据库名 charset=utf8;
- 删除数据库:drop database 数据库名;
命令行操作数据库表
- 前置条件
- 操作数据表之前要先通过use 打开对应的数据库
- 常见数据表草走命令:
- 查看当前数据库所有的表:show tables;
- 查看表结构:desc 表名;
- 查看表的创建语句:show create table 表名;