- 数据库的基本介绍
- 库的操作
- 表的操作
数据库的基本介绍
数据库的存储介质
- 磁盘
- 内存
主流数据库
- SQL Server:微软的产品
- Oracle:甲骨文产品,适合大型项目,复杂的业务逻辑
- MySQL:属于甲骨文,并发性好,不适合做复杂的业务,主要是电商、SNS、论坛。
- H2:是一个Java开发的嵌入式数据库,本身只是一个类库,可以直接嵌入到应用项目中。、
数据库链接服务器
输入:
mysql -h 默认本地地址 -p 端口号 -u root -p
服务器,数据库,表的关系
MySQL架构
- Client Connectors:客户端连接层,主要就是通过语言访问数据库的协议和标准。就比如使用JDBC编程来操作数据库:需要加载驱动程序,建立连接,创建操作命令,执行SQL语句等一系列特定操作才能对数据库进行操作。
- MySQL Service:主要是服务功能,如SQL接口,优化,缓存,sql语句的分析及部分内置函数的执行。相当于一个环境准备和语句的分解过程(将复杂的语句进行分析生成相应的执行操作,提前判断需要的环境)
- Pluggable Storage Engines:引擎,数据库的数据最终大多数是存储在硬盘上,那么怎么存储到硬盘呢?就是i使用引擎来操作的。MySql的引擎是可以换的
- 存储层:数据的存储,主要是存储在文件系统
存储引擎
存储引擎是数据库管理系统对数据增删改查和建立索引等技术的实现
MySQL的核心就是插入式存储引擎,支持多种存储引擎
查看引擎
show engines;
InnoDB:是MySQL的默认引擎,支持事物,行级锁、外键、不支持全文索引
mermory:使用内存中的内容创建表,所有的数据也存放在内存中,因此表的处理速度非常快,但是数据容易丢失。
MyISAM:不支持事物、表级锁、支持全文索引、对空间使用程度较低,插入数据快、
详情请了解:https://blog.youkuaiyun.com/m0_37683670/article/details/85851495
SQL分类
- DDL数据定义语言,用来维护存储数据的结构;create drop alter 等对结构修改的指令
- DML数据操作语言,用来对数据进行操作;insert delete update等对数据进行操作的指令
- DCL数据控制语言,grant(赋权) revoke(删权) commit(提交)等
库的操作
- 创建数据库
create database db1;
字符集要求:create database db1 charset=utf8;
使用utf字符集,并带校验规则的数据库:create database db1 charset=utf8 collate utf_general_ci;
说明:当我们创建数据库没有指定字符集和校验规则时,系统使用默认字符集:utf8,校验规则是:utf8_general_ci
- 字符集和校验规则
查看系统默认字符集和校验规则
show variables like 'character_set_database';
show variables like 'collation_database';
查看数据库支持的字符集、校验规则
show charset;
show collation
校验规则对数据库的影响主要在区分大小写和排序结果上。
例如:
区分大小写:create database db6 collate utf8_bin;
不区分大小写: create database db5 collate utf8_general_ci;
- 查看数据库
show databases;
- 显示创建语句
show create database 库名;
- 修改数据库字符集和校验规则
alter database 库名 charset=gbk;
- 删除数据库
drop database 库名;
drop database if exists 库名;
- 数据库备份
在windows路径下,
>mysqldump -p 端口号 -u root -p 密码 -B 数据库名 > 路径\\文件名称.sql
>mysqldump -u root -p -B 数据库名 > 路径\\文件名.sql
>如果想同时备份多个库,库名之间用空格隔开就好了;
>mysqldump -u root -p -B db6 helloworld > D:\\mysql.sql
结果:
- 数据库还原
在mysql中进行命令的运行
mysql>source 路径\\文件名.sql;
如果在备份数据库的时候没有使用-B参数,在恢复数据库时,需要先创建一个空数据库,使用数据库,最后再还原。
- 查看数据库连接情况
就是查看同时有几个用户连接着同一个库
show processlist;
表操作
- 创建表
在创建表前,先要使用库,选择你要在那个库中创建。
create table table_name(
列名 列的类型,
列名 列的类型,
列名 列的类型
)character set 字符集 collate 校验规则 engine 存储引擎;
最后这三个配置可以根据需要选择不同的类型
- 查看表结构
desc table_name;
- 修改表
在表中添加两条记录
insert into 表名 values(1,'张三',9,'1997-9-9'),(2,'李四',20,'2000-10-10');
在表中添加一个字段,用于保存联系人地址
alter table 表名 add address varchar(20) comment '联系地址';
默认是添加到最后,如果想添加在某列之前只需要在最后加上after 列名;
修改类型
alter table 表名 modifty 列名 目标类型;
删除表中的列
alter table 表名 drop 列名;
修改表名
alter table 原表名 rename to 目标表名;
alter table person rename to employee;
to可以省略
修改列名
alter table 表名 change 原列名 目标列名 类型;
alter table employee change name xingming varchar(10);
- 删除表
drop table 表名;
- 查看创建表的语句
show create table 表名;
- 表的备份
和库一样,需要在windows下操作;其实备份表就是在备份库上做筛选,如果并不想备份整个库而是制备份部分表可以使用这个操作;
C:\Users\dell>mysqldump -u root -p -B 数据库 表名1 表名2 > 路径\\文件名.sql