首页 > 数据库 > MySQL > 正文

MySQL备忘之数据更新篇(INSERT, UPDATE, DELETE)

2024-07-24 13:00:17
字体:
来源:转载
供稿:网友

INSERT

插入完整行与NULL

not null字段必须插入值auto_increment字段可以不填入,即使填入NULL值也是不必要的,由DBMS自动计算并填充。如果表的定义允许,则可以在INSERT操作中省略某 些列。省略的列必须满足以下某个条件。 该列定义为允许NULL值(无值或空值)。 在表定义中给出默认值。这表示如果不给出值,将使用默 认值。 如果对表中不允许NULL值且没有默认值的列不给出值,则 MySQL将产生一条错误消息,并且相应的行插入不成功。

插入多行

MySQL用单条INSERT语句处理多个插入比使用多条INSERT 语句快,

INSERT INTO customers(cust_name, cust_address) VALUES('Pep E. LaPew', '100 Main Street');INSERT INTO customers(cust_name, cust_address) VALUES('Pep E. LaPew', '100 Main Street');# 其中单条INSERT语句有多组值,每组值用一对圆括号括起来, 用逗号分隔。 INSERT INTO customers(cust_name, cust_address) VALUES('Pep E. LaPew', '100 Main Street'), ('Pep E. LaPew', '100 Main Street');# 后者的速率比前者快,尤其是需要插入大量的数据的时候

INSERT……SELECT……

典型应用场景

把一个名为custnew的表中的数据 导入customers表中。为了试验这个例子,应该首先创建和填 充custnew表。

mysql语句

INSERT INTO customers(cust_contact, cust_email,cust_name, cust_city) SELECT (cust_contact, cust_email,cust_name, cust_city) FROM custnew;# cust_id是auto_increment,所以可以省略该字段#倘若需要保留custnew表格中的cust_id的话,也可导入该字段,前提是保证cust_id的值不重复

tips

MySQL不关心SELECT返回的列名,它使用的是列的位置 为简单起见,这个例子在INSERT和 SELECT语句中使用了相同的列名。但是,不一定要求列名匹配。 因此SELECT中的第一列(不管其列名)将用来填充 表列中指定的第一个列,第二列将用来填充表列中指定的第二 个列,如此等等。INSERT SELECT中SELECT语句可包含WHERE子句以过滤插入的数据

待续~


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表