【SQL必知必会】数据插入、更新和

数据的插入insert into values

数据的插入有以下几种方式:

  1. 插入完整的行;
  2. 插入行的一部分;
  3. 插入多行;
  4. 插入某些查询的结果。
  5. 插入完整的行:
INSERT INTO Customers VALUES ('Pep E. LaPew','100 Main Street','Los Angeles','CA','90046','USA',NULL,NULL);

这种方法的缺陷:

  • SQL语句插入的数据次序必须和表中列的定义次序完全一致
  • 即使可得到这种次序信息,也不能保证下一次表结构变动后各个列保持完全相同的次序。
  • 虽然语法简单,但并不安全,我们应该尽量避免使用。

我们有一种更安全的方法,如下:

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);

这种方法在表名后的括号里明确地给出了列名。在插入行时, MySQL将用VALUES列表中的相应值填入列表中的对应项。
因为提供了列名, 其优点是,VALUES不一定要按各个列出现在实际表中的次序,即使次序不同,也能够将数据正确的插入。其次,即使表的结构改变,此INSERT语句仍然能正确工作。

  1. 插入行的一部分
INSERT INTO Customers(cust name,cust address) VALUES ('Pep E. LaPew','100 Main Street');

和上面那个例子差不多,只不过只插入一行的部分数据

  1. 插入多行
    可以用多条select语句分别进行插入,或者,只要每条INSERT语句中的列名(和次序)相同,可以如下组合各语句(用逗号分隔开):
INSERT INTO customers (cust_name,cust address,cust city,cust state,cust zip,cust_country)
VALUES('Pep E. LaPew','100 Main Street','Los Angeles','CA','90046','USA'),
('M. Martian42', 'Galaxy Way','New York','NY','11213','USA');
  1. 插入某些查询的结果
    使用INSERT SELECT从custnew中将所有数据导入
    customers。
INSERT INTO customers (cust_name,cust address) SELECT cust_name,cust address FROM custnew;

数据的更新UPDATE SET

将id为10005的客户的信息中的名字和邮箱更改为The Fudds,elmer@fudd. com

UPDATE customers SET cust_name = 'The Fudds',cust_email = '[email protected]' WHERE cust_id' = 10005;

也可以使用cust_email = NULL,通过将数据更新为空值来将客户的邮箱信息删除
如果要删除整行,则要用到delete

数据的删除

删除id 为10006的数据

DELETE FROM customers WHERE cust_id=10006;

使用更新,删除的指导原则:

  • **UPDATE和DELETE语句全都具有WHERE子句。**如果省略了WHERE子句,则UPDATE或DELETE将被应用到表中所有的行。 除非确实打算更新和删除每一行,否则绝对不要使用不带WHERE子句的UPDATE或DELETE语句。
  • 保证每个表都有主键
  • 因为MySQL中没有撤销按钮,所以在对UPDATE或DELETE语句时必须非常小心,在使用前,应该先用SELECT进行测试,保证它过滤的是正确的记录,以防编写的WHERE子句不正确。

猜你喜欢

转载自blog.csdn.net/qq_41855768/article/details/84173470