mysql增删改查

本文详细介绍了MySQL中的数据操作,包括插入数据、删除数据(delete、truncate的区别及与drop的异同)、更新数据的基础语法,以及查询操作如简单查询、过滤重复数据、条件查询(where、like、in等)和多表连接查询(内连接、外连接)。此外,还讲解了子查询和查询语句的执行顺序。
摘要由CSDN通过智能技术生成

目录

1.插入数据 insert

2.删除数据 delete

2.1delete 基本语法

2.2删除指定信息的数据

2.3删除所有数据

补充:

2.4delte,truncate的区别

2.5truncate,delete,drop的异同点:

3.修改数据 update

3.1 update基础语法

4.简单查询

5.过滤查询(去除重复数据)

6.条件查询 where

6.1 使用关系运算符查询

6.2 使用in键字查询

6.3 使用between and关键字查询

6.4 使用空值查询

6.5 使用and关键字查询

6.6 使用or关键字查询

6.7 使用like关键字查询

6.7.1 普通字符查询

6.7.2 使用通配符查询 (模糊查询)

6.8 使用limit限制查询结果的数量 、分页

6.9 使用group by进行分组查询

6.10 使用order by对查询结果排序

7. 关联查询

8. 多表连接查询

8.1 内连接查询 inner join

8.2 外连接查询(左外连接,右外连接)

8.2.1 左连接查询 left join

8.2.2 右连接查询 right join

9. 子查询

查询小结


1.插入数据 insert

语法:

-- 插入一条记录
insert into 表名 value(值1,值2,值3,值4.....);
insert into 表名 (字段1,字段2,字段3,字段4...) value(值1,值2,值3,值4.....);
-- 同时插入多条记录
insert into 表名 values(值1,值2,值3,值4.....);
insert into 表名 (字段1,字段2,字段3,字段4...) values(值1,值2,值3,值4.....);

2.删除数据 delete

mysql通过delete来删除表中的数据

2.1delete 基本语法

在该语法中:表名用于指定要执行删除操作的表;[WHERE 条件表达式]为可选参数用于指定删除的条件。

语法:

delete from  表名 where 条件表达式 

2.2删除指定信息的数据

-- 删除表中指定的数据
delete from stu where id=1; 
delete from stu where age = 18;

2.3删除所有数据

 -- 删除表中所有数据
delete from stu where true ;  delete from stu;
delete from stu where 1=1;

补充:

想要删除表中的重复数据,只保留其中的一条。

方法(方法不唯一):再建立一个结构相同的表,过滤查询表中所有字段信息插入到新建的表中,删除原来的表,重命名新建的表名为原来的表的名称

-- 代码演示
create table xxx(
id int ,
name varchar(30),
age tinyint

);

insert into xxx value(1,'李四',90);
insert into xxx value(1,'李四',90);
insert into xxx value(1,'李四',90);
insert into xxx value(1,'李四',90);
-- 建立一个结构相同的表 `zzz`
create table zzz like xxx;
-- 过滤查询表中所有字段信息插入到新建的表`zzz`中
insert into zzz select distinct * from xxx; 
-- 删除原来的表
drop table xxx;
-- 把表明改为原来的表名 `xxx`
rename table zzz to xxx

2.4delte,truncate的区别


  1. truncate 在功能上与不带 where 子句的 delete 语句相同:二者均删除表中的全部行。但 truncate 比 delete 速度快,且使用的系统和事务日志资源少。

  2. delete 语句每次删除一行,并在事务日志中为所删除的每行记录一项。truncate 通过释放存储表数据所用的数据页来删除数据,并且只在事务日志中记录页的释放。

  3. truncate 删除表中的所有行,但表结构及其列、约束、索引等保持不变。新行标识所用的计数值重置为该列的种子。如果想保留标识计数值,请改用 delete。

  4. 对于由 foregin key 约束引用的表,不能使用truncate,而应使用不带 where 子句的 delete 语句。由于 truncate 不记录在日志中,所以它不能激活触发器。

  5. truncate 不能用于参与了索引视图的表

  6. delete 一条记录一条记录删除,删除所有的时候,效率低,但它灵活 可以加上条件 会触发删除触发器

  7. truncate 直接截断数据,auto_increment 恢复默认 , 不触发删除触发器, 也没有影响行,删除所有的时候,效率高,只能删除截断数据 


2.5truncate,delete,drop的异同点:

注意:这里说的delete是指不带where子句的delete语句

相同点:truncate和不带where子句的delete, 以及drop都会删除表内的数据

不同点:

  1. truncate和 delete只删除数据不删除表的结构(定义) drop语句将删除表的结构被依赖的约束(constrain),触发器(trigger),索引(index); 依赖于该表的存储过程/函数将保留,但是变为invalid状态.

  2. delete语句是dml,这个操作会放到rollback segement中,事务提交之后才生效;如果有相应的trigger,执行的时候将被触发. truncate,drop是ddl, 操作立即生效,原数据不放到rollback segment中,不能回滚. 操作不触发trigger.

  3. delete语句不影响表所占用的extent, 高水线(high w2atermark)保持原位置不动 显然drop语句将表所占用的空间全部释放 truncate 语句缺省情况下将空间释放到 minextents个 extent,除非使用reuse storage; truncate会将高水线复位(回到最开始).

4.速度,一般来说: drop> truncate > delete

3.修改数据 update

3.1 update基础语法

语法:

update 表名 set 字段1=新值1,字段2=新值2,... where 条件表达式;
-- 例
update stu set age=20,gender='女', where name = '李四'
  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
C# VS2012 86系统 mysql-5.5.27-win32 功能:利用动软代码生成器 从 数据库表或者视图中生成 的三层结构代码 实现 数据增删改查。 如果可以,请下载资源中 修改 的动软代码生成器 C#模板生成 1、由于之前使用 动软生成 java 网页源码,比较成功,此处编写C#程序时沿用,感觉更加适合。 2、直接调用动软的相关dll和生成的三层代码,可以较快的实现增删改查操作。 3、由于一些dll版本的问题及动软生成器自身的一些不完善,产生了一些问题并查找了挺久,所以把可以实现的版本发布出来共享。 前提: 使用的是 mysql数据库时才可能会出现以下问题 问题: 1、MySql.Data.dll 必须是5.6.1以上版本,否则会出现 “向信号量添加给定计数将导致其超出它的最大计数” 的问题。 2、动软代码生成时,必须增加该命名空间 using MySql.Data.MySqlClient; 3、动软代码必须修改 “工具”-“选项”弹出窗 后,点击 ”代码生成设置“-”字段类型映射“-”参数符号“中删除 mysql @,添加mysql ? 4、如果不修改3的设置,在增删改时 参数设置会失败。 5、mysql保存或者修改时,中文会出现乱码,这时必须 在DbHelperMySQL类的 连接字中增加Charset=utf8;即 protected static string connectionString = "Server=localhost;User Id=root;Password=root;Persist Security Info=True;Database=mnzfz;Charset=utf8;"; 6、如果要在局域网中远程访问,请 修改 mysql 权限:grant select,update,insert,delete on *.* to 'root'@'192.168.0.1' identified by "123456";
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值