[疯狂Java]SQL-DML:插入、修改、删除记录
来源:互联网 发布:淘宝上进货 编辑:程序博客网 时间:2024/06/06 20:28
1. DML:
1) Data Manipulation Language,即数据操作语言,其针对的目标直接就是数据表中的数据记录;
2) 主要有向数据表中插入数据记录(行)(insert)、修改数据记录(列的值)(update)、删除表中的记录(delete);
3) 所有DML语句都必须包含一个要素,就是操作的是哪张表,因此其格式为:DML操作 目标表名 具体怎么操作;
4) 其中DML操作名有对应上面三种:insert into(插入[到哪张表])、update(修改,即更新[哪张表])、delete from([从哪张表里]删除记录);
5) 这三个操作都有自己独特的操作语法,这在之后会详细讲解;
2. 插入记录——insert into:
1) 语法格式:主要分为显示指定值和子查询两种,前两个是显式指定值(但是一次只能插入一条记录,如果要插入多条就要反复编写该插入语句,而子查询插入支持一次插入多条,插入的内容直接就是子查询的结果,因此插入多条是显而易见的)
i. 直插入记录的某几个字段(列),其余字段使用定义列时给出的默认值:insert into 目标表(要插入值的列) values(对应的值);
ii. 不指定具体的列,但是所有字段必须给出值:insert into 目标表 values(每一列的值); // 还无法确定值的就先给一个null(但不能有not null约束)
iii. 子查询插入(指定插入值的列):insert into 目标表(要插入值的列) select语句; // 将select的查询结果插入到目标表中
iv. 子查询插入(满插,不指定插入值的列,所以所有字段必须都给出值):insert into 目标表 select语句; // 查询结果必须和目标表的列数一样
!!子查询插入中子查询的结果的列数和数据类型必须和目标一一对应!
2) 示例:
create table t1(col1 int,col2 int);insert into t1 values(1, 2); // 不指定列insert into t1(col1, col2) values(2, 3); // 指定列create table t2(col1 int,col2 int);insert into t2(col1) select col2 from t1; // 子查询指定列,t2.col2将被设为nullinsert into t2 select * from t1; // 子查询不指定列3) 对于设定为自增长的列插入是可以传null值,但实际插入的并不是null值,而是自增长后的值!!null的意思就是要么为空,要么就交给系统默认处理;
4) 标准SQL虽然规定显式指定值的插入一次只能插入一条记录,但是MySQL为显式值插入提供了一次插入多条记录的语句,就是在values后使用多个括号插入记录即可,记录之间用逗号隔开,例如:insert into t1(col1, col2) values(1, 2), (3, 4); // 一次插入了两条记录,分别是(1, 2)和(3, 4)
3. 修改/更新——update:
1) 修改记录不仅需要确定是哪张表,而且要确定修改的是哪几行(因此update支持多行修改的)以及记录的哪几列,即三要素(必须要定位表、行、列);
2) 语法格式:
update 目标表set 列1=更新的值1[, 列2=更新的值2[...]][where子句];i. 第一行确定了修改的是哪张表;
ii. 第三行的where子句用来定位要修改的是哪几行(即满足where子句条件的行才会被修改,如果不写where子句就表示结果总为true,即所有行都要修改);
iii. 第二行指定了要修改的是哪几列;
3) 示例:
update TableTeacher // 修改的是教师表set teacher_name='lalala', teacher_address='111' // 把名字改成'lalala',把地址改成'111'where teacher_id > 1; // 所有编号大于1的教师记录都要改
1) 删除记录不需要指定列,因为删除记录在标准SQL中规定只能整行删除,因此删除记录只关心是哪张表和哪几行(where子句指定);
2) 语法格式:delete from 目标表 [where子句]; // where子句确定被删的行应该是怎样的,因此同样支持多行删除,如果where子句不写则表示全部行都要删除,这就跟truncate的效果一样了,但还是建议删除数据但不删表还是使用truncate,truncate更加高效
3) 示例:delete from TableTeacher where teacher_id > 50; // 把所有编号大于50的教师记录删除
- [疯狂Java]SQL-DML:插入、修改、删除记录
- sql 插入,修改,删除
- MySQL学习记录(插入+删除+演示分析)四 DML
- 14、DML (data-manipulation-language) 插入、删除、修改
- mysql-sql 插入、删除、修改
- sql之插入、更新、删除记录,创建、修改以及删除表
- java操作sql server数据添加,修改,删除记录
- php查询、插入、删除、修改记录
- t-sql实现插入,删除,更新记录
- Oracle存在修改,不存在插入记录 SQL
- SQL语言基础--数据插入修改删除
- sql Server 创建表 插入 修改 删除
- DML语句---插入单条数据记录
- java 对数组进行插入删除修改
- java 对数组进行插入删除修改
- [疯狂Java]SQL:DDL语句(定义、修改表结构)
- 插入、删除、更新后返回修改的记录,用output
- C# 查询 插入 修改 删除 sqlserver2008中记录
- zz:Android 测试工具Monkey & Monkeyrunner 使用方法
- ReactNative学习十三-Props和State
- Django REST framework教程一:序列化
- STL学习笔记— —容器deque
- 一个产品的完整生命周期
- [疯狂Java]SQL-DML:插入、修改、删除记录
- Mybatis——Mapper动态代理
- 穿透内网,连接动态ip,内网ip打洞-----p2p实现原理
- 苹果的CoreFoundation部分源代码
- Libevent源码分析-----TAILQ_QUEUE队列
- 【dotnet跨平台】dotnet-cli典型场景
- Gson使用总结
- 内部类和匿名内部类
- mybatis中关于like的写法