MySQL数据库与表的操作

一、什么是数据库

mysql本质基于C(mysql)S(mysqld)模式的一种网络服务

mysql数据库服务的客户端

mysqld数据库服务的服务器端

数据库默认的端口号3306

什么是mysql数据库呢

mysql是一套给我们提供数据存取的服务的网络程序一般指的是,在磁盘或者内存中存储的特定结构组织的数据

数据库分为关系型数据库与非关系型数据库而mysql属于关系型数据库,是将数据存储在磁盘上的

那么,现在我们先来简单见识一下mysql的操作。

可以看到,所谓的创建数据库,本质是linux下的一个目录

在数据库内建立表本质是在linux下创建对应的文件

那么,这些操作都是谁来做的呢

mysqld服务帮我们做的

数据库本质其实也是文件!只不过这些文件并不由程序员直接操作,而是由数据库服务帮我们进行操作

现在,我们用一张图来理解数据库是怎么进行工作的。

mysql客户端将执行的操作交给mysqld(mysql服务器端),执行命令,最后将结果返回给mysql客户端

二、SQL分类

DDL【data definition language】数据定义语言,用来维护存储数据的结构。(如create,drop,alter)

DML【data manipulation language】数据操纵语言,用来对数据进行操作。(如insert,delete,update)

DCL【Data Control Language】数据控制语言,主要负责权限管理与事务。(如grant,revoke,commit)

三、存储引擎

一般常见的存储引擎就是InnoDB和MyISAM

存储引擎数据库管理系统如何存储数据如何为存储的数据建立索引和如何更新、查询数据等技术的实现方法

mysql的核心就是插件式存储引擎,mysql支持多种存储引擎

四、库的操作

4.1 数据库的操作

. 创建数据库

复制代码
create database [if not exists] db_name;

if not exists代表该数据库不存在则创建,存在则警告

我们可以看一下创建的这个数据库,它的编码格式以及校验方式是什么?

这是系统默认的编码格式与校验方式。我们也可以在创建数据库的时候手动指定编码与校验方式。

复制代码
create database db_name character set utf16 collate utf16_general_ci;
create database db_name charset=gbk collate=gbk_chinese_ci;

. 删除数据库

复制代码
drop database db_name;

. 修改数据库

复制代码
alter database db_name;

如果想查看当前处在哪一个数据库下,可以使用 select database() 命令。

show databases命令可以查看都有哪些数据库。

show tables 可以查看当前所处数据库都有哪些表。

4.2 数据库的备份与恢复

复制代码
//备份操作
mysqldump -P(port)端口号 -u(user)用户 -p(password)密码 -B(database)数据库名 > 数据库备份存储的文件路径
//恢复操作
source 文件路径

备份文件里的内容

如果备份一个数据库时,没有带上-B参数在恢复数据库时,需要先创建空数据库,然后使用数据库,再使用source来还原

show processlist命令可以用来查看当前都有哪些连接使用数据库

五、表的操作

5.1 创建表

复制代码
create table table_name();

现在我们已经成功创建了一张表,那么该如何查看表结构的信息呢?

可以使用desc table_name命令。

5.2 表中插入数据

现在,我们先向该表内插入一些数据,在查看表里面的内容。

复制代码
insert into table_name (column1,column2...) values (value1, value2...);

5.3 修改表

复制代码
//添加一列
alter table table_name add (column datatype);
//修改列的属性
alter table table_name modify (column datatype);
//删除一列
alter table table_name drop (column);
//修改列(包括列名称与列属性)
alter table table_name change column datatype;

添加列

修改列属性

删除列

如果我们需要修改表名,应该如何修改呢?可以使用alter table table_name rename to newtable_name命令。

那我们如何修改列呢?

5.4 删除表

复制代码
drop table table_name;