欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 新闻 > 会展 > MySQL 数据库操作指南:从数据库创建到数据操作

MySQL 数据库操作指南:从数据库创建到数据操作

2025/4/17 10:19:46 来源:https://blog.csdn.net/weixin_53197693/article/details/147047172  浏览:    关键词:MySQL 数据库操作指南:从数据库创建到数据操作

关键词:MySQL;数据库操作;DDL;DML

一、引言

MySQL 作为广泛应用的关系型数据库管理系统,对于开发人员和数据库管理员而言,熟练掌握其操作至关重要。本文章通过一系列 SQL 示例,详细阐述 MySQL 数据库的常用操作。

参考资料:黑马程序员

二、数据库的查询与创建

2.1 查询所有数据库

使用 SHOW DATABASES; 语句可查询当前 MySQL 实例中的所有数据库。此语句返回一个列表,包含已存在的数据库名称。例如:

SHOW DATABASES;

2.2 创建数据库

通过 CREATE DATABASE 语句创建新的数据库。例如,创建名为 db02 的数据库:

CREATE DATABASE if not extists db02;

if not exists :数据库不存在,则创建该数据库;如果存在则不创建 

2.3 使用数据库

use db01;

三、表结构定义(DDL - Data Definition Language)

3.1 创建表 - 基本语法

使用 CREATE TABLE 语句创建表,并定义表中的列及其属性。以下示例创建一个名为 tb_user 的表,包含 idusernamenameage 和 gender 列:

CREATE TABLE tb_user (id INT COMMENT 'ID, 唯一标识',username VARCHAR(20) COMMENT '用户名',name VARCHAR(10) COMMENT '姓名',age INT COMMENT '年龄',gender CHAR(1) COMMENT '性别'
) COMMENT '用户表';

数值类型

类型大小有符号(SIGNED)范围无符号(UNSIGNED)范围描述
TINYINT1byte(-128,127)(0,255)小整数值
SMALLINT2bytes(-32768,32767)(0,65535)大整数值
MEDIUMINT3bytes(-8388608,8388607)(0,16777215)大整数值
INT/INTEGER4bytes(-2147483648,2147483647)(0,4294967295)大整数值
BIGINT8bytes(-2^63,2^63-1)(0,2^64-1)极大整数值
FLOAT4bytes(-3.402823466 E+38,3.402823466351 E+38)0 和 (1.175494351 E-38,3.402823466 E+38)单精度浮点数值
DOUBLE8bytes(-1.7976931348623157 E+308,1.7976931348623157 E+308)0 和 (2.2250738585072014 E-308,1.7976931348623157 E+308)双精度浮点数值
DECIMAL依赖于M(精度)和D(标度)的值依赖于M(精度)和D(标度)的值小数值(精确定点数)

 

字符串类型

类型大小描述
CHAR0-255 bytes定长字符串(需要指定长度)
VARCHAR0-65535 bytes变长字符串(需要指定长度)
TINYBLOB0-255 bytes不超过255个字符的二进制数据
TINYTEXT0-255 bytes短文本字符串
BLOB0-65 535 bytes二进制形式的长文本数据
TEXT0-65 535 bytes长文本数据
MEDIUMBLOB0-16 777 215 bytes二进制形式的中等长度文本数据
MEDIUMTEXT0-16 777 215 bytes中等长度文本数据
LONGBLOB0-4 294 967 295 bytes二进制形式的极大文本数据
LONGTEXT0-4 294 967 295 bytes极大文本数据

日期时间类型

类型大小范围格式描述
DATE31000-01-01 至 9999-12-31YYYY-MM-DD日期值
TIME3-838:59:59 至 838:59:59HH:MM:SS时间值或持续时间
YEAR11901 至 2155YYYY年份值
DATETIME81000-01-01 00:00:00 至 9999-12-31 23:59:59YYYY-MM-DD HH:MM:SS混合日期和时间值
TIMESTAMP41970-01-01 00:00:01 至 2038-01-19 03:14:07YYYY-MM-DD HH:MM:SS混合日期和时间值,时间戳

 

3.2 创建表 - 基本语法(含约束)

在创建表时,可以为列添加约束条件,以确保数据的完整性。例如,为 tb_user 表添加主键、非空、唯一和默认值约束:

在MySQL数据库当中,提供了以下5种约束:

约束描述关键字
非空约束限制该字段值不能为nullnot null
唯一约束保证字段的所有数据都是唯一、不重复的unique
主键约束主键是一行数据的唯一标识,要求非空且唯一primary key
默认约束保存数据时,如果未指定该字段值,则采用默认值default
外键约束让两张表的数据建立连接,保证数据的一致性和完整性foreign key
CREATE TABLE tb_user (id INT PRIMARY KEY AUTO_INCREMENT COMMENT 'ID, 唯一标识',username VARCHAR(20) NOT NULL UNIQUE COMMENT '用户名',name VARCHAR(10) NOT NULL COMMENT '姓名',age INT COMMENT '年龄',gender CHAR(1) DEFAULT '男' COMMENT '性别'
) COMMENT '用户表';

3.3 创建表 tb_emp

除了纯 SQL 语句创建表,也可借助图形化工具创建表。以下为通过 SQL 语句创建 tb_emp 表,包含主键、唯一约束、默认值等多种约束:

