Java培训课程之数据库数据插入

插入数据

Java培训

1、语法

INSERT INTO 表名称  VALUES(值1,值2,……);

INSERT INTO 表名称  VALUES(值1,值2,……),(值1,值2,……),…;

INSERT INTO 表名称 (字段1,字段2,……) VALUES(值1,值2,……);

INSERT INTO 表名称 (字段1,字段2,……) VALUES(值1,值2,……),(值1,值2,……),…..;

2、说明

1、值的顺序、个数与字段列表中字段的顺序、个数一致

(1)如果个数少了就报Column count doesn’t match value count

(2)如果VALUES前面的()中没有列出字段,那么默认就是为表中的所有字段赋值,那么个数与顺序与表结构中字段定义的一致

2、关于自增长列,默认值列,允许为NULL列的赋值

(1)如果字段列表列出了字段名,那么值列表中就要为其赋值,哪怕它是自增长列,有默认值列,可以为NULL值的列。

  • InnoDB表的自动增长列可以手动插入合适的值,但是插入的值如果是NULL或者0,则实际插入的将是自动增长后的值;
  • 如果列声明了“默认约束”那么对应的位置可以赋值具体的值,也可以使用“DEFAULT”,表示使用默认值;
  • 如果列允许了NULL值,那么可以为对应的字段可以赋值为具体值也可以赋值为NULL

(2)对于没有列出的字段,像自增列就自动赋值,像默认值列就自动赋默认值,像允许NULL的列就自动赋NULL值

3、VALUES也可以写成VALUE,但是VALUES是标准写法

4、可以同时插入多行

5、如果插入从表的数据,要注意查看主表参照字段的值是否存在

6、值的位置可以是常量值、表达式、函数

3、示例

练习(一)

 

CREATE TABLE t_stu(

         sid INT PRIMARY KEY AUTO_INCREMENT,

         sname VARCHAR(100) NOT NULL,

         gender CHAR NOT NULL DEFAULT ‘男’,

         card_id CHAR(18) NOT NULL UNIQUE,

         birthday DATE,

         address VARCHAR(200)

);

java培训

INSERT INTO t_stu VALUES(1,’张三’,DEFAULT,’123456789012345678′,’1989-09-09′,NULL);

INSERT INTO t_stu VALUES(2,’李四’,’女’,’123456789012345677′,’1988-09-09′,’尚硅谷’);

INSERT INTO t_stu VALUES(0,’王五’,’男’,’123456789012345676′,’1987-09-09′,’尚硅谷’);

INSERT INTO t_stu VALUES(NULL,’赵六’,’男’,’123456789012345675′,’1987-09-09′,’尚硅谷’);

INSERT INTO t_stu VALUES

(NULL,’冰冰’,’女’,’123456789012345674′,’1988-09-09′,’尚硅谷’),

(NULL,’小丽’,’女’,’123456789012345673′,’1988-09-09′,’尚硅谷’);

INSERT INTO t_stu (sname,card_id,birthday)

VALUES(‘小薇’,’123456199012045672′,STR_TO_DATE(SUBSTRING(card_id,7,8),’%Y%m%d’));

INSERT INTO t_stu (sname,card_id,birthday)VALUES

(‘小红’,’123456789012345671′,’1990-09-09′),

(‘小紫’,’123456789012345670′,’1990-09-09′);


上一篇:
下一篇: