MYSQL——DML

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
简介: 数据操作语言(DML)包括:INSERT、DELETE、UPDATE。

数据操作语言(DML)包括:INSERT、DELETE、UPDATE。

INSERT

-- 语法格式

INSERT INTO 表名(字段名1,字段名2,字段名3...) VALUES(值1,值2,值3...);

注意:字段名和值要一一对应。数量要对应,数据类型要对应。

-- 创建一个学生表

学号、姓名、年龄、性别、邮箱地址

DROP TABLE IF EXISTS t_student;

CREATE TABLE t_student(

   num INT,

   name VARCHAR(32),

   age INT(3),

   sex CHAR(1),

   email VARCHAR(255)

);

DESC t_student;

+-------+--------------+------+-----+---------+-------+

| Field | Type         | Null | Key | Default | Extra |

+-------+--------------+------+-----+---------+-------+

| num   | int          | YES  |     | NULL    |       |

| name  | varchar(32)  | YES  |     | NULL    |       |

| age   | int          | YES  |     | NULL    |       |

| sex   | char(1)      | YES  |     | NULL    |       |

| email | varchar(255) | YES  |     | NULL    |       |

+-------+--------------+------+-----+---------+-------+--+

-- 插入普通数据

INSERT INTO t_student(num,name,age,sex,email) VALUES(1,'zhangsan',18,'男','zhangsan@123.com');

INSERT INTO t_student(num) VALUES(3);

+------+----------+------+------+------------------+

| num  | name     | age  | sex  | email            |

+------+----------+------+------+------------------+

|    1 | zhangsan |   18 | 男   | zhangsan@123.com |

|    3 | NULL     | NULL | NULL | NULL             |

+------+----------+------+------+------------------+

INSERT INTO t_student(name) VALUES('wangwu');

+------+----------+------+------+------------------+

| num  | name     | age  | sex  | email            |

+------+----------+------+------+------------------+

|    1 | zhangsan |   18 | 男   | zhangsan@123.com |

|    3 | NULL     | NULL | NULL | NULL             |

| NULL | wangwu   | NULL | NULL | NULL             |

+------+----------+------+------+------------------+

注意: INSERT语句但凡是执行成功了,那么必然会多一条记录。没有给其它字段指定值的话,默认值是NULL。

INSERT中的字段名可以省略。

INSERT INTO t_student VALUES(2,'lisi','女',20,'lisi@123.com');

等价于全部都写上

INSERT INTO t_student(num,name,age,sex,email) VALUES(2,'lisi','女',20,'lisi@123.com');

-- 插入日期

数字格式化:FORMAT(数字,'格式')

SELECT ename,sal FROM emp;

+--------+---------+

| ename  | sal     |

+--------+---------+

| SMITH  |  800.00 |

| ALLEN  | 1600.00 |

| WARD   | 1250.00 |

| JONES  | 2975.00 |

| MARTIN | 1250.00 |

| BLAKE  | 2850.00 |

| CLARK  | 2450.00 |

| SCOTT  | 3000.00 |

| KING   | 5000.00 |

| TURNER | 1500.00 |

| ADAMS  | 1100.00 |

| JAMES  |  950.00 |

| FORD   | 3000.00 |

| MILLER | 1300.00 |

+--------+---------+

SELECT ename,FORMAT(sal,'$999,999') AS sal FROM emp;

+--------+-------+

| ename  | sal   |

+--------+-------+

| SMITH  | 800   |

| ALLEN  | 1,600 |

| WARD   | 1,250 |

| JONES  | 2,975 |

| MARTIN | 1,250 |

| BLAKE  | 2,850 |

| CLARK  | 2,450 |

| SCOTT  | 3,000 |

| KING   | 5,000 |

| TURNER | 1,500 |

| ADAMS  | 1,100 |

| JAMES  | 950   |

| FORD   | 3,000 |

| MILLER | 1,300 |

+--------+-------+

STR_TO_DATE:将字符串 VARCHAR类型转换成 DATE类型。

STR_TO_DATE('字符串日期','日期格式')

DROP TABLE IF EXISTS t_user;

CREATE TABLE t_user(

   id INT,

   name VARCHAR(32),

   birth DATE,

   create_time DATETIME

);

DESC t_user;

+-------------+-------------+------+-----+---------+-------+

| Field       | Type        | Null | Key | Default | Extra |

+-------------+-------------+------+-----+---------+-------+

| id          | int         | YES  |     | NULL    |       |

| name        | varchar(32) | YES  |     | NULL    |       |

| birth       | date        | YES  |     | NULL    |       |

| create_time | datetime    | YES  |     | NULL    |       |

+-------------+-------------+------+-----+---------+-------+

INSERT INTO t_user(id,name,birth) VALUES(1,'zhangsan',STR_TO_DATE('01-10-1990','%d-%m-%Y'));

+------+----------+------------+-------------+

| id   | name     | birth      | create_time |

+------+----------+------------+-------------+

|    1 | zhangsan | 1990-10-01 | NULL        |

