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 ...
随机推荐
- springcloud(十):熔断监控Hystrix Dashboard
申明: 这里比较坑爹,大家写的时候要小心,这里和springboot的版本有关系哈,我使用的是2.0 版本,要么调频为1.5 版本,要么使用其他方式 解决错误,我选择了还是用2.0 ...
- unigui+fastreport 打印【4】
1.建立一个uniForm,用于建立FastReport打印界面.在Form上增加uniFrame.和传统的的报表打印设计一样一样的. 2.在beofeShow事情中: procedure TUniF ...
- linux下git+github个人使用记录
Linux: 安装git的命令: sudo apt install git 查看版本确认安装成功: git --version 生成密钥: ssh-keygen -t rsa -C "you ...
- JavaSE 学习笔记之Jdk5.0新特性(十九)
Jdk5.0新特性: Collection在jdk1.5以后,有了一个父接口Iterable,这个接口的出现的将iterator方法进行抽取,提高了扩展性. --------------------- ...
- mybatis example 排序 语句
mybatis example 排序 语句 IntegralInfoExample integral = new IntegralInfoExample(); integral.createCrite ...
- [luoguP2890] [USACO07OPEN]便宜的回文Cheapest Palindrome(DP)
传送门 f[i][j] 表示区间 i 到 j 变为回文串所需最小费用 1.s[i] == s[j] f[i][j] = f[i + 1][j - 1] 2.s[i] != s[j] f[i][j] = ...
- T5090 众数 codevs
http://codevs.cn/problem/5090/ 时间限制: 1 s 空间限制: 1000 KB 题目等级 : 青铜 Bronze 题目描述 Description 由文件给出N个1到 ...
- 《WF in 24 Hours》读书笔记 - Hour 2(1) - 第一个Workflow程序
创建第一个Workflow项目 1. 创建Workflow项目 – 选择Workflow Console Application 2. 添加CodeActivity 3. 打开CodeActivity ...
- 1.5 - 动态路由协议ISIS
IS-IS 特征: 1:协议操作起来,比OSPF要简单 2:扩展性比OSPF要好,易于扩展 3:对IPv6有很好的支持 4:能够同时支持IP网络,和CLNS网络(OSI网络)(集成的IS-IS) 5: ...
- android学习笔记:adb更换端口后成功启动
搭建手机开发环境,android ADT,android SDK,然后按照PhoneGap官网的指引,拷贝文件,修改代码,运行,进度条到了某个位置后就停止不动了. 停止不动,又是停止不动.你都不知道问 ...