数据插入:使用insert语句可1,插入完整的行,2,插入行的一部分,3,插入某些查询的结果。(使用insert语句需注意是否有足够的安全权限)。
插入完整的行:INSERT 语句,要求指定表名和插入到新行中的值(如果某列没有值,则应该使用 NULL 值)。
INSERT INTO Customers VALUES('1000000006', 'Toy Land', '123 Any Street', 'New York', 'NY', '11111', 'USA', NULL, NULL); 此语法很简单,但并不安全,不要使用。
INSERT INTO Customers(cust_id, cust_name, cust_address, cust_city, cust_state, cust_zip, cust_country, cust_contact, cust_email) VALUES('1000000006', 'Toy Land', '123 Any Street', 'New York', 'NY', '11111', 'USA', NULL, NULL); 此语法更安全。
插入部分行:INSERT 语句,省略部分列和列值
INSERT INTO Customers(cust_id, cust_name, cust_address, cust_city, cust_state, cust_zip, cust_country) VALUES('1000000006', 'Toy Land', '123 Any Street', 'New York', 'NY', '11111', 'USA'); 省略了cust_contact 和 cust_email列及其对应的值。
插入检索出的数据:INSERT SELECT语句
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; 从CustNew表中读出数(顾客列)并插入到Customers表中。
INSERT SELECT语句中的列名不要求是相同的,DBMS使用的是列的位置,因此 SELECT 中的第一列(不管其列名)将用来填充表列中指定的第一列,第二列将用来填充表列中指定的第二列,等等。
INSERT SELECT 中 SELECT 语句可以包含 WHERE 子句,以过滤插入的数据。
INSERT 通常只插入一行。要插入多行,必须执行多个 INSERT 语句。 INSERT SELECT是个例外,它可以用一条INSERT插入多行,不管SELECT 语句返回多少行,都将被 INSERT 插入。
从一个表复制到另一个表:SELECT INTO 语句
SELECT * INTO CustCopy FROM Customers; 这条 SELECT 语句创建一个名为 CustCopy 的新表,并把 Customers 表 的整个内容复制到新表中。要想只复制部分的列,可以明确给出列名,而不是使用*通配符。
CREATE TABLE CustCopy AS SELECT * FROM Customers; MySQL使用的语法。