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 ...
随机推荐
- FastAPI项目实战:"异步"接口测试"平台"
apiAutoTestWeb 是什么? apiAutoTest接口自动化测试工具的可视化版本,将原本对用例的操作转移到Web页面之上 用什么实现? 接口自动化测试:大体上测试逻辑将采用apiAutoT ...
- zipfile tarfile模块
zipfile --- 使用ZIP存档 这个模块提供了创建.读取.写入.添加及列出 ZIP 文件的工具 # 创建一个ZipFile对象, 可使用上下文管理 with class zipfile.Zip ...
- SpringMVC笔记(五)
1. 拦截器 1.1 拦截器和过滤器 SpringMVC的处理器拦截器类似于Servlet开发过程中的过滤器Filter,用于对处理器进行预处理和后处理.我们可以自定义一些拦截器来实现特定的功能 过滤 ...
- Solon Cloud 分布式开发套件清单与快速概览
Solon Cloud 是一系列的接口标准和配置规范.Solon Cloud 为常见的分布式系统模式提供了一种简单且方便的编程模式,帮助开发人员构建有弹性的.可靠的.协调的应用程序.Solon Clo ...
- sublime常用快键键
---------------最常用的1.新建文件-输入"html:xt"后 按"Ctrl+E键"或 "tab键" ,可快速生成xhtml ...
- 文档翻译第002篇:Process Monitor帮助文档(Part 2)
[筛选与高亮显示] Process Monitor提供了一些方式来配置筛选器和高亮显示. 筛选器的包含与排除 您可以在筛选器中指定事件的属性,这样就可以令Process Monitor ...
- Linux提权之利用 /etc/passwd 文件
当我们获得了某个Linux服务器的低权限之后,我们想要对该低权限账号进行提权,以执行更多的操作. 接下来我们的提权是利用 /etc/passwd 文件的可写入权限,导致我们写入一个其他用户进去. 首先 ...
- Day005 for循环
for循环 虽然所有循环结构都可以用while或者do-while表示,但java提供了另一种语句--for循环,使一些循环结构变得更加简单. for循环语句是支持迭代的一种通用结构,是最有效.最灵活 ...
- 【vue-09】axios
[vue-09]axios 文档:Axios中文文档 官网 为什么要使用axios 功能特点: 支持发送ajax异步 支持在NodeJs中发送ajax请求. 支持Promise 支持拦截器请求和响应 ...
- Linux查看进程和查看端口占用
查看进程 ps -ef|grep ****.jar 查看端口占用(如果出现命令找不到,安装一下工具即可) netstat -lnp|grep 端口号 (命令找不到解决办法) yum install n ...