DML和DQL语句
DML操作:
a.插入单行数据:
INSERT INTO 表名(列名,列名,...) VALUE(列值,列值,...);
表的字段名是可选的,如果省略,则一次插入所有字段
多个列表和多个值之间使用逗号分隔.
值列表必须和字段名列表数量相同,且数据类型相符,
如果插入的是表中的部分数据,字段名列表必须填写.
注:插入数据时必须满足数据完整性约束.任何数据都可以使用单引号括起来,系统会自动解析.
b.插入多行数据
向原表插入多行数据
INSERT INTO 表名(列名,列名,...)
VALUES(列值,列值,...),(列值,列值,...),(列值,列值,...)...;
向新表中插入多行数据
INSERT INTO 新表(select字段1,字段2...FROM原表)
注:向子表插入数据时,外键值必须在主表中存在
C.更新数据
UPDATE 表名 SET列名 = 更新值 [WHERE 更新条件];
注:在更新数据的时候,一般都有条件限制,别忘了书写WHERE条件语句,否则将更新表中所有行的数据,这样就可能导致有效数据的丢失.
D.删除数据
Delete [FROM] 表名 [where 删除条件];可恢复(记录日志)
删除所有: delete [FROM] 表名
注:更新数据或删除数据时,操作主表时,不能让子表中的数据孤立.
删除主表时,必须先删除子表数据,在删除主表数据,否则报错.
Delete语句删除的是整条记录,不会只删单个列,所以在delete后不能出现列名,否则报错.
TRUNCATE TABLE 删除数据
实际工作中,不建议使用TRUNCATE TABLE语句,因为使用它删除的数据不能回复还原.
DQL语句的操作:
使用select语句进行查询
语法:SELECT <列名|表达式|函数|常量>
FROM <表名>
[WHERE <查询条件表达式>]
[ORDER BY <排序的列名> [ASC或DESC]];
查询所有的数据行列:
SELECT * FROM <表名>;
SELECT 字段名1,字段名2,... FROM 表名
查询部分则在select语句后面加上条件即可,WHERE语句为可选语句,根据指定条件查询.
在查询中显示列的别名:
AS语句(也可省略不写)
如查询某员工信息表:
SELECT name AS 员工姓名,phone AS手机号码 FROM <员工信息表表名>
显示两列合并一列显示:
如:将员工姓名和电话合并显示为员工信息表
SELECT name + ’ . ’ + phone AS 员工信息表 FROM <员工信息表表名>
查询空值
在SQL语句中,采用 IS NULL 或者 IS NOT NULL 来判断是否为空.
例如 查询员工信息表手机号码为空的员工:
SELECT name FROM <员工信息表表名> WHERE phone IS NULL;
常用函数:
聚合函数
AVG () 返回某字段的平均值
COUNT() 返回某字段的行数
MAX() 返回某字段的最大值
MIN() 返回某字段的最小值
SUM() 返回某字段的和
字符串函数
CONCAT (str1,str2,...strn) 连接括号内的字符串为一个完整字符串
INSERT(str,pos,len,newstr) 将字符串str 从pos位置开始,len个字符长度的字符串 替换为字符串newstr.
LOWER(str) 将字符串str中的所有字符变为小写
UPPER(str) 将字符串str中的所有字符变为大写
SUBSTRING(str,num,len) 返回字符串str的第num个位置开始长度为len的子字符串.
时间日期函数
CURDATE() 获取当前日期
CURTIME() 获取当前时间
NOW() 获取当前日期时间
WEEK(date) 返回日期date为一年中的第几周
YEAR(date) 返回日期data的年份
HOUR(time) 返回时间time的小时值
MINUTE(time) 返回时间time的分钟值
DATEDIFF(date1,date2) 返回日期参数date1和date2之间相隔的天数
ADDDATE(date,n) 计算日期参数date加上n天后的日期
数字函数
CEIL (x) 返回大于或等于数值x的最小整数
FLOOR(x) 返回大于或等于数值x的最大整数
RAND() 返回0-1之间的随机数.
ORDER BY(排序) 字句
如果需要按照一定顺序排列查询语句中的行,则需要使用ORDER BY字句.
排序的值分两种 ASC(升序) / DESC(降序), 不写默认为ASC升序.
LIMIT字句
语法:
SELECT <字段名列表>
FROM<表名或视图>
[WHERE <查询条件>]
[GROUP BY <分组的字段名>]
[ORDER BY <排序的列名>]
[LIMIT [位置偏移量]行数 ]
位置偏移量是指从结果集中第几条数据开始显示(第一条记录的位置偏移量是0, 第二条记录的位置偏移量是1,....以此类推),此参数可选,省略时从第一条记录开始显示.
行数指显示记录的条数.
子查询
语法: SELECT .....FROM 表名 WHERE 字段 比较运算符 (子查询);
注:将子查询和比较运算符联合使用,必须保证子查询返回的值不能多于一个.
IN 和 NOT IN子查询
当返回结果为多个的时候,把比较运算符更换为IN(等同于等于)或 NOT IN(等用于不等于)即可.
DML和DQL语句的更多相关文章
- Mysql 数据库操作之DDL、DML、DQL语句操作
Mysql 数据库操作之DDL.DML.DQL语句操作 设置数据库用户名密码 l Show databases 查看数据库列表信息 l 查看数据库中的数据表信息 ,格式: use 数据库名: sh ...
- 使用Statement执行DML和DQL语句
import com.loaderman.util.JdbcUtil; import java.sql.Connection; import java.sql.DriverManager; impor ...
- MySQL的sql语言分类DML、DQL、DDL、DCL、
MySQL的sql语言分类DML.DQL.DDL.DCL. SQL语言一共分为4大类:数据定义语言DDL,数据操纵语言DML,数据查询语言DQL,数据控制语言DCL 1.数据定义语言DDL(Data ...
- DML和DQL 总结
一:MySql的存储引擎 问题的引入: 由于不同用户对数据的容量,访问速度,数据安全性有着不同的要求. 为了满足不同用户的需求,mysql数据库采用多种存储引擎来进行数据的存储! 1.1:查询mysq ...
- SQL--SQL详解(DDL,DML,DQL,DCL)
SQL--SQL详解(DDL,DML,DQL,DCL) 博客说明 文章所涉及的资料来自互联网整理和个人总结,意在于个人学习和经验汇总,如有什么地方侵权,请联系本人删除,谢谢! 什么是SQL? Stru ...
- Statement执行DQL语句(查询操作)
import java.sql.Connection; import java.sql.ResultSet; import java.sql.Statement; import org.junit.T ...
- 6.2笔记-DQL语句查询数据库
一.DQL语句 1.常量列 SELECT `StudentName` AS 姓名, `Address` AS 地址, '北京信息中心' AS 学校名称 FROM `student`; 2.常用函数 聚 ...
- MySQL的DML和DQL 增删改查
DML和DQL 增删改查 SELECT * FROM grade --新增 insert -- 向年级表中新增3条数据INSERT INTO grade(gradeID,gradeName) VA ...
- oracle之DML和DDL语句的其他用法
DML和DDL语句的其他用法 17.1 DML语句-MERGE 作用:把数据从一个表复制到另一个表,插入新数据或替换掉老数据. Oracle 10g中MERGE有如下一些改进: 1.UPDATE或IN ...
随机推荐
- STM32 实现 4*4 矩阵键盘扫描(HAL库、标准库 都适用)
本文实现的代码是基于STM32HAL库的基础上的,不过标准库也可以用,只是调用的库函数不同,逻辑跟配置是一样的,按我这里的逻辑来配置即可. 1.键盘原理图: 原理举例:先把 F0-F7 内部拉高,这样 ...
- getContextPath和getRealPath的区别-----其实主要区别就是相对路径和绝对路径
getContextPath和getRealPath的区别 其实主要区别就是相对路径和绝对路径 https://blog.csdn.net/zsmj_2011/article/details/4121 ...
- 【BZOJ3238】差异(后缀数组,单调栈)
题意: 思路:显然len(t[i])+len(t[j])这部分的和是一定的 那么问题就在于如何快速求出两两之间lcp之和 考虑将它们排名后用SA可以很方便的求出lcp,且对答案没有影响,因为形式都是数 ...
- HBase连接数据库(集群)
一.使用java接口对hbase进行表的创建1.引入需要的jar包2.代码: public static void main(String[] args) throws Exception { //得 ...
- P1082||T1200 同余方程 codevs|| 洛谷
时间限制: 1 s 空间限制: 128000 KB 题目等级 : 钻石 Diamond http://codevs.cn/problem/1200/||https://www.luogu.o ...
- java并发操作
项目中常用的java并发操作 一.java8新特性java并发流操作(结合纳姆达表达式) List<String> list = new ArrayList<>(); list ...
- @Autowired中无法注入RestTemplate的问题
1.在启动类中添加 @Beanpublic RestTemplate restTemplate(){ return new RestTemplate();} 即可解决无法注入RestTemplate的 ...
- logout退出功能是怎么实现的?login登陆功能室怎么实现的
logout退出功能是怎么实现的?login登陆功能室怎么实现的 login就是登陆成功的时候,在session里面创建好用户对应的数据. logout就是登出的时候,在session里面销毁用户对应 ...
- 在GNU Linux中怎样得到一个进程当前的流量
/********************************************************************* * Author : Samson * Date ...
- Linux下查看history里的某种命令
Linux下,直接键入history命令,会将当前账户此前所有的命令都显示出来,未免太多了些.如果我只想查找某种命令,怎么办? 比如说,我只想查找我之前运行过的 "git" 命令 ...