数据操纵语言(DML)

数据操纵语(Data Manipulation Language),简称DML

DML主要有四个常用功能。

insert delete update select
# 创建数据库
create database if not exists stu;
# 使用数据库
use stu;
# 创建一个表
create table student(
sid int primary key auto_increment,
sname varchar(20) not null,
sex varchar(10)
)charset=utf8;

下面的操作都是基于这个student表进行的。

增添数据(insert)

全列插入(全字段插入)

-- insert into 表名 values(...);
insert into student values(0,'张三','男');

注意,表结构中有id字段,虽然设置了主键、自增,MySQL可以自动维护,但是,在全列插入的时候,这个位置还必须写(通常写 0 ,插入后以实际为准),起到站位作用

结果如下:

部分列插入(插入部分列字段)

-- insert into 表名(列1,列2,...) values(值1,值2,...);
insert into student(sname, sex) values('李四', '男');
insert into student(sname) values('王五');

结果如下:

同时插入多条数据

-- insert into 表名(列1,...) values(值1,...),(值2,...),(值3,...),...;
insert into student(sname,sex) values
("刘备","男"),("貂蝉","女"),("诸葛亮","男");

结果如下:

复制已有表,生成新表

复制已有表的结构和数据。

-- create table 新表名 select * from 已有表名;
-- 创建一个student1表,表的结构和数据均来自于student表。
create table student1 select * from student;

结果如下:

只复制已有表的结构(得到的是一个空结构表)。

-- create table 新表名 selsct * from 已有表名 where 0;
-- 创建一个student2表,只复制student表的结构,不要里面的数据。
create table student2 select * from student where 0;

结果如下:

简单的查询语句(select)

全字段查询

-- srcect * from 表名;
-- * 表示全部
select * from student;

结果如下:

指定字段查询

-- select 列名 from 表名;
select sname from student;
select sname, sex from student;

结果如下:

带条件的查询

-- select 列名 from 表名 where 查询条件;
-- 查询sex为女的人
select sname from student where sex='女';

结果如下:

修改数据update

update语句要配合where筛选,进行使用,否则修改的就是整张表的记录。

-- update 表名 set 列1=值1,列2=值2,列3=值3,…… where 条件;

-- 把sid为3的王五的姓名,改为赵六。
update student set sname="王八" where sid = 3; -- 把sid为6的诸葛亮的名字改为孔明,性别改为猛男。
update student set sname="孔明",sex="猛男" where sid=6;

结果如下:

删除数据delete

  • delete为物理删除(一旦删除就彻底没有了)
  • update和delete语句要配合where筛选,进行使用,否则删除的就是整张表的记录。
-- delete from 表名 where 条件;

delete from student where sname="张三";

结果如下:

truncate和delete的区别

有如下表

  • delete删除

  • truncate清空

truncate和delete的区别:

  • 都是不修改结构,只清除数据。

  • delete删除不释放资源,truncate释放表占用的空间(会重置主键自增)。

  • delete是逐行删除,删除记录是作为事务记录在日志文件中,可进行回滚操作。truncate一次性删除表中所有数据,删除记录不会记录在日志文件中,无法恢复,删除效率高于delete。

