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语句的更多相关文章

  1. Mysql 数据库操作之DDL、DML、DQL语句操作

    Mysql 数据库操作之DDL.DML.DQL语句操作 设置数据库用户名密码 l  Show databases 查看数据库列表信息 l  查看数据库中的数据表信息 ,格式: use 数据库名: sh ...

  2. 使用Statement执行DML和DQL语句

    import com.loaderman.util.JdbcUtil; import java.sql.Connection; import java.sql.DriverManager; impor ...

  3. MySQL的sql语言分类DML、DQL、DDL、DCL、

    MySQL的sql语言分类DML.DQL.DDL.DCL. SQL语言一共分为4大类:数据定义语言DDL,数据操纵语言DML,数据查询语言DQL,数据控制语言DCL 1.数据定义语言DDL(Data ...

  4. DML和DQL 总结

    一:MySql的存储引擎 问题的引入: 由于不同用户对数据的容量,访问速度,数据安全性有着不同的要求. 为了满足不同用户的需求,mysql数据库采用多种存储引擎来进行数据的存储! 1.1:查询mysq ...

  5. SQL--SQL详解(DDL,DML,DQL,DCL)

    SQL--SQL详解(DDL,DML,DQL,DCL) 博客说明 文章所涉及的资料来自互联网整理和个人总结,意在于个人学习和经验汇总,如有什么地方侵权,请联系本人删除,谢谢! 什么是SQL? Stru ...

  6. Statement执行DQL语句(查询操作)

    import java.sql.Connection; import java.sql.ResultSet; import java.sql.Statement; import org.junit.T ...

  7. 6.2笔记-DQL语句查询数据库

    一.DQL语句 1.常量列 SELECT `StudentName` AS 姓名, `Address` AS 地址, '北京信息中心' AS 学校名称 FROM `student`; 2.常用函数 聚 ...

  8. MySQL的DML和DQL 增删改查

    DML和DQL   增删改查 SELECT * FROM grade --新增 insert -- 向年级表中新增3条数据INSERT INTO grade(gradeID,gradeName) VA ...

  9. oracle之DML和DDL语句的其他用法

    DML和DDL语句的其他用法 17.1 DML语句-MERGE 作用:把数据从一个表复制到另一个表,插入新数据或替换掉老数据. Oracle 10g中MERGE有如下一些改进: 1.UPDATE或IN ...

随机推荐

  1. 如何使用loadrunner进行web网站性能测试

    loadrunner压力测试原理 本质就是在loadrunner上模拟多个用户同时按固定行为访问web站点.其中固定行为在loadrunner中是通过录制脚本定义的,多个用户同时访问的策略是在load ...

  2. 泛型约束 ---类型参数上的限制(where T:class,new())

    今天遇到的一个问题,找到了解决办法,收藏以后记得看一下!

  3. RabbitMQ-linux安装rabbitmq(二)

    说明 本地装了个虚拟机模拟集群 所以记下安装步骤 安装Erlang 安装类库 yum -y install ncurses-devel yum -y install openssl-devel yum ...

  4. Eclipse不编译解决方案

    原文链接:http://blog.csdn.net/huahuagongzi99999/article/details/7719882    转来自己用 这两天Eclipse 不编译了,无论怎么更改保 ...

  5. validate针对checkbox、radio、select标签的验证

    jQuery.validate 是jquery的一个插件,用来辅助开发者在客户端方便快捷的实现表单验证,最终达到提高用户体验的目的. 示例代码 <form id="formLogin& ...

  6. poj——2891 Strange Way to Express Integers

    Strange Way to Express Integers Time Limit: 1000MS   Memory Limit: 131072K Total Submissions: 16839 ...

  7. 模拟赛 Problem 3 经营与开发(exploit.cpp/c/pas)

    Problem 3 经营与开发(exploit.cpp/c/pas) [题目描述] 4X概念体系,是指在PC战略游戏中一种相当普及和成熟的系统概念,得名自4个同样以“EX”为开头的英语单词. eXpl ...

  8. 8、Java并发性和多线程-静态条件与临界区

    以下内容转自http://ifeve.com/race-conditions-and-critical-sections/: 在同一程序中运行多个线程本身不会导致问题,问题在于多个线程访问了相同的资源 ...

  9. 第3章 ES文档和故障处理

    第3章 ES文档和故障处理 一.ES网络配置表 ES网络配置表是ES的硬件和软件组成的列表.ES网络配置常包括以下项目: 分级 项目 杂项信息 系统名.系统厂商/型号.CPU速率.RAM.存储器.系统 ...

  10. windows bat命令 开启关闭Oracle服务

    0.吐槽 单位发的ThinkPad T61.太弱小了. 问题是我去百度下T61,发现它好贵好贵.真心无力吐槽.还不如给我发台外星人,廉价点的. . Oracle一开就内存就不够了.所以绝对不能让它开机 ...