Java开发基础篇DML中插入数据语法与示例

数据操纵语言(DML)DML用于插入、修改、删除数据记录,包括如下SQL语句:

INSERT:添加数据到数据库中

UPDATE:修改数据库中的数据

DELETE:删除数据库中的数据

插入数据

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_employee(

         eid INT PRIMARY KEY AUTO_INCREMENT,

         ename VARCHAR(100) NOT NULL,

         gender CHAR NOT NULL DEFAULT ‘男’,

         card_id CHAR(18) UNIQUE,

         tel CHAR(11),

         job_id INT,

         `mid` INT,

         birthday DATE,

         hiredate DATE,

         address VARCHAR(100),

         dept_id INT,

         FOREIGN KEY (dept_id) REFERENCES t_department(did),

         FOREIGN KEY (job_id) REFERENCES t_job(job_id)

);

INSERT  INTO `t_employee`(`eid`,`ename`,`gender`,`card_id`,`tel`,`job_id`,`mid`,`birthday`,`hiredate`,`address`,`dept_id`)

 VALUES (1,’孙红雷’,’男’,’123456789012345678′,’12345678901′,1,NULL,’1990-01-01′,’2015-01-01′,’白庙’,1),

 (2,’张亮’,’男’,’123456789012345677′,’12345678902′,2,NULL,’1990-01-02′,’2015-01-02′,’天通苑北’,1),

 (3,’鹿晗’,’男’,’123456789012345676′,’12345678903′,3,NULL,’1990-01-03′,’2015-01-03′,’北苑’,1),

 (4,’邓超’,’男’,’123456789012345675′,’12345678904′,2,NULL,’1990-01-04′,’2015-01-04′,’和谐家园’,1),

 (5,’孙俪’,’女’,’123456789012345674′,’12345678905′,3,NULL,’1990-01-05′,’2015-01-05′,’霍营’,1),

 (6,’Angelababy’,’女’,’123456789012345673′,’12345678906′,4,NULL,’1990-01-06′,’2015-01-06′,’回龙观’,2);

CREATE TABLE t_salary(

         eid INT PRIMARY KEY,

         basic_salary DECIMAL(10,2),

         performance_salary DECIMAL(10,2),

         commission_pct DECIMAL(10,2),

         deduct_wages DECIMAL(10,2),

         FOREIGN KEY (eid) REFERENCES t_employee(eid)

);

INSERT  INTO `t_salary`(`eid`,`basic_salary`,`performance_salary`,`commission_pct`,`deduct_wages`)

VALUES (1,’12000.00′,’6000.00′,’0.40′,’0.00′),

(2,’9000.00′,’5000.00′,’0.20′,NULL),

(3,’11000.00′,’8000.00′,NULL,NULL),

(4,’13000.00′,’5000.00′,NULL,NULL),

(5,’8000.00′,’8000.00′,’0.30′,NULL),

(6,’15000.00′,’6000.00′,NULL,NULL);

文章转载链接:http://www.atguigu.com/jsfx/13979.html

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值