+------+----------+------------+-------------+

如果你提供的日期字符串是%Y-%m-%d格式,则无需STR_TO_DATE函数转换。

DATE_FORMAT:将 DATE类型转换成具有一定格式的 VARCHAR字符串类型。

DATE_FORMAT(日期类型数据,'日期格式')

SELECT id,name,DATE_FORMAT(birth,'%m/%d/%Y') AS birth FROM t_user;

+------+----------+------------+

| id   | name     | birth      |

+------+----------+------------+

|    1 | zhangsan | 10/01/1990 |

+------+----------+------------+

SELECT id,name,birth FROM t_user;

+------+----------+------------+

| id   | name     | birth      |

+------+----------+------------+

|    1 | zhangsan | 1990-10-01 |

+------+----------+------------+

这个SQL语句实际上是进行了默认的日期格式化,自动将数据库中的 DATE类型转换成 VARCHAR类型。并且采用的格式是MySQL默认的日期格式:'%Y-%m-%d'

-- 插入多条数据

INSERT INTO 表名(字段名1,字段名2) VALUES(),(),();

INSERT INTO t_user(id,name,birth,create_time) VALUES(1,'zhangsan','1980-11-1',NOW()),(2,'lisi','1988-04-01',NOW()),(3,'wangwu','2022-3-18',NOW());

+------+----------+------------+---------------------+

| id   | name     | birth      | create_time         |

+------+----------+------------+---------------------+

|    1 | zhangsan | 1980-11-01 | 2022-02-14 09:28:44 |

|    2 | lisi     | 1988-04-01 | 2022-02-14 09:28:44 |

|    3 | wangwu   | 2022-03-18 | 2022-02-14 09:28:44 |

+------+----------+------------+---------------------+

-- 查询结果插入到一张表

CREATE TABLE dept_bak AS SELECT * FROM dept;

+--------+------------+----------+

| DEPTNO | DNAME      | LOC      |

+--------+------------+----------+

|     10 | ACCOUNTING | NEW YORK |

|     20 | RESEARCH   | DALLAS   |

|     30 | SALES      | CHICAGO  |

|     40 | OPERATIONS | BOSTON   |

+--------+------------+----------+

INSERT INTO dept_bak SELECT * FROM dept;

+--------+------------+----------+

| DEPTNO | DNAME      | LOC      |

+--------+------------+----------+

|     10 | ACCOUNTING | NEW YORK |

|     20 | RESEARCH   | DALLAS   |

|     30 | SALES      | CHICAGO  |

|     40 | OPERATIONS | BOSTON   |

|     10 | ACCOUNTING | NEW YORK |

|     20 | RESEARCH   | DALLAS   |

|     30 | SALES      | CHICAGO  |

|     40 | OPERATIONS | BOSTON   |

+--------+------------+----------+

相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
6月前
|
SQL 关系型数据库 MySQL
MySQL数据库——DML基本操作
本文介绍了MySQL中的DML基本操作,包括查询、插入、更新和删除数据。查询数据使用SELECT语句,插入数据用INSERT INTO,更新数据则依靠UPDATE,而删除数据需用DELETE FROM。这些操作是数据库管理的关键,有效提升数据处理效率和准确性。理解并熟练运用这些语句是确保数据一致性和安全性的基础。参考文献包括MySQL官方文档和W3Schools的MySQL教程。
305 2
|
6月前
|
SQL 关系型数据库 MySQL
【MySQL】学习如何通过DML更新数据库的数据
【MySQL】学习如何通过DML更新数据库的数据
152 0
|
8天前
|
SQL 关系型数据库 MySQL
|
6月前
|
SQL 存储 关系型数据库
【MySQL 数据库】1、MySQL 的 DDL、DML、DQL 语句
【MySQL 数据库】1、MySQL 的 DDL、DML、DQL 语句
99 0
|
5月前
|
SQL 关系型数据库 MySQL
MySQL基础(二)----DML学习
MySQL基础(二)----DML学习
46 3
|
4月前
|
SQL 关系型数据库 MySQL
MySQL DML(数据操作语言)全面指南
MySQL DML(数据操作语言)全面指南
|
5月前
|
SQL 关系型数据库 MySQL
MySQL周内训参照2、DDL与DML语句
MySQL周内训参照2、DDL与DML语句
31 1
|
5月前
|
SQL 关系型数据库 MySQL
MySQL数据库子查询练习——DDL与DML语句(包括引入视频)
MySQL数据库子查询练习——DDL与DML语句(包括引入视频)
52 1
|
5月前
|
SQL 关系型数据库 MySQL
MySQL数据库——图形化界面工具(DataGrip),SQL(2)-DML(插入、修改和删除数据)
MySQL数据库——图形化界面工具(DataGrip),SQL(2)-DML(插入、修改和删除数据)
493 1
|
4月前
|
SQL 存储 关系型数据库
MySQL数据库—初识数据库 | DDL语句 | DML语句
MySQL数据库—初识数据库 | DDL语句 | DML语句