上个文章我们写了如何安装MySQL数据库以及辅助工具Navicat安装,现在我们来学习MySQL结合Navicat简单使用, 注意SQL语法不区分大小写书写!!!
MySQL简介之基础操作
MySQL 是一种流行的关系型数据库管理系统(RDBMS),广泛应用于各种应用程序中。 DDL(Data Definition Language,数据定义语言)是 SQL 的一部分,用于定义和管理数据库结构。DDL 主要包括创建、修改和删除数据库对象的语句,例如数据库、表、索引等。
连接到 MySQL
安装完成后,你可以通过命令行或图形化工具连接到 MySQL。
使用命令行连接:
sh
mysql -u root -p
创建数据库:
sql
CREATE DATABASE test;
如果连续操作两次或者以上报错
sql
-- 安全创建数据库 (推荐该方式 防止误操作)
CREATE DATABASE IF NOT EXISTS test;
查询数据库
sql
SHOW DATABASES;
或者使用命令行操作(对新手比较不友好支持大佬使用)
使用数据库:
sql
USE test;
删除数据库
sql
-- 删除数据库 一般不推荐这样写 再次执行时候就报错了
DROP DATABASE 数据库名;
sql
-- 删除数据库 最好先判断一下
DROP DATABASE IF EXISTS test;
DDL表结构
DDL(数据定义语言)中,表结构是数据库设计的核心部分。表结构定义了表中包含的列(字段)、数据类型、约束条件等信息。
1. 表结构的基本组成部分
表结构由以下部分组成:
- 表名:表的唯一标识符。
- 列名:表中每一列的名称。
- 数据类型:定义列中存储的数据类型(如整数、字符串、日期等)。
- 约束:定义列的规则(如主键、唯一性、非空等)。
2. 创建表的基本语法
sql
-- 基础语法格式
CREATE TABLE table_name (
column1 datatype [constraints],
column2 datatype [constraints],
...
);
如下这样即表示创建成功
3. 修改表名称
sql
-- 修改表名称
ALTER TABLE product RENAME TO product_desc;
4. 删除表名称
sql
-- 删除表名称
DROP TABLE product_desc;
-- 安全 删除表名称
DROP TABLE IF EXISTS product_desc;
5. 表格插入数据 (INSERT INTO)
sql
INSERT INTO 表名 (列名1, 列名2, ...)
VALUES (值1, 值2, ...);
sql
-- 向person_info表中插入一条数据 时间格式DATE
INSERT INTO person_info(
id,
name,
age,
addr,
create_time
)VALUES(2,'lala',22,'赣州市安远县',20250111)
-- 时间字符串也行有时分秒的加上即可 '2025-01-11'
6. 表格查询数据(SELECT)
sql
-- 基础语法
SELECT 列名1, 列名2, ...
FROM 表名
WHERE 条件;
sql
-- 查询表数据
SELECT name,age,addr FROM person_info WHERE id=1;
7. 更新/修改表格数据(SELECT)
sql
UPDATE 表名
SET 列名1 = 值1, 列名2 = 值2, ...
WHERE 条件;
sql
-- 更新表格数据
UPDATE person_info SET age = 41 WHERE id = 1;
添加列
sql
ALTER TABLE 表名
ADD 列名 数据类型;
sql
--添加列
ALTER TABLE person_info
ADD Email VARCHAR(100);
删除列
sql
ALTER TABLE 表名
DROP COLUMN 列名;
sql
ALTER TABLE person_info
DROP COLUMN Email;
修改列数据类型
sql
ALTER TABLE 表名
MODIFY COLUMN 列名 新数据类型;
sql
ALTER TABLE person_info
MODIFY COLUMN Age TINYINT;
8. 删除表格数据(DELETE)
sql
DELETE FROM 表名
WHERE 条件;
sql
--删除表格数据
DELETE FROM person_info WHERE id = 2;
SQL 数据类型及其特点
类别 | 数据类型 | 描述 | 大小/范围 |
---|---|---|---|
数值类型 | INT | 整数类型 | 4 字节,范围:-2,147,483,648 到 2,147,483,647 |
TINYINT | 较小的整数 | 1 字节,范围:0 到 255(无符号)或 -128 到 127(有符号) | |
SMALLINT | 小整数类型 | 2 字节,范围:0 到 65,535(无符号)或 -32,768 到 32,767(有符号) | |
BIGINT | 大整数类型 | 8 字节,范围很大 | |
FLOAT | 单精度浮点数 | 4 字节 | |
DOUBLE | 双精度浮点数 | 8 字节 | |
字符串类型 | CHAR(n) | 定长字符串 | n 字符 (1-255) |
VARCHAR(n) | 可变长度字符串 | n 字符 (1-65,535) | |
TEXT | 长文本类型 | 超过 65,535 字符 | |
BLOB | 二进制大对象 | 超过 65,535 字节 | |
日期和时间类型 | DATE | 存储日期 | 'YYYY-MM-DD' |
TIME | 存储时间 | 'HH:MM:SS' | |
DATETIME | 存储日期和时间 | 'YYYY-MM-DD HH:MM:SS' | |
TIMESTAMP | 存储时间戳 | 自 1970 年 1 月 1 日以来的秒数 | |
YEAR | 存储年份 | 2 位或 4 位 | |
布尔类型 | BOOLEAN | 布尔类型 | 0(假)和 1(真) |
其他类型 | ENUM | 枚举类型 | 从预定义的字符串值中选择 |
SET | 集合类型 | 允许存储多个值,从预定义的字符串集合中选择 |
DDL和DML的区别
1. DDL(数据定义语言)
-
功能:用于定义或修改数据库结构(如表、索引、视图等)。
-
特点:
- 操作的是数据库的结构,而不是数据本身。
- 通常由数据库管理员(DBA)使用。
- 执行后会自动提交事务(隐式提交),无法回滚。
-
常用语句:
CREATE
:创建数据库对象(如表、视图、索引等)。ALTER
:修改数据库对象的结构。DROP
:删除数据库对象。TRUNCATE
:清空表中的所有数据,但保留表结构。RENAME
:重命名数据库对象。
示例:
sql
CREATE TABLE Students (
StudentID INT PRIMARY KEY,
Name VARCHAR(50),
Age INT
);
ALTER TABLE Students ADD COLUMN Email VARCHAR(100);
DROP TABLE Students;
2. DML(数据操作语言)
-
功能:用于操作数据库中的数据(如插入、更新、删除、查询等)。
-
特点:
- 操作的是数据库中的数据,而不是结构。
- 通常由开发人员或数据分析师使用。
- 需要显式提交事务(如
COMMIT
),否则可以回滚(如ROLLBACK
)。
-
常用语句:
SELECT
:查询数据。INSERT
:插入数据。UPDATE
:更新数据。DELETE
:删除数据。
示例:
sql
INSERT INTO Students (StudentID, Name, Age)
VALUES (1, '张三', 20);
UPDATE Students SET Age = 21 WHERE StudentID = 1;
DELETE FROM Students WHERE StudentID = 1;
SELECT * FROM Students;
DDL 和 DML 的主要区别
特性 | DDL(数据定义语言) | DML(数据操作语言) |
---|---|---|
操作对象 | 数据库结构(如表、索引、视图等) | 数据库中的数据(如记录) |
主要语句 | CREATE , ALTER , DROP , TRUNCATE |
SELECT , INSERT , UPDATE , DELETE |
事务处理 | 自动提交(隐式提交),无法回滚 | 需要显式提交(如 COMMIT ),可以回滚 |
使用场景 | 数据库设计、结构管理 | 数据操作、查询、更新 |
使用者 | 数据库管理员(DBA) | 开发人员、数据分析师 |
总结
- DDL 用于定义和管理数据库结构,操作的是数据库的"骨架"。
- DML 用于操作和管理数据库中的数据,操作的是数据库的"血肉"。