MySQL之数据操纵语言(DML)
数据操纵语言(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)的更多相关文章
- (让你提前知道软件开发33):数据操纵语言(DML)
文章2部分 数据库SQL语言 数据操纵语言(DML) 数据操纵语言(Data Manipulation Language,DML)包含insert.delete和update语句,用于增.删.改数据. ...
- 【MySQL笔记】数据操纵语言DML
1.数据插入 INSERT INTO table_name (列1, 列2,...) VALUES(值1, 值2,....),(第二条),(第三条)... 注: 1)如果表中的每一列均有数据插 ...
- oracle数据操纵语言(DML)data manipulation language
数据库操纵语言(DML)用于查询和操纵模式对象中的数据,它不隐式地提交当前事务. SELECTINSERTUPDATEDELETECALLEXPLAIN PLANLOCK TABLEMERGE使用算术 ...
- 30442数据操纵语言DML
5.5 SQL的数据操纵功能 5.5.1 数据插入 使用CREATE语句创建的数据表还只是一个“空壳”,表中没有任何数据.利用SQL语言提供的INSERT语句可以完成向数据表插入数据的任务. INSE ...
- oracle数据操纵语言(DML)data manipulation language(续集)
SQL查询语句(SELECT)进阶分组函数(Group Functions):对多行进行操作,并为每一组给出一个结果. AVG([DISTINCT|ALL] expression) 平均值COUNT ...
- mysql数据操作语言DML
插入insert 插入方式1 语法: insert into 表名(列名,....) values(值1,....) 说明: 1.插入的值的类型要与列的类型一致或兼容 2.可以为null的值:①列写了 ...
- MySQL的sql语言分类DML、DQL、DDL、DCL、
MySQL的sql语言分类DML.DQL.DDL.DCL. SQL语言一共分为4大类:数据定义语言DDL,数据操纵语言DML,数据查询语言DQL,数据控制语言DCL 1.数据定义语言DDL(Data ...
- MySQL的sql语言分类DML、DQL、DDL、DCL
SQL语言一共分为4大类:数据定义语言DDL,数据操纵语言DML,数据查询语言DQL,数据控制语言DCL 1.数据定义语言DDL(Data Definition Language) 对象: 数据库和表 ...
- DML(数据操纵语言)
1.概念(C) 数据操纵语言 DML (Data Manipulation Langua)是SQL语言的一个分类,用于对表的内容或者说数据进行增.删.改.查等操作. 通过以下几个关键字实现: SELE ...
随机推荐
- 前端框架之争丨除了Vue、Angular和React还有谁与之争锋
转载请注明出处:葡萄城官网,葡萄城为开发者提供专业的开发工具.解决方案和服务,赋能开发者. 原文参考:https://www.sitepoint.com/most-popular-frontend-f ...
- JAVAEE_Servlet_20_登录注册功能
实现登录注册功能 注册功能 import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import j ...
- 程序员的开源月刊《HelloGitHub》第61期
兴趣是最好的老师,HelloGitHub 让你对编程感兴趣! 简介 分享 GitHub 上有趣.入门级的开源项目. 内容包括:有趣.入门级的开源项目.开源书籍.实战项目.企业级项目等,让你在短时间内感 ...
- G - River Hopscotch(二分)
Every year the cows hold an event featuring a peculiar version of hopscotch that involves carefully ...
- 【cypress】5. 测试本地web应用
在之前的cypress介绍里曾提到过,cypress虽然也可以测试部署好的应用,但是它最大的能力还是发挥在测试本地应用上. 本章主要内容就是关于如何测试本地web应用的概述: cypress与后台应用 ...
- hdu3234 带权并查集(XOR)
题意: 给你n个未知的正整数,有三总操作 I P V P的值是V I P Q V P XOR Q = V Q K ...
- android添加账户源码浅析
上篇粗略的分析android添加账号的流程,本篇深入的解析下执行步骤.先来看图片,取自深入理解android卷2: 上图详细的分析了addAccount的流程,下面我们结合源码来理解它 1.addAc ...
- IPS入侵防御系统
目录 IPS入侵防御系统 如何才能更好的防御入侵 IPS与IDS的区别 IDS与IPS的部署 IPS独立部署 IPS分布式部署 IPS入侵防御系统 IPS(Intrusion Prevention S ...
- Win64 驱动内核编程-31.枚举与删除映像回调
枚举与删除映像回调 映像回调可以拦截 RING3 和 RING0 的映像加载.某些游戏保护会用此来拦截黑名单中的驱动加载,比如 XUETR.WIN64AST 的驱动.同理,在反游戏保护的过程中,也可以 ...
- Win64 驱动内核编程-26.强制结束进程
强制结束进程 依然已经走到驱动这一层了,那么通常结束掉一个进程不是什么难的事情.同时因为win64 位的各种保护,导致大家慢慢的已经不敢HOOK了,当然这指的是产品.作为学习和破解的话当然可以尝试各种 ...