MySQL之数据操纵语言(DML)的更多相关文章

  1. (让你提前知道软件开发33):数据操纵语言(DML)

    文章2部分 数据库SQL语言 数据操纵语言(DML) 数据操纵语言(Data Manipulation Language,DML)包含insert.delete和update语句,用于增.删.改数据. ...

  2. 【MySQL笔记】数据操纵语言DML

    1.数据插入   INSERT INTO table_name (列1, 列2,...) VALUES(值1, 值2,....),(第二条),(第三条)...   注: 1)如果表中的每一列均有数据插 ...

  3. oracle数据操纵语言(DML)data manipulation language

    数据库操纵语言(DML)用于查询和操纵模式对象中的数据,它不隐式地提交当前事务. SELECTINSERTUPDATEDELETECALLEXPLAIN PLANLOCK TABLEMERGE使用算术 ...

  4. 30442数据操纵语言DML

    5.5 SQL的数据操纵功能 5.5.1 数据插入 使用CREATE语句创建的数据表还只是一个“空壳”,表中没有任何数据.利用SQL语言提供的INSERT语句可以完成向数据表插入数据的任务. INSE ...

  5. oracle数据操纵语言(DML)data manipulation language(续集)

    SQL查询语句(SELECT)进阶分组函数(Group Functions):对多行进行操作,并为每一组给出一个结果. AVG([DISTINCT|ALL] expression) 平均值COUNT ...

  6. mysql数据操作语言DML

    插入insert 插入方式1 语法: insert into 表名(列名,....) values(值1,....) 说明: 1.插入的值的类型要与列的类型一致或兼容 2.可以为null的值:①列写了 ...

  7. MySQL的sql语言分类DML、DQL、DDL、DCL、

    MySQL的sql语言分类DML.DQL.DDL.DCL. SQL语言一共分为4大类:数据定义语言DDL,数据操纵语言DML,数据查询语言DQL,数据控制语言DCL 1.数据定义语言DDL(Data ...

  8. MySQL的sql语言分类DML、DQL、DDL、DCL

    SQL语言一共分为4大类:数据定义语言DDL,数据操纵语言DML,数据查询语言DQL,数据控制语言DCL 1.数据定义语言DDL(Data Definition Language) 对象: 数据库和表 ...

  9. DML(数据操纵语言)

    1.概念(C) 数据操纵语言 DML (Data Manipulation Langua)是SQL语言的一个分类,用于对表的内容或者说数据进行增.删.改.查等操作. 通过以下几个关键字实现: SELE ...

随机推荐

  1. Linux下禁用笔记本触摸板

    1 概述 在Linux下禁用触摸板的方法有很多,这里列举三种: 图形界面配置关闭 modprobe关闭 xinput关闭 2 图形界面配置关闭 笔者的环境为Manjaro+Xfce,其他的桌面也应该类 ...

  2. Matrix Chain Multiplication UVA - 442

    Suppose you have to evaluate an expression like ABCDE where A,B,C,D and E are matrices. Since matrix ...

  3. Word 查找和替换字符串方法

    因为项目需要通过word模板替换字符串 ,来让用户下载word, 就在网上找了找word查找替换字符串的库或方法,基本上不是收费,就是无实现,或者方法局限性太大 .docx 是通过xml来存储文字和其 ...

  4. golang channel的行为

    1. 读nil的channel是永远阻塞的.关闭nil的channel会造成panic. 2. closed channel的行为: (1)向close的channel发消息会panic,关闭一个已经 ...

  5. 数据库增量日志监听canal

    概述 canal是阿里巴巴旗下的一款开源项目,纯Java开发.基于数据库增量日志解析,提供增量数据订阅&消费,目前主要支持了MySQL(也支持mariaDB). 起源:早期,阿里巴巴B2B公司 ...

  6. 并发容器-CopyOnWriteArrayList

    并发容器一览 图源:https://time.geekbang.org/column/article/90201?utm_term=pc_interstitial_938 CopyOnWriteArr ...

  7. c语言编程学习之二维数组

    二维数组 c语言按照行主序存储二维数组.也就是说,二维数组元素在内存中的位置是连续的,每行末尾元素(若不是最后一行)的下一个元素就是下一行的首元素. 如下图所示 接下来我们来分析一下如何将二维数组所有 ...

  8. 发布声明$\beta$

    一.新功能 \(\beta\)阶段集中开发了3大核心功能:支持模块的嵌套.模型市场.模型推理,这三项基本上都是从零开始.徒手开发的功能,没有轮子可以参照,因此也不具有可以对比的先前版本. 除此之外,开 ...

  9. 测试报告$\alpha$

    pytorch可视化编程网站VisualPytorch NAG \(\alpha\)版本发布了!点击网址访问:VisualPytorch 一.测试查虫(bug detection) 测试贯穿了开发.集 ...

  10. LeetCode 617. 合并二叉树 Java

    给定两个二叉树,想象当你将它们中的一个覆盖到另一个上时,两个二叉树的一些节点便会重叠. 你需要将他们合并为一个新的二叉树.合并的规则是如果两个节点重叠,那么将他们的值相加作为节点合并后的新值,否则不为 ...