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 ...
随机推荐
- Python学习笔记 (1)Hello World(环境搭建+输出Hello World!)
随想 高考发挥失常.科三遇火车发挥失常,各种不顺……突然发现假期都快没了,才想起高考前想象的这个假期要做的一堆事,现在来多完成一件吧. 这几篇博客仅只是我的学习笔记,凑合看吧.我这个python小白看 ...
- [luoguP1072] Hankson 的趣味题(数论)
传送门 由题意得 gcd(x, a0) = a1 ——> gcd(x / a1, a0 / a1) = 1 lcm(x, b0) = b1 ——> x * b0 / gcd(x, b0) ...
- [luoguP1005] 矩阵取数游戏(DP + 高精度)
传送门 和奶牛那个题很像,每一行状态互不影响,也就是求 n 遍DP 不过高精度非常恶心,第一次写,调了我一上午. ——代码 #include <cstdio> #include <c ...
- vim高亮显示当前行列
vim高亮显示当前行: set cursorline vim高亮显示当前列: set cursorcolumn
- 由MTK平台 mtkfb 设备注册疑问引发的知识延伸--ARM Device Tree
问题: 在kernel-3.10\drivers\misc\mediatek\videox\mt6735\mtkfb.c里面int __init mtkfb_init(void) 有看到 platfo ...
- [K/3Cloud]关于K/3 Cloud v2.0升级补丁的疑问
现在除了K/3 Cloud v2.0的正式版之外,后续又发布了SP1和SP2补丁包.改善了一些问题和BUG,有些人之前可能之前装了SP1,有的可能没装过.在这里我说明一下: 不管装没装过补丁直接打SP ...
- T1002 搭桥 codevs
http://codevs.cn/problem/1002/ 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 黄金 Gold 题目描述 Description 有一矩形区域的城 ...
- MyBatis3-SqlSessionDaoSupport的使用
以下内容引用自http://www.yihaomen.com/article/java/336.htm: 在MyBatis3中这个Mapper接口貌似充当了以前在iBatis2中的DAO层的作用.但事 ...
- Cisco IOU Web Interface : Web IOU
https://github.com/dainok http://sns.clnchina.com.cn/space.php?uid=404779&do=blog&id=4298 ht ...
- session知识点总结
1.session生成条件是怎样的?是登陆成功才生成?还是请求进来就生成session和sessionid? 答:Tomcat只要进来请求,就会生成session,同一个ip request来源用的都 ...