MySQL插入数据与更新和删除数据.md
2017-06-16 12:41
429 查看
19章 插入数据
1 数据插入
2 插入完整的行
3 插入多行
4 插入检索出的语句
20章 更新和删除数据
1 更新数据
2 删除数据
3 更新和删除的原则
插入的几种形式,
1. 插入完整行;
2. 插入行的部分数据;
3. 插入多行;
4. 插入某些查询的结果;
- 注意,由于MySQL的安全机制,需要注意权限。
分析:第一列cust_id为
- 注意,虽然此语法简单,但并非安全。上面语句高度依赖表中列的次序。即使可以得到这些信息,但不能保证下次使用时,表的次序因为种种原因经过调整,引起输入错误。更保险的输入方式应该为,
同时,此方式下,自动增量的
如果表的定义允许,可以选择在
1. 该列定义为允许
2. 表中给出默认值;
注意,为避免影响到数据库瞬时速度,可以将插入操作降低优先级。
注意,使用多行插入操作,可以提高
分析:使用
- 注意,此例子中,将cust_id一并导入(cust_id被定义为非空、自增),因此必须确保导入的cust_id不重复。否则,需要省略此列,有SQL自增。同时检索列与插入列的名字不需要相同,MySQL只关心对应列顺序。
更新表中所有行;
更新表中特定行。
要更新的表;
列名和他们的新值;
确定要更新行的过滤条件。
例子,更新单列,
分析:
例子,使用多列更新时,只需要一次
分析:
1. 如果多列更新,并且在一行或多行赋值时出现错误,则整个
2. 为了删除每列的值,可以赋值为
- 从表中删除特定行;
- 从表中删除所有的行。
- 注意,在使用
-
- 若需要删除所有数据,不需要使用
保证每个表,都有主键,以便与使用
在使用
使用强制实施引用完整的数据库,保证不会删除与其他表有关联的数据的行。
MySQL没有撤销,没有撤销,没有撤销。
1 数据插入
2 插入完整的行
3 插入多行
4 插入检索出的语句
20章 更新和删除数据
1 更新数据
2 删除数据
3 更新和删除的原则
19章 插入数据
利用MySQL中INSERT语句插入数据
19.1 数据插入
此前章节一直使用SELECT语句,但还有三个经常使用的SQL语句需要掌握(
INSERT、
UPDATE和
DELETE)。
插入的几种形式,
1. 插入完整行;
2. 插入行的部分数据;
3. 插入多行;
4. 插入某些查询的结果;
- 注意,由于MySQL的安全机制,需要注意权限。
19.2 插入完整的行
需要指定插入的表名和行值。一般插入操作没有返回值,举例,mysql> INSERT INTO customers VALUES(NULL, 'pep E. LaPew', '100 Main Street', 'Los Angeles', 'CA', '90046', 'USA', NULL, NULL); Query OK, 1 row affected (0.00 sec)
分析:第一列cust_id为
NULL。这是因为在
customers表中,该列由MySQL自动增量,所以指定一个
NULL值。
- 注意,虽然此语法简单,但并非安全。上面语句高度依赖表中列的次序。即使可以得到这些信息,但不能保证下次使用时,表的次序因为种种原因经过调整,引起输入错误。更保险的输入方式应该为,
mysql> INSERT INTO customers (cust_name, cust_address, cust_city, cust_state, cust_zip, cust_country,cust_contact, cust_email) VALUES('pep E. LaPew', '100 Main Street', 'Los Angeles', 'CA', '90046', 'USA', NULL, NULL); Query OK, 1 row affected (0.00 sec)
同时,此方式下,自动增量的
cust_id的
NULL非必须。所以,纵使与表中列的次序不同,也可以完成插入操作。因此当比给出列名的时候,必须正确的给出每列<所有列>的值。
如果表的定义允许,可以选择在
INSERT操作时忽略某些列。忽略的列必须满足如下条件,
1. 该列定义为允许
NULL;
2. 表中给出默认值;
注意,为避免影响到数据库瞬时速度,可以将插入操作降低优先级。
INSERT LOW_PRIORITY INTO,此操作同样适用于
UPDATE和
DELETE。
19.3 插入多行
插入多行,只需要在每组值用圆括号并且逗号隔开即可。mysql> INSERT INTO customers (cust_name, cust_address, cust_city, cust_state, cust_zip, cust_country,cust_contact, cust_email) VALUES('pep E. LaPew', '100 Main Street', 'Los Angeles', 'CA', '90046', 'USA', NULL, NULL), ('pep E. LaPew', '200 Main Street', 'Los Angeles', 'CA', '90046', 'USA', NULL, NULL); Query OK, 1 row affected (0.00 sec)
注意,使用多行插入操作,可以提高
INSERT的性能。通俗讲,尽量少用语句。
19.4 插入检索出的语句
INSERT一般用来插入单行,但是与
SELECT结合后,可以使用所谓的
INSERT SELECT,举例说明
mysql> INSERT INTO customers(cust_id, cust_contact, cust_email, cust_name, cust_address, cust_city, cust_state, cust_zip, cust_country) SELECT cust_id, cust_contact, cust_email, cust_name, cust_address, cust_city, cust_state, cust_zip, cust_country FROM custnew;
分析:使用
INSERT SELECT从custnew中将所有数据导入customers。
SELECT语句将检索信息传入
INSERT。
- 注意,此例子中,将cust_id一并导入(cust_id被定义为非空、自增),因此必须确保导入的cust_id不重复。否则,需要省略此列,有SQL自增。同时检索列与插入列的名字不需要相同,MySQL只关心对应列顺序。
20章 更新和删除数据
UPDATE和
DELETE使用
20.1 更新数据
注意,在使用UPDATE语句时,必须严格小心,不要省略
WHERE语句,否则会更新表中所有行。
UPDARE更新数据的两种方式,
更新表中所有行;
更新表中特定行。
UPDARE语句由三部分组成,
要更新的表;
列名和他们的新值;
确定要更新行的过滤条件。
例子,更新单列,
mysql> UPDATE customers SET cust_email = 'elmer@fudd.com' WHERE cust_id = 10005;
分析:
UPDARE总是以要更新的表的名字开始,
SET为赋值命令
例子,使用多列更新时,只需要一次
SET命令即可
mysql> UPDATE customers SET cust_name = 'The Fudds', cust_email = 'elmer@fudd.com' WHERE cust_id = 10005;
分析:
1. 如果多列更新,并且在一行或多行赋值时出现错误,则整个
UPDATE操作都会被取消(更新不会进行)。可以使用
IGNORE关键字。
2. 为了删除每列的值,可以赋值为
NULL。
mysql> UPDATE customers SET cust_email = NULL WHERE cust_id = 10005;
20.2 删除数据
使用DELETE语句,进行删除操作,形式如下
- 从表中删除特定行;
- 从表中删除所有的行。
- 注意,在使用
DELETE语句时,同样必须严格小心,不要省略
WHERE语句,否则会更新表中所有行。
-
DELETE不需要列名或通配符。
DELETE语句删除整行而不是整列,若删除整列需要使用
UPDATE操作(在不使用
WHERE语句前提下,更新数据)。
- 若需要删除所有数据,不需要使用
DELETE语句,使用速度更快的
TRUNCATE TABLE。操作原理为,删除原表格,并创建新表。
20.3 更新和删除的原则
除非更新和删除每一行,使用UPDATE、
DELETE操作都需要使用
WHERE;
保证每个表,都有主键,以便与使用
WHERE语句进行唯一性检索;
在使用
UPDATE、
DELETE前,需要进行
SELECT测试,保证过滤条件的正确性;
使用强制实施引用完整的数据库,保证不会删除与其他表有关联的数据的行。
MySQL没有撤销,没有撤销,没有撤销。
相关文章推荐
- MySQL那点事之插入、更新与删除数据
- MySQL插入、更新与删除数据 习题
- MySQL学习笔记8(插入、更新、删除数据)
- MySQL插入更新删除数据
- Mysql 插入、更新与删除数据
- MySQL基础之第11章 插入、更新与删除数据
- MySQL知识(十二)——数据的插入、更新和删除
- MySQL(四) 数据表的插入、更新、删除数据
- mysql(六、 插入,更新和删除数据)
- Asp.Net 2.0 操作mysql 数据基类(读取,删除,插入,更新)
- mySQL 教程 第5章 插入 更新与删除数据
- mySQL教程 第5章 插入 更新与删除数据
- mySQL教程 第5章 插入 更新与删除数据
- php+mysqli实现批量执行插入、更新及删除数据的方法
- python对MySQL进行数据的插入、更新和删除之后需要commit,数据库才会真的有数据操作。(待日后更新)
- MySQL插入、更新与删除数据 …
- Asp.Net 2.0 操作mysql 数据基类(读取,删除,插入,更新)
- MySQL学习笔记之四:插入、更新与删除数据
- MYSQL----对表中数据进行插入,更新,删除
- MYSQL之插入更新删除数据