CREATE TABLE tb_emp (id INT PRIMARY KEY AUTO_INCREMENT COMMENT '主键ID',username VARCHAR(20) NOT NULL COMMENT '用户名',password VARCHAR(32) DEFAULT '123456' NULL COMMENT '密码',name VARCHAR(10) NOT NULL COMMENT '姓名',gender TINYINT UNSIGNED NOT NULL COMMENT '性别, 1 男, 2 女',image VARCHAR(300) NULL COMMENT '图像url',job TINYINT UNSIGNED NULL COMMENT '职位, 1 班主任, 2 讲师, 3 学工主管, 4 教研主管',entrydate DATE NULL COMMENT '入职日期',create_time DATETIME NOT NULL COMMENT '创建时间',update_time DATETIME NOT NULL COMMENT '修改时间',CONSTRAINT tb_emp_username_uindex UNIQUE (username)
) COMMENT '员工表';

3.4 查看表结构

  • 查看当前数据库下的表:使用 SHOW TABLES; 语句查看当前数据库中所有表的名称:
SHOW TABLES;

  • 查看指定表结构:通过 DESC 语句查看指定表的详细结构,包括列名、数据类型、是否允许为空等信息。例如,查看 tb_emp 表结构:
DESC tb_emp;

  • 查看数据库的建表语句:使用 SHOW CREATE TABLE 语句查看创建指定表的完整 SQL 语句,包括表的所有定义和约束。例如,查看 tb_emp 表的建表语句:
SHOW CREATE TABLE tb_emp;

3.5 修改表结构

  • 添加字段:使用 ALTER TABLE...ADD 语句为表添加新字段。例如,为 tb_emp 表添加 qq 字段,类型为 VARCHAR(11)
ALTER TABLE tb_emp ADD qq VARCHAR(11) COMMENT 'QQ';

  • 修改字段类型:使用 ALTER TABLE...MODIFY 语句修改表中已有字段的类型。例如,将 tb_emp 表中 qq 字段的类型修改为 VARCHAR(13) 并命名为 qq_num
ALTER TABLE tb_emp MODIFY qq_num VARCHAR(13) COMMENT 'QQ';

  • 修改字段名及类型:使用 ALTER TABLE...CHANGE 语句修改字段名及类型。例如,将 tb_emp 表中 qq 字段修改为 qq_num,类型为 VARCHAR(13)
ALTER TABLE tb_emp CHANGE qq qq_num VARCHAR(13) COMMENT 'QQ';

  • 删除字段:使用 ALTER TABLE...DROP COLUMN 语句删除表中的字段。例如,删除 tb_emp 表中的 qq_num 字段:
ALTER TABLE tb_emp DROP COLUMN qq_num;

  • 修改表名:使用 RENAME TABLE 语句修改表的名称。例如,将 tb_emp 表名修改为 emp
RENAME TABLE tb_emp TO emp;

3.6 删除表结构

使用 DROP TABLE 语句删除表。为避免删除不存在的表导致错误,可使用 IF EXISTS 子句。例如,删除 tb_emp 表:

DROP TABLE IF EXISTS tb_emp;

四、数据操作语言(DML - Data Manipulation Language)

4.1 插入数据 - INSERT

  • 为指定字段插入值:使用 INSERT INTO...VALUES 语句为表中的指定字段插入数据。例如,为 tb_emp 表的 usernamenamegendercreate_time 和 update_time 字段插入值:
INSERT INTO tb_emp (username, name, gender, create_time, update_time) VALUES ('wuji', '张无忌', 1, NOW(), NOW());

  • 为所有字段插入值:为表中的所有字段插入数据时,需按表定义的字段顺序提供值。例如:
INSERT INTO tb_emp (id, username, password, name, gender, image, job, entrydate, create_time, update_time)
VALUES (NULL, 'zhiruo', '123', '周芷若', 2, '1.jpg', 1, '2010 - 01 - 01', NOW(), NOW());
-- 或者:
INSERT INTO tb_emp VALUES (NULL, 'zhiruo2', '123', '周芷若', 2, '1.jpg', 1, '2010 - 01 - 01', NOW(), NOW());

  • 批量插入数据:可一次性为表插入多条记录。例如,批量为 tb_emp 表的 usernamenamegendercreate_time 和 update_time 字段插入数据:
INSERT INTO tb_emp (username, name, gender, create_time, update_time) VALUES
('weifuwang', '韦一笑', 1, NOW(), NOW()), ('xieshiwang', '谢逊', 1, NOW(), NOW());

4.2 更新数据 - UPDATE

  • 更新单条记录:使用 UPDATE...SET 语句更新表中的数据,并通过 WHERE 子句指定更新条件。例如,将 tb_emp 表中 ID 为 1 的员工姓名更新为 张三 并更新 update_time
UPDATE tb_emp SET name = '张三', update_time = NOW() WHERE id = 1;

  • 更新多条记录:若不指定 WHERE 子句,则会更新表中的所有记录。例如,将 tb_emp 表中所有员工的入职日期更新为 2010 - 01 - 01 并更新 update_time
UPDATE tb_emp SET entrydate = '2010 - 01 - 01', update_time = NOW();

4.3 删除数据 - DELETE

  • 删除单条记录:使用 DELETE FROM...WHERE 语句删除表中的数据,并通过 WHERE 子句指定删除条件。例如,删除 tb_emp 表中 ID 为 1 的员工:
DELETE FROM tb_emp WHERE id = 1;
  • 删除所有记录:若不指定 WHERE 子句,则会删除表中的所有记录。例如,删除 tb_emp 表中的所有员工:
DELETE FROM tb_emp;

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词