MySQL的DML和DDL操作(1)

本文介绍了数据库管理中的一些基本DML操作,包括INSERT用于插入记录,支持单条和批量插入;REPLACE在遇到主键冲突时会删除旧记录并插入新记录;DELETE用于删除记录,可选WHERE子句来指定条件;TRUNCATE用于快速清空表数据;UPDATE用于更新表中数据,需用WHERE子句限定修改范围;而SELECT用于查询数据,支持排序、去重和限量等操作。
摘要由CSDN通过智能技术生成

这里介绍几种DML操作

INSERT INTO——插入记录

插入一条记录

插入一条记录
INSERT INTO table [(column [, column . ])] VALUES(value [,value . ]);
例子:
insert into student values(
1,"承太郎"
)default charset utf8;

插入多条记录

插入多条记录
INSERT INTO table [(column [, column . ])]
VALUES(value [, value . ]),(value [, value . ]);
例子:
insert into student values
    (1,"承太郎"),
    (2,"迪奥"),
    (3,"吉良吉影");

如果你注意到上面的那些column那么也就可能想到可以为某个字段单独添加记录
为部分字段添加数据:
    insert into student(id,address) values (12,"翻斗大街");
    id address这些字段不用加"",没添加的字段会给值NULL
    或者 insert into student set id=12,address="翻斗大街";

为部分字段添加数据

如果你注意到上面介绍的插入方法中的那些column那么也就可能想到可以为某个字段单独添加记录

为部分字段添加数据:
insert into student(id,address) values (12,"翻斗大街");
id address这些字段不用加"",没添加的字段会给值NULL
或者 insert into student set id=12,address="翻斗大街";

REPLACE

replace语句的功能与insert语句的功能基本相同

REPLACE与INSERT的区别:

使⽤replace语句向表插⼊

新记录时,如果新记录的 主键值或者唯⼀性约束 的字段值与已有记录相同,则已有记录先被

删除,然后再插⼊新记录

replace三种语法格式

语法格式1:

replace into 表名 [(字段列表)] values (值列表)

语法格式2:

replace [into] 目标表名[(字段列表1) select (字段列表2) from 源表

where 条件表达式

语法格式3:

replace [into] 表名 set 字段1=值1, 字段2=值2

DELETE、TRUNCATE

DELETE FROM table_name [where 条件];
TRUNCATE TABLE table_name

DROP、TRUNCATE、DELETE的区别

delete:删除数据,保留表结构,可以回滚,如果数据量⼤,很慢

truncate: 删除所有数据,保留表结构,不可以回滚,⼀次全部删除所有数据,速度相对快

drop: 删除数据和表结构,删除速度最快

TRUNCATE(清空数据表) 与 DELETE 的区别

truncate table student;

1.实现方式不同 truncate 本质上先执行drop 再通过结构文件.frm 重新创建数据表,delete则是逐条删除保存的记录

2.效率上来说多的时候truncate更快少的时候delete更快

3.对auto_increment影响不同,truncate自动增长从初始值开始,delete则不影响自动增长

4.返回值不同,auto_increment返回值无意义,delete返回删除的条数

5.truncate属于DDL delete属于DML

UPDATE

修改可以⼀次修改多⾏数据,修改的数据可⽤where⼦句限定,where⼦句⾥是⼀个条件表达式,只有符合该条件的⾏才会被修改。

没有where⼦句意味着where字句的表达式值为true,也可以同时修改

UPDATE table
SET column = value [, column = value]
[WHERE condition];
修改数据例子:
update student
   set name="杰哥" where id =1;

SELECT

这个比较麻烦但是又很常用所以我们简单介绍一下,之后再做详细的介绍

简单的SELECT语句:

SELECT {*, column [alias], . } FROM table;

说明:

–SELECT列名列表。*表示所有列。

–FROM 提供数据源(表名/视图名)

–默认选择所有行

举例
查询数据:
    select * from student;  #列出该数据表中的所有数据
查询部分字段:
    select id,address from student; #列出student数据表中的id和address字段

稍微复杂一点的
去除重复记录
    SELECT DISTINCT(distinct) name from student;
排序与限量 order asc(升序)/desc(降序) limit 表示限制条数
    select * name from student order by id asc升/desc降 limit 10;
    或者 select * name,address order by id asc,xueha desc limit 10;
    

排序后更新或删除数据
    update student set name="jojo"
        order by id asc
        limit 2;

    delete from student [where]
        order by id asc limit 2;
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值