MySQL基础语法入门-基础操作

上个文章我们写了如何安装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 用于操作和管理数据库中的数据,操作的是数据库的"血肉"。
相关推荐
浮游本尊1 小时前
Java学习第22天 - 云原生与容器化
java
渣哥3 小时前
原来 Java 里线程安全集合有这么多种
java
间彧3 小时前
Spring Boot集成Spring Security完整指南
java
间彧3 小时前
Spring Secutiy基本原理及工作流程
java
Java水解4 小时前
JAVA经典面试题附答案(持续更新版)
java·后端·面试
洛小豆6 小时前
在Java中,Integer.parseInt和Integer.valueOf有什么区别
java·后端·面试
前端小张同学7 小时前
服务器上如何搭建jenkins 服务CI/CD😎😎
java·后端
ytadpole7 小时前
Spring Cloud Gateway:一次不规范 URL 引发的路由转发404问题排查
java·后端
华仔啊7 小时前
基于 RuoYi-Vue 轻松实现单用户登录功能,亲测有效
java·vue.js·后端