您的位置:首页 > 其它

第四章 使用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不能用于有外键约束引用的表。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: