INSERT基本语法
INSERT INTO 表名(列1,列2,列3...) VALUES(值1,值2,值3.....);
1.字符型和日期型的数据需要用单引号’'括起来
2.列名和值用逗号隔开,分别放在括号内(),称为列清单、值清单
3.未使用默认值时,列的数量和值的数量必须保持一致
4.原则上,执行一次INSERT语句会插入一行数据
mysql多行插入如下所示,将多行values子句用逗号分隔
列清单的省略
对表进行全列INSERT 时,可以省略列清单
插入NULL
对于没有设置NOT NULL 约束的列,想要赋予null值时,可以直接在values子句的值清单中写入NULL
INSERT INTO shopinfos VALUES('0006','叉子','厨房用具',500,NULL,'2019-09-20');
插入默认值
默认值的设定可以通过在创建表的时候 添加DEFAULT约束来实现:‘DEFAULT 默认值’
如果再创建表的时候设定了默认值,就可以在INSERT语句中自动为列赋值。
通过显示方法插入默认值
在VALUES子句中指定DEFAULT关键字,就会在指定位置自动赋上默认值。
INSERT INTO shopinfos VALUES('0007','擦菜板','厨房用具',DEFAULT,790,'2019-09-20');
通过隐式方法插入默认值
省略insert语句中的列名,就会自动设定为该列的默认值(没有默认值是会设定为null)
这样必须列出相应的列名,建议使用显示方法,更加一目了然
INSERT INTO shopinfos(shop_id,shop_name,shop_cata,signdate)
VALUES('0008','擦菜板','厨房用具','2019-09-20');
从其他表复制数据
建立一个空表,将shopinfo中的数据复制到shopinfocopy中
INSERT INTO shopinfoCopy(Shop_id,Shop_name,Shop_cata,Sale_danjia,Jinhuo_danjia,Signdate)
SELECT shohin_id,shohin_name,shohin_cata,sale_danjia,jinhuo_danjia,signdate
from shopinfo;
上述insert语句中的select语句中,也可以使用where子句或者group by 子句。建立一个商品种类汇总表。
INSERT INTO shopinfo_huizong(shop_cata,sum_sale_danjia,sum_jinhuo_danjia)
SELECT shohin_cata,SUM(sale_danjia),SUM(jinhuo_danjia)
from shopinfo
GROUP BY shohin_cata;