mysql inset update_mysql数据库insert和update操作

SQL语句分类:

a.DDL 数据定义语言  create  drop  alter

b.DML 数据操作语言  select  insert  update  delete

b.DCL 数据控制语言  grant   revoke

c.TCL 事务控制语言  transaction(begin)   commit   rollback

创建一个库:

mysql> create database dba;

进入数据:

mysql> use dba;

创建一张表:

create table user(id int not null auto_increment,

name varchar(8),

birthday datetime,

constraint pk__person primary key(id));

查看表结构:

mysql> desc user;

+----------+------------+------+-----+---------+----------------+

| Field    | Type       | Null | Key | Default | Extra          |

+----------+------------+------+-----+---------+----------------+

| id       | int(11)    | NO   | PRI | NULL    | auto_increment |

| name     | varchar(8) | YES  |     | NULL    |                |

| birthday | datetime   | YES  |     | NULL    |                |

+----------+------------+------+-----+---------+----------------+

3 rows in set (0.01 sec)

插入语句:

mysql> insert into user(id,name,birthday) values(1,'lisi','1991-04-26');

Query OK, 1 row affected (0.01 sec)

查询表内容:

mysql> select * from user;

+----+------+---------------------+

| id | name | birthday            |

+----+------+---------------------+

|  1 | lisi | 1991-04-26 00:00:00 |

+----+------+---------------------+

1 row in set (0.00 sec)

AUTO_INCREMENT说明:

(1)如果把一个NULL插入到一个AUTO_INCREMENT数据列里去,MySQL将自动生成下一个序列编号。编号从1开始,并1为基数递增。

(2)把0插入AUTO_INCREMENT数据列的效果与插入NULL值一样。但不建议这样做,还是以插入NULL值为好。

(3)当插入记录时,没有为AUTO_INCREMENT明确指定值,则等同插入NULL值。

(4)当插入记录时,如果为AUTO_INCREMENT数据列明确指定了一个数值,则会出现两种情况,情况一,如果插入的值与已有的编号重复,则会出现出错信息,因为AUTO_INCREMENT数据列的值必须是唯一的;情况二,如果插入的值大于已编号的值,则会把该数据插入到数据列中,并使在下一个编号将从这个新值开始递增。也就是说,可以跳过一些编号。

(5)如果用UPDATE命令更新自增列,如果列值与已有的值重复,则会出错。如果大于已有值,则下一个编号从该值开始递增。

创建表的语句(id int not null auto_increment)。

mysql> insert into user(id,name,birthday) values(null,'zhangsan','1992-04-26');

Query OK, 1 row affected (0.02 sec)

mysql> select * from user;

+----+----------+---------------------+

| id | name     | birthday            |

+----+----------+---------------------+

|  1 | lisi     | 1991-04-26 00:00:00 |

|  2 | zhangsan | 1992-04-26 00:00:00 |

+----+----------+---------------------+

2 rows in set (0.00 sec)

如果省去id这一列,insert数据发现也是成功的.

mysql> insert into user(name,birthday) values('wangwu','1993-07-26');

Query OK, 1 row affected (0.02 sec)

mysql> select * from user;

+----+----------+---------------------+

| id | name     | birthday            |

+----+----------+---------------------+

|  1 | lisi     | 1991-04-26 00:00:00 |

|  2 | zhangsan | 1992-04-26 00:00:00 |

|  3 | wangwu   | 1993-07-26 00:00:00 |

+----+----------+---------------------+

3 rows in set (0.00 sec)

mysql> desc user;

+----------+------------+------+-----+---------+----------------+

| Field    | Type       | Null | Key | Default | Extra          |

+----------+------------+------+-----+---------+----------------+

| id       | int(11)    | NO   | PRI | NULL    | auto_increment |

| name     | varchar(8) | YES  |     | NULL    |                |

| birthday | datetime   | YES  |     | NULL    |                |

+----------+------------+------+-----+---------+----------------+

3 rows in set (0.00 sec)

注意:插入数据时,数字可以不加单引号(''),但字符串必须加单引号('').

_________________________________________________________________________________________________________________

mysql update用法:

update语法:

update 表名 set 列1=新值,列2=新值 where expr.

mysql> select * from user;

+----+----------+---------------------+

| id | name     | birthday            |

+----+----------+---------------------+

|  1 | lisi     | 1991-04-26 00:00:00 |

|  2 | zhangsan | 1992-04-26 00:00:00 |

|  3 | wangwu   | 1993-07-26 00:00:00 |

+----+----------+---------------------+

3 rows in set (0.00 sec)

mysql> update user set birthday = '2018-1-15' where name='zhangsan';

Query OK, 1 row affected (0.02 sec)

Rows matched: 1  Changed: 1  Warnings: 0

mysql> select * from user;

+----+----------+---------------------+

| id | name     | birthday            |

+----+----------+---------------------+

|  1 | lisi     | 1991-04-26 00:00:00 |

|  2 | zhangsan | 2018-01-15 00:00:00 |

|  3 | wangwu   | 1993-07-26 00:00:00 |

+----+----------+---------------------+

3 rows in set (0.00 sec)

mysql> update user set name='lucy' where birthday='1993-07-26';

Query OK, 1 row affected (0.00 sec)

Rows matched: 1  Changed: 1  Warnings: 0

mysql> select * from user;

+----+----------+---------------------+

| id | name     | birthday            |

+----+----------+---------------------+

|  1 | lisi     | 1991-04-26 00:00:00 |

|  2 | zhangsan | 2018-01-15 00:00:00 |

|  3 | lucy     | 1993-07-26 00:00:00 |

+----+----------+---------------------+

3 rows in set (0.00 sec)

update操作多个列的数据时,中间使用逗号','分割开.

mysql> update user set name='saluya',birthday='2010-01-11' where id=2;

Query OK, 1 row affected (0.01 sec)

Rows matched: 1  Changed: 1  Warnings: 0

mysql> select * from user;

+----+--------+---------------------+

| id | name   | birthday            |

+----+--------+---------------------+

|  1 | lisi   | 1991-04-26 00:00:00 |

|  2 | saluya | 2010-01-11 00:00:00 |

|  3 | lucy   | 1993-07-26 00:00:00 |

+----+--------+---------------------+

3 rows in set (0.00 sec)

当update操作并没有匹配到where条件时,update操作不会报错.

mysql> update user set birthday='1991-06-25' where name='wangtian';

Query OK, 0 rows affected (0.00 sec)

Rows matched: 0  Changed: 0  Warnings: 0

mysql> select * from user;

+----+----------+---------------------+

| id | name     | birthday            |

+----+----------+---------------------+

|  1 | lisi     | 1991-04-26 00:00:00 |

|  2 | zhangsan | 2018-01-15 00:00:00 |

|  3 | wangwu   | 1993-07-26 00:00:00 |

+----+----------+---------------------+

3 rows in set (0.00 sec)

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值