MySQL02-数据库操作
1. 数据库服务的启动和连接
以下有关数据库服务的启动和连接操作均以 MySQL80 为例。
1.1 启动数据库服务器
数据库服务器默认是开机自启的,也就是说一般情况下不需要手动启动数据库服务器。
方法一:
Win + R 打开运行窗口,输入 services.msc 并回车,进入 服务页面,找到列表中的 MySQL80 服务,右键选择 启动 或 停止 即可。
方法二:
以管理员身份运行(必须以管理员身份运行)cmd 命令行程序,在程序中输入以下命令即可实现相应 启动 或 停止。
# 启动 MySQL 服务:
net start mysql80
# 停止 MySQL 服务:
net stop mysql80
1.2 连接数据库服务器
方法一:
在数据库程序中找到名为 MySQL 8.0 Command Line Client 的程序,双击启动后输入密码即可。
方法二:
打开 cmd 命令行程序,在程序中输入以下命令即可实现连接数据库服务器。
mysql -u root -p
其中 -u 表示数据库用户名,root 是 MySQL 的默认用户名,根据自身情况修改即可,-p 表示数据库密码,数据库密码应在输入以上命令回车后再输入,如果在 -p 之后写入了内容,MySQL将把他识别为连接数据库服务器后进入的数据库名称,比如如果输入的是 mysql -u root -p student,就表示连接数据库服务器后直接进入数据库 student,也即省略了 use student 一步。
2. 数据库操作-DDL
2.1 创建数据库
create database [if not exists] 数据库名 [character set 字符集] [collate 校对规则];
# []内的内容为可选值,其简洁写法如下:
create database 数据库名;
# 如,创建数据库 students,设置字符集为 utf8mb4,设定该数据库不存在才创建,负责不执行语句:
create database if not exists students character set utf8mb4;
说明:
- 数据库名:即数据库的名称,MySQL的数据存储区将以目录方式表示MySQL数据库,因此数据库名称必须符合操作系统的文件夹命名规则,不能以数字开头,尽量要有实际意义,在MySQL中不区分大小写;
- IF NOT EXISTS:在创建数据库之前进行判断,只有该数据库目前尚不存在时才能执行操作。此选项可以用来避免数据库已经存在而重复创建的错误;
- CHARACTER SET 字符集:也写作
default charset 字符集,指定数据库的字符集,指定字符集的目的是为了避免在数据库中存储的数据出现乱码的情况,如果在创建数据库时不指定字符集,那么就使用系统的默认(default)字符集,UTF8字符集长度为 3 字节,有些符号占 4 字节,所以推荐用utf8mb4字符集; - COLLATE 校对规则:指定字符集的默认校对规则,校对规则定义了比较字符串的方式;
2.2 使用数据库
use 数据库名;
# 有没有分号 ; 都可以
use 语句不仅可以使用数据库,还能 选择 或 切换 数据库。
2.3 查询数据库
- 查询所有数据库(名称)
show databases;
- 查询当前数据库(名称)
select database();
- 查询指定数据库的建库语句
show create database 数据库名;
这里的表是指已经建好的数据库,使用 show create database 数据库名; 语句可以查看创建该数据库的过程
- 查看数据库基本信息
show create database 数据库名;
2.4 删除数据库
drop database [if exists] 数据库名;
说明:
IF EXISTS:在删除数据库之前进行判断,只有该数据库存在时才执行删除操作。
2.5 修改数据库
修改数据库字符集
alter database 数据库名 character set 字符集;
3. 表操作-DDL
进行所有的表操作之前都要使用 use 数据库名; 语法进入数据库。
3.1 创建表
create table 表名
(
字段1 字段1类型,
字段2 字段2类型,
字段3 字段3类型,
...
字段n 字段n类型
);
创建表的语法中每个字段以 , 分隔,但最后一个字段后面没有逗号
创建表或字段的语句后可以使用 comment 注释 语句添加注释,如以上语法可以写为:
create table 表名
(
字段1 字段1类型 [comment 字段1注释],
字段2 字段2类型 [comment 字段2注释]
)[comment 表注释];
3.2 查询表
- 查询当前数据库所有表
show tables;
- 查询表结构
describe 表名;
# 或简写
desc 表名;
- 查询指定表的建表语句
show create table 表名;
这里的表是指已经建好的表,使用 show create table 表名; 语句可以查看创建该表的过程
3.3 修改表
- 修改表名
alter table 表名 rename to 新表名
- 添加字段
alter table 表名 add 字段名 数据类型(数据长度) [comment 注释] [约束];
# 如,在 students 表中添加 stuname 字段,数据类型为 varchar(20):
alter table students ADD stuname varchar(20) comment '注释';
- 删除字段
alter table 表名 drop 字段名;
- 修改字段数据类型
alter table 表名 modify 字段名 新数据类型(数据长度);
# 如,将 students 表的 stuname 字段数据类型修改为 varchar(30):
alter table students modify stuname varchar(30);
- 修改字段名和字段数据类型
alter table 表名 change 旧字段名 新字段名 数据类型(数据长度) [comment 注释];
# 如,将 students 表的 stuname 字段名修改为 stuname01,类型为 varchar(30):
alter table students change stuname stuname01 varchar(30) comment '昵称';
3.4 删除表
- 删除表
drop table [if exists] 表名;
- 删除表并重新创建该表,会保留原表结构,但清除原表数据
truncate table 表名;

浙公网安备 33010602011771号