mysql_数据记录的增删改

1.insert语句

方式一:全写
语法:insert into 表名 (列名,列名,列名…) values (值,值,值…);
–如果主键是自动增长,可以直接书写null。

注意事项

1、值与列一一对应。有多少个列,就需要写多少个值。如果某一个列没有值。可以使用null。表示插入空。
2、值的数据类型,与列被定义的数据类型要相匹配。并且值的长度。不能够超多定义的列的长度。
3、字符串:插入字符类型的数据,必须写单引号。在mysql中,使用单引号表示字符串。
4、date 时间类型的数据也可以直接使用单引号表示:
‘yyyyMMdd’ ,’yyyy-MM-dd’,’yyyy/MM/dd’ 。
5、在插入数据的时候, 如果某些列可以为null,
或者是自动增长的列, 或者有默认值的, 在插入的时候可以省略.
6、如果给表中的所有列插入数据, 这时可以省略表后面的列名,
直接写values.

方式二:省略部分列
可以省略部分列名。某一列 有默认值,或者允许为空,才可以省略。 主键是自增长的认为是有默认值的。也可以省略

方式三:省略所有的列
语法 : insert into 表名 values(值,值,值,值);
1、表中有多少列,就有多个值。
2、按照表的结构,列和值去对应。

整理:如果主键:是自增长。不需要人工赋值(可以给值null)。数据库会按照自己的算法,为主键填充值。通常遇到主键自增长,人工赋值的时候,赋值null。mysql会自己把null替换成新的值

2.update 语句

语法: update 表名 set 列名=值,列名=值… [ where条件语句 ];

注意事项:
1、如果不加条件,将会修改某一列的所有值。
2、一般修改数据时,都需要增加条件。 多个列使用逗号隔开。

【示例】
将姓名为李四的人的年龄改为30,地址改为航都路18号
在这里插入图片描述

【示例2】
将王五的年龄在原基础上增加2岁。
在这里插入图片描述

3.delete语句

语法:delete from 表名 [where条件语句]
删除满足条件的行的数据。
delete是删除行的数据。
注意:如果没有where,删除表中的所有的记录。

【示例】
删除表中所有记录。
在这里插入图片描述

4.Truncate 语句

语法 : truncate table 表名:
先删除表,再创建表,就等于将数据全部删除了。
在这里插入图片描述

问题:

1.delete删除表中的数据时没有加where 条件,会删除表中的所有数据,它与truncate 有什么区别?

  • 删除过程不同
    • truncate 删除数据,过程先将整个表删除,再重新创建
    • delete 删除数据,逐行删除记录
  • truncate 效率要好于 delete
  • 语言定义不同truncate 属于DDL ,delete 属于DML

DELETE
 ・DML语言
 ・可以回退(可以将数据找回来)
 ・可以有条件的删除

TRUNCATE TABLE
 ・DDL语言
 ・无法回退(不可以将数据找回来)
 ・默认所有的表内容都删除
 ・删除速度比delete快。

事务管理只能对DML 有效 ,被事务管理的SQL语句可以回滚到SQL执行前状态。 事务:逻辑上的一组(一条或者多条sql语句)操作。称之为事务。这组sql语句,要么都成功,要么都失败

5.事务入门

mysql命令

start TRANSACTION;                                       #开启事务
insert into primarykey_demo values(NULL,'tom',17,1);     #插入数据
select * from primarykey_demo;                           #查询,有记录
rollback                                                 #回滚,回到开启事务前
select * from primarykey_demo;                           #再次查询,已经无记录了

猜你喜欢

转载自blog.csdn.net/qq_24099547/article/details/84076006