第四章 使用DML语句更改数据
2016-01-11 22:33
232 查看
插入单行记录的基本语法:INSERT INTO <表名> (<列名列表>) VALUES(<值列表>);
特点:
1.INTO是INSERT和目标表之间可以使用的关键字。
2.<表名>是插入记录的目标表的名称。
3.<列名列表>指定插入记录的目标表的列名,是一个以逗号分隔的列名列表。
<值列表>指定表中列的值,也是一个以逗号分隔的多个值的列表。值的顺序必须与列名的顺序一致。
在INSERT语句中的列名列表不需要是表的全部列。在以下几种情况下,我们可以在INSERT语句中省略某些列:
1.列值由RDBMS自动创建的,该列通常是主键列。
2.创建列时设定了默认值,如果不提供值,该列的值可由RDBMS自动创建。
3.如果列是timestamp类型,某些RDBMS会自动插入当前日期和时间作为列值。
4.如果列被设置为允许空值,那么不输入值不影响数据库的完整性。
插入多行记录的基本语法有两种:INSERT INTO <表名> (<列名列表>)SELECT
<Select语句>;
•这种方式利用SELECT语句(查询)代替values。通过查询语句将查询的结果插入到表中。要求查询语句的选择列要和插入语句指定列对应。
INSERT INTO
t_student VALUES(1,'张三',20,'男'),(2,'李四',25,'男'),(3,'王五',19,'女');
•此方法可以在VALUES后跟多条记录,但是此方法仅限于在MYSQL数据库中使用。
表数据的复制的基本语法:SELECT <列名> INTO <新表名> FROM <表名>;
将student表中的数据复制到student2表中,如:
SELECT * INTO student2 FROM student;
更改已有数据的基本语法:UPDATE <表名> SET <新列值列表> WHERE <过滤条件>;
–SET语句就是指定修改的列,修改多个列时用逗号分开。
- 如果要将某列值删除,只需要将该列的数据设置为NULL即可。下面分别介绍几种更新方式:
–举例
•更新张三同学的性别为女
UPDATE
t_student SET
性别=‘女’ WHERE
姓名=‘张三’;
•将所有年龄小于18岁的同学增加3岁
UPDATE t_student SET
年龄=年龄+3 WHERE年龄<18;
注意:忽略WHERE子句将会改变表中所有行!
删除数据的基本语法:DELETE FROM 表名 WHERE
过滤条件;
•删除语句可以删除一行或多行,根据过滤条件来确定。
–举例
•删除姓名为张三的学生信息
DELETE FROM t_student WHERE
姓名=‘张三’
•删除年龄18-20岁之间的学生信息
DELETE FROM t_student WHERE
年龄 BETWEEN18 AND 20
•删除所有数据
–使用DELETE删除
•不加WHERE条件的DELETE语句就能删除所有数据
–使用TRUNCATE语句
•直接删除表中所有数据
•标准结构
TRUNCATE TABLE 表名
–二者的区别
•DELETE会记录日志,意味着删除后的数据还可以恢复,但是效率低。TRUNCATE不会记录日志,删除后的数据不能恢复,但是效率高。TRUNCATE不能用于有外键约束引用的表。
特点:
1.INTO是INSERT和目标表之间可以使用的关键字。
2.<表名>是插入记录的目标表的名称。
3.<列名列表>指定插入记录的目标表的列名,是一个以逗号分隔的列名列表。
<值列表>指定表中列的值,也是一个以逗号分隔的多个值的列表。值的顺序必须与列名的顺序一致。
在INSERT语句中的列名列表不需要是表的全部列。在以下几种情况下,我们可以在INSERT语句中省略某些列:
1.列值由RDBMS自动创建的,该列通常是主键列。
2.创建列时设定了默认值,如果不提供值,该列的值可由RDBMS自动创建。
3.如果列是timestamp类型,某些RDBMS会自动插入当前日期和时间作为列值。
4.如果列被设置为允许空值,那么不输入值不影响数据库的完整性。
插入多行记录的基本语法有两种:INSERT INTO <表名> (<列名列表>)SELECT
<Select语句>;
•这种方式利用SELECT语句(查询)代替values。通过查询语句将查询的结果插入到表中。要求查询语句的选择列要和插入语句指定列对应。
INSERT INTO
t_student VALUES(1,'张三',20,'男'),(2,'李四',25,'男'),(3,'王五',19,'女');
•此方法可以在VALUES后跟多条记录,但是此方法仅限于在MYSQL数据库中使用。
表数据的复制的基本语法:SELECT <列名> INTO <新表名> FROM <表名>;
将student表中的数据复制到student2表中,如:
SELECT * INTO student2 FROM student;
更改已有数据的基本语法:UPDATE <表名> SET <新列值列表> WHERE <过滤条件>;
–SET语句就是指定修改的列,修改多个列时用逗号分开。
- 如果要将某列值删除,只需要将该列的数据设置为NULL即可。下面分别介绍几种更新方式:
–举例
•更新张三同学的性别为女
UPDATE
t_student SET
性别=‘女’ WHERE
姓名=‘张三’;
•将所有年龄小于18岁的同学增加3岁
UPDATE t_student SET
年龄=年龄+3 WHERE年龄<18;
注意:忽略WHERE子句将会改变表中所有行!
删除数据的基本语法:DELETE FROM 表名 WHERE
过滤条件;
•删除语句可以删除一行或多行,根据过滤条件来确定。
–举例
•删除姓名为张三的学生信息
DELETE FROM t_student WHERE
姓名=‘张三’
•删除年龄18-20岁之间的学生信息
DELETE FROM t_student WHERE
年龄 BETWEEN18 AND 20
•删除所有数据
–使用DELETE删除
•不加WHERE条件的DELETE语句就能删除所有数据
–使用TRUNCATE语句
•直接删除表中所有数据
•标准结构
TRUNCATE TABLE 表名
–二者的区别
•DELETE会记录日志,意味着删除后的数据还可以恢复,但是效率低。TRUNCATE不会记录日志,删除后的数据不能恢复,但是效率高。TRUNCATE不能用于有外键约束引用的表。
相关文章推荐
- iframe显示滚动条
- jQuery插件之ajaxFileUpload(异步上传图片并实时显示,并解决onchange后ajaxFileUpload失效问题)
- LeetCode——Rotate Image(二维数组顺时针旋转90度)
- 基于Tomcat7的websocket的应用实现
- PhantomJS
- 【转】iOS开发里的Bundle是个啥玩意?!
- UVA - 11762 - Race to 1 记忆化概率
- ConvertToUTF8(README.zh_CM)
- highcharts 结合phantomjs纯后台生成图片系列二之php2
- Android测试点
- zepto 基础知识(6)
- day 3
- jdk安装及Android studio环境搭建
- nyoj Yougth's Game[Ⅲ] (dp左右断点求最大和)好题
- android 显示系统初步总结
- Android多媒体-深入音频系列
- c++ g++运行出现Enable multithreading to use std::thread: Operation not permitted解决
- TCP 连接状态图 (TCP Connection State Diagram)
- HDU1698(线段树入门题)
- Scala 中for表达式查询