dml语句包括哪些_MySQL数据操作(DML)语句,入门掌握这些足够了
DML是(Data Manipulation Languages)数据定义语言的缩写
主要包括表记录的插入insert、更新update、删除select
插入记录
insert into table(field1,field2,...fieldn) values(value1,value2,...value)如:向表 emp 中插入以下记录:+--------+----------+---+------+| ename | hiredate | sal | deptno+--------+---------+----+------+| xxto | 2000-01-01 | kk | 1+--------+---------+---+-------+
mysql> insert into emp(ename,hiredate,sal,deptno) value('xxto','2000-01-01','kk',1);
在字段是设置默认值、允许为空、自增字段,可以不用在value后写值,字段名可不用写
如:只对表中的 ename 和 sal字段显式插入值
mysql> insert into emp(ename,sal) value ('dony', 1000); mysql> insert into emp(ename,sal) value ('dony', 1000);mysql> select * from emp;+------+-------+-------+------------+---------+--------+| age | ename | birth | hiredate | sal | deptno |+------+-------+-------+------------+---------+--------+| NULL | zzxl | NULL | 2000-01-01 | 2000.00 | 1 || NULL | dony | NULL | NULL | 1000.00 | NULL |+------+-------+-------+------------+---------+--------+2 rows in set (0.00 sec)
插入多条值
mysql> insert into emp(ename,sal) value ('name1', 1001), ('name2', 1002);mysql> insert into emp(ename,sal) value ('name1', 1001), ('name2', 1002); mysql> select * from emp;+------+-------+-------+------------+---------+--------+| age | ename | birth | hiredate | sal | deptno |+------+-------+-------+------------+---------+--------+| NULL | zzxl | NULL | 2000-01-01 | 2000.00 | 1 || NULL | dony | NULL | NULL | 1000.00 | NULL || NULL | name1 | NULL | NULL | 1001.00 | NULL || NULL | name2 | NULL | NULL | 1002.00 | NULL |+------+-------+-------+------------+---------+--------+4 rows in set (0.00 sec)
更新记录
update tablename set field1=value1,field2=value2,...fieldn =valuen[where condition]
如:将表 emp 中 ename 为 “name1”的 sal 从 1001 更改为 4000
mysql> update emp set sal=4000 where ename='name1';
同时更新两个数据表的数据
mysql> update emp a, dept b set a.sal=a.sal*b.deptno, b.deptname=a.ename where a.deptno=b.deptno;
查询记录
select * from tablename[where condition]
查询表中所有字段
mysql> select * from emp;
查询不重复字段值的记录(需要使用关键字distinct),如:查询字段deptno
mysql> select * from emp;+------+-------+-------+------------+---------+--------+| age | ename | birth | hiredate | sal | deptno |+------+-------+-------+------------+---------+--------+| NULL | zzxl | NULL | 2000-01-01 | 2000.00 | 1 || NULL | dony | NULL | NULL | 1000.00 | 2 || NULL | name1 | NULL | NULL | 4000.00 | 1 || NULL | name2 | NULL | NULL | 1002.00 | 2 |+------+-------+-------+------------+---------+--------+4 rows in set (0.00 sec)mysql> select distinct deptno from emp;+--------+| deptno |+--------+| 1 || 2 |+--------+2 rows in set (0.00 sec)
根据条件查询
mysql> select * from emp where deptno=1;
多条件查询
mysql> select * from emp where deptno=1 and sal<3000;
排序和查询
select * from tablename [where condition] [order by field1 [DESC|ASC], field2 [DESC|ASC,...field[DESC|ASC]]]默认是升序排列(ASC)field
如:吧emp表中的记录按照 sal 高低进行显示
mysql> select * from emp order by sal;
根据多个字段排序
从第一个字段排序,遇到相同的值则相同的记录以第二个字段重新裴谞,以此类推。
mysql> select * from emp order by deptno,sal desc;+------+-------+-------+------------+---------+--------+| age | ename | birth | hiredate | sal | deptno |+------+-------+-------+------------+---------+--------+| NULL | name1 | NULL | NULL | 4000.00 | 1 || NULL | zzxl | NULL | 2000-01-01 | 2000.00 | 1 || NULL | name2 | NULL | NULL | 1002.00 | 2 || NULL | dony | NULL | NULL | 1000.00 | 2 |+------+-------+-------+------------+---------+--------+
限制显示的记录
select ...[limit offset_start,row_count]
offset_start表示记录的起始偏移量,如果没写则默认为0,记录起始下标为0。row_count表示显示的行数
mysql> select * from emp order by sal limit 3;mysql> select * from emp order by sal limit 1,4;
聚合
对数据进行汇总、求和、最大值、最小值等条件的过滤
在 emp 表中统计记录数
mysql> select count(1) from emp;
统计字段相同值的记录数
mysql> select deptno, count(1) from emp group by deptno;
统计字段相同值得记录数和总记录数
mysql> select deptno, count(1) from emp group by deptno with rollup;
统计字段deptno大于2的记录数
mysql> select deptno, count(1) from emp group by deptno having count(1) > 2;
统计 字段sal 的总和、最高和最低记录
mysql> select sum(sal),max(sal),min(sal) from emp;
表连接
表连接
内连接
内连接和外连接的区别在于仅选出两张表中互相匹配的记录
如:显示出两张表(empdept)中 字段(deptno)值相同记录的ename和deptname字段
mysql> select ename, deptname from emp,dept where emp.deptno=dept.deptno;
外连接
外链接分为左连接和右连接
左连接:包含所有的左边表的记录甚至是右边表中没有和它匹配的记录。
右连接:包含所有的右边表的记录甚至是左边表中没有和它匹配的记录。
如:查询表(emp 和 dept)中的字段(ename 和 deptname),条件是两边相同值得字段(deptno)
左连接:
mysql> select ename, deptname from emp left join dept on dept.deptno=emp.deptno;
右连接:
mysql> select ename, deptname from dept right join emp on dept.deptno=emp.deptno;
子查询
当进行查询的时候,需要的条件是另外一个select语句的结构,这个时候就要用到子查询。用于子查询的关键字主要包括in、not in、=、!=、exists、not exists等。
从 emp 表中查询出所有部门在 dept 表中的记录
mysql> select * from emp where deptno in ( select deptno from dept );
如果子查询记录数唯一,可以用=代替in
mysql> select * from emp where deptno = (select deptno from dept);
表连接:
mysql> select emp.* from emp, dept where emp.deptno=dept.deptno;
记录联合
将两个表的数据按照一定的查询条件查询出来后,将结果合并到一起显示出来
需要使用union和union all关键字来实现
如: 将 emp 和 dept 表中的部门编号的集合显示出来:
使用union all:全部显示
mysql> select deptno from emp -> union all -> select deptno from dept;
使用union:去除重复后显示
mysql> select deptno from emp -> union -> select deptno from dept;
选择操作
显示数据表前50行
SELECT * FROM `库名`.`表名` ORDER BY `id` DESC LIMIT 0,50;
删除操作
删除操作
删除数据表指定ID行
delete from `库名`.`表名` where `id`=82;DELETE FROM tbname WHERE id > 49 AND id < 151
修改操作
修改数据表指定行的ID值为1
update `库名`.`表名` set `id`=1 where `id`=2;
更改索引值
让自动索引从3开始
ALTER TABLE `emp` AUTO_INCREMENT=3;
查询结果输出到excel文件
select * into outfile '/tmp/tmp.xls' from help_cat where 1 order by cat_id desc limit 0,20;
图片源于网络,如有侵权请联系删除!
dml语句包括哪些_MySQL数据操作(DML)语句,入门掌握这些足够了相关推荐
- MySQL 数据操作 DML细节
MySQL 数据操作 DML DML(Data Manipulation Language 数据操纵语言) DML是用来对数据库里的数据进行操作的语言.DML需要 commit. 当使用 mysql ...
- 8.MySQL 数据操作 DML
8.MySQL 数据操作 DML 数据的DML操作:添加数据,修改数据,删除数据 添加数据 格式: insert into 表名[(字段列表)] values(值列表...); --标准添加(指定所有 ...
- MySQL数据操作(DML)详解(小白都能懂欧)
1.插入语句 1.1插入一行 有两种: 1.以小括号的形式 insert into + 表名(列1,列2...) +values(值1,值2...) 这里注意:如果表名后边不加小括号对应内容,那么默认 ...
- 管理维护MySQL的SQL语句有哪些_MySQL常用管理SQL语句
前言 DDL DDL,中文为数据定义语言,DDL的特点是对数据库内部的对象进行create(创建).alter(修改).drop(删除)等操作,负责管理数据库的基础数据,不涉及对表中内容的操作和更改. ...
- mysql属于dcl语句的是_MySQL基础:DCL语句
sql语言大致分为DCL.DDL.DML三种,本文主要介绍DCL语句. 概述 DCL(Data Control Language)语句:数据控制语句,用于控制不同数据段直接的许可和访问级别的语句.这些 ...
- mysql属于dcl语句的是_MySQL基础:DCL语句总结
SQL语言大致分为DCL.DDL.DML三种,本文主要介绍MySQL 5.7版本DCL语句. 概述 DCL(Data Control Language)语句:数据控制语句,用于控制不同数据段直接的许可 ...
- mysql的各种语句_MySql常用操作SQL语句汇总
MySQL的常见操作在这里先做一下总结,已经整合到代码里面,经过检验无误. /*创建一个数据库*/ create database xuning_test; /*说明当时使用数据库对象*/ use x ...
- mysql数据=_mysql 数据操作
数据插入(添加数据) 有3种形式 形式1: insert into 表名(字段名1,字段名2,....)values (值a1,值a2, .....), (值b1,值b2, .....),..... ...
- mysql 数据操作类_MySql 数据操作类
/// /// MySqlHelper 的摘要说明. /// public class MySqlHelper { public static string connectionString = Co ...
最新文章
- WordPress 多功能响应式-CorePress博客主题
- c++多线程基础4(条件变量)
- html属性是dom属性吗,HTML DOM 属性 对象
- 如何查看linux中的ssh端口开启状态
- vue框架开发出现页面空白、白屏的解决方法总汇
- springmvc spring mybatis结合 - 代码共享
- 谷歌app使用的是什么字体_如何使用Google字体
- MacBook M1安装Git与Git可视化工具---kalrry
- ADI官方提供的源码AD9361+ZC706 利用TCL构建Vivado工程,利用no-OS-master搭建SDK工程
- app开发需要哪些技术?4种app制作方法对比
- JAVA NIO介绍及使用
- 黑马培训---分享点干货二 IOS面试非技术性问题
- 新媒体运营:如何策划出一场完整高效的活动方案?(二) 黎想
- 国家两部委印发《智慧家庭综合标准化体系建设指南》
- Web版RSS阅读器(四)——定制自己的Rss解析库myrsslib4j
- python股票技术指标计算_使用 Ta-lib 计算 MACD 等技术指标
- 国产替代:GD32F4xx替换STM32F4xx系统说明
- 小写数字与大写数字转换
- 一篇文章带你看懂AWS re:Invent 2018大会,揭秘Amazon Aurora
- JavaWeb用户信息管理系统-添加用户的实现
热门文章
- java设计模式之状态模式_Java中的状态设计模式
- 在抽象类中可以没有抽象方法_是否可以在最终课程中使用抽象方法?
- junit5和junit4_JUnit 5 –条件
- 使用sstableloader恢复Cassandra Priam备份
- spring javafx_带有Spring的JavaFX 2
- github gists_Eclipse中的Github Gists
- Java 9和应用程序性能监视的激动人心之处
- 使用React,Spring Boot和用户身份验证构建CRUD应用程序
- Cloud Foundry Java客户端–流事件
- openjdk_从CLI监视OpenJDK