DML以及DQL的使用方法
DML:数据操作语言
1.插入insert into
单行插入:insert into 表名 (字段名, 字段名,。。。) values (值, 值, 。。。) 注:值列表要和字段列表相匹配。
insert into 表名 values (值, 。。。) 表示全字段都插入相应的值。
多行插入:insert into 表名 (字段列表) select 字段列表/* from 表名 where 条件
insert into 表名 select 字段列表/* from 表名 where 条件
注:主要应用与表之间数据的复制
2.修改update
update 表名 set 字段名1=值1, 字段名2=值2... where 条件。
如果不加where条件就是全表更新。
3.删除delete
全表删除:delete from 表名 效率较低(因为此方法再删除时机器会先建立日志,先复制储存一遍再进行删除)
truncate table 表名 效率高(通常采用此方法进行全表的删除)
选择删除:delete from 表名 where 条件
DQL:数据查询语言
一.查询某个表中的某个字段:select 字段名/* from 表名 。 当是*号时表示查询所有字段
给表加别名: student t 。 给字段加别名: son as s
二.排序order by的用法:
1.order by 字段名1 asc/desc, 字段名2 asc/desc,...
先按照字段名1的升序/降续给表进行排列 然后 按照字段名2的升序/降续给表进行排列。 其中排在前面的字段名优先进行排列,排在后面的在前面的基础上在进行排列。
2. order by 字段序号 asc/desc, 字段序号 asc/desc,...
按照字段的序号进行排列,字段的序号就是表中每个字段从左到右依次排列的顺序,从1开始。字段序号对应相应的字段名。
3.
asc(升序)/desc(降续)
order by 默认是升序排列的,所以我们在进行排列时
如果要按升序进行排列,就不需要写asc。
如果要按降续进行排列,就 需要写desc。
4.order by 要放在where语句的后面
三.group up的用法
1.group up 字段列表
2.group by 字段列表 having 过滤条件
在一完整的语句中select后面仅可以跟要分组的字段和聚合函数
四.多表之间的关联查询
1.join on 负责关联两个表 (内连接)
用法:select * from 表名 join 表名 on 两表之间的连接关系
例:学生表与成绩表两表之中都有学号,那么我就可以把学号作为关联两表之间的等式关系。
select * from student t join score e on t.sno=e.sno
当然我们也可以关联更多的表,只需要在后面继续添加join 表名 on 链接关系即可。注意我们要把主表放在from后面。
例:成绩表中有学生号(sno)和课程号(con),学生表中有学号,课程表中有课程号,那么我们可以把成绩表作为主表,利用主表中的学号与课程号与学生表和课程表进行关联。
select * from score e join student t on e.sno=t.sno join couser r on e.con=r.con
内连接特点:表的数据和另外一个表没有可关联数据,那该数据就会被隐藏
2.左联接 left join on
用法:同内连接一样只是在join前面加了left。
特点:可以保证左边表的数据会全部显示
3.右连接 right join on
用法:同内连接一样只是在join前面加了right。
特点:可以保证右边表的数据会全部显示
4.全连接 full join on
用法:同内连接一样只是在join前面加了full
特点:这样就保证了左右两边的表中的全部数据都会显示
五.结果集合并 union
用法:用来合并两条查询语句。当我们要把连个毫无联系的查询结果或者两个表进行合并成一个表,但要去除重复数据时,我们就需要用 union 进行合并。
例:我要去学生表中的学号(sno)和教师表中的教工号(tno)
select sno from student union select tno from teacher
当我不想去掉重复数据时,我只需要在union 后面加一个 all即可
例:select sno from student union all select tno from teacher
总结一下:
在我们使用DQL查询语句时,不仅要搞懂每种特定语句的使用方式,更要了解清楚查询时的逻辑关系,有时在查询一个很复杂的数据时,我们不妨转换一下几种方式。
例如:
1.子查询的嵌套思想。
2.把查询出来的结果当做条件中的数值或者数组
3.其实我们间接查出来数值,我们都可以把它看做是一个表,然后把它作为表与其他表进行关联等等。
4.条件where的使用方式是很重要的:
1.where都是附属在DQL,DML语句后面的
2.where 后使用比较运算符,逻辑运算符连接
DML以及DQL的使用方法的更多相关文章
- Mysql 数据库操作之DDL、DML、DQL语句操作
Mysql 数据库操作之DDL.DML.DQL语句操作 设置数据库用户名密码 l Show databases 查看数据库列表信息 l 查看数据库中的数据表信息 ,格式: use 数据库名: sh ...
- MySQL的sql语言分类DML、DQL、DDL、DCL、
MySQL的sql语言分类DML.DQL.DDL.DCL. SQL语言一共分为4大类:数据定义语言DDL,数据操纵语言DML,数据查询语言DQL,数据控制语言DCL 1.数据定义语言DDL(Data ...
- MySQL的DML和DQL 增删改查
DML和DQL 增删改查 SELECT * FROM grade --新增 insert -- 向年级表中新增3条数据INSERT INTO grade(gradeID,gradeName) VA ...
- SQL--SQL详解(DDL,DML,DQL,DCL)
SQL--SQL详解(DDL,DML,DQL,DCL) 博客说明 文章所涉及的资料来自互联网整理和个人总结,意在于个人学习和经验汇总,如有什么地方侵权,请联系本人删除,谢谢! 什么是SQL? Stru ...
- sql 语言--- DML,DDL,DQL,DCL,TCL,CCL
结构化查询语言(Structured Query Language)简称SQL 是一种特殊目的的编程语言,是一种数据库查询和程序设计语言,用于存取数据以及查询.更新和管理 ...
- 使用Statement执行DML和DQL语句
import com.loaderman.util.JdbcUtil; import java.sql.Connection; import java.sql.DriverManager; impor ...
- sql操作数据库(1)-->DDL、DML、DQL
SQL 操作数据库 概念:结构化查询语言 Structured Quary Language 作用: 1.是一种数据库的查询的标准,对所有的数据库都支持 2.不同的数据库SQL语句可能有点不同 ( ...
- jdbc java数据库连接 3)Statement接口之执行DDL、DML、DQL
|- Statement接口: 用于执行静态的sql语句 |- int executeUpdate(String sql) : 执行静态的更新sql语句(DDL,DML) |- ResultSet ...
- DDL\DML\DCL\DQL
[DML] DML = Data Manipulation Language,数据操纵语言,命令使用户能够查询数据库以及操作已有数据库中的数据的计算机语言.具体是指是UPDATE更新.INSERT插入 ...
随机推荐
- 小甲鱼PE详解之输入表(导出表)详解(PE详解09)
小甲鱼PE详解之输出表(导出表)详解(PE详解09) 当PE 文件被执行的时候,Windows 加载器将文件装入内存并将导入表(Export Table) 登记的动态链接库(一般是DLL 格式)文件一 ...
- http://blog.sina.com.cn/s/blog_5f103c9c0101atny.html
http://blog.sina.com.cn/s/blog_5f103c9c0101atny.html http://www.oschina.net/question/117304_51525
- POJ2686 Traveling by Stagecoach(状压DP+SPFA)
题目大概是给一张有向图,有n张票,每张票只能使用一次,使用一张票就能用pi匹马拉着走过图上的一条边,走过去花的时间是边权/pi,问从a点走到b点的最少时间是多少. 用dp[u][S]表示当前在u点且用 ...
- BZOJ2674 : Attack
整体二分+树状数组套Treap,时间复杂度$O(n\log^3n)$. #include<cstdio> #include<cstdlib> #include<algor ...
- 1^b+2^b+3^b+...+n^b数列
首先,这是我自己推出来的,O(n^2),常数巨大.所以无能为力优化!所以求此数列的公式!求优化!!! 主要思想:要算b次的,那么就要先算b+1次的. 首先,我用F(i, j)表示杨辉三角第i层第j个, ...
- 开学后,板刷usaco!
我要开权限我要开权限我要开权限我要开权限我要开权限我要开权限我要开权限我要开权限 他们刷rank的太可恶了 没有usaco银组金组分类的oj太可恶了 没有usaco翻译的太可恶了 没有usaco数据的 ...
- LeetCode-Sudoku Solver (递归解法)
题目地址: https://leetcode.com/problems/sudoku-solver/ // 将字符串的数独题转换成 int[9][9] ][], char ** b, int boar ...
- C++ Ouput Exactly 2 Digits After Decimal Point 小数点后保留三位数字
在C++编程中,有时候要求我们把数据保留小数点后几位,或是保留多少位有效数字等等,那么就要用到setiosflags和setprecision函数,记得要包含头文件#include <ioman ...
- ArcEngine 异常 :The index passed was not within the valid range.
pRowBuffer.set_Value(pFds.FindField("W_Mean"), Re_mean[3]); 此句代码弹出异常:The index passed was ...
- php利用wsh突破函数禁用执行命令(安全模式同理)
php利用wsh突破函数禁用执行命令(安全模式同理) 前提.需要服务器支持wsh.并知道php安装目录 但是php利用wsh执行命令是没有asp的权限高的. 突破代码 <?php $cmd= ...