mysql基本操作03——数据查询1

1.单表查询

1.1查询所有或指定字段

(1)查询所有字段

(2)查询指定字段,并改别名

1.2查询条件

查询条件操作符
比较=,<,>,!=,<=,>=,!<,!>
确定范围between and, not between and
确定集合in ,not in
字符匹配like ,not like
空值is null, is not null
多重条件and ,or

(1)比较大小

(2)between范围查询

(3)in集合查询

(4)like字符串匹配查询

通配符:“%”(代表任意长度字符串) 和“_”(代表任意单个字符串)

从表中找到姓王的

从表中找到姓王的,并且王后面带两字

(5)正则表达式查询

关键字regexp

(6)is null空值查询

(7)and,or的多条件查询

and要满足所有条件,or只要满足其中一项

1.3对查询结果排序

关键字ASC(默认)表示升序,DESC表示降序

1.4限定查询数量

位置偏移量从0开始

### 数据删除操作的方法 在 MySQL 中,可以通过多种方式执行数据删除操作。以下是几种常用的数据删除方法及其具体实现: #### 使用 `DELETE` 语句 这是最常见的删除数据的方式之一。通过指定条件来精确控制哪些记录被删除。例如,要删除表 `t_emp` 中 `DeptId` 大于 300 的所有记录,可以使用如下 SQL 语句[^2]: ```sql DELETE FROM t_emp WHERE DeptId > 300; ``` 此命令会从表 `t_emp` 中移除满足条件的所有行。 --- #### 使用 `TRUNCATE` 表 如果需要清空整个表中的所有数据而不保留任何记录,则可以使用 `TRUNCATE TABLE` 命令。这种方式比逐条删除效率更高,因为它不会触发单个行级事件(如外键约束或触发器)。需要注意的是,`TRUNCATE` 不支持带有外键约束的表[^1]。 ```sql TRUNCATE TABLE t_emp; ``` 该命令将快速清除表内的所有数据并重置自增计数器(如果有)。 --- #### 使用子查询进行复杂删除 当需要基于其他表的内容动态决定删除目标时,可利用子查询完成复杂的删除逻辑。例如,假设存在两个表 `t_dept` 和 `t_emp`,其中 `t_emp.DeptId` 是外键关联到 `t_dept.Id`,现在希望删除那些部门编号不存在于 `t_dept` 表中的员工记录,可以用以下语法: ```sql DELETE FROM t_emp WHERE DeptId NOT IN (SELECT Id FROM t_dept); ``` 这种形式适用于跨多个表之间的联动删除场景。 --- #### 设置自动清理机制 对于某些特定需求,比如定期清理过期日志或者冗余信息,还可以借助定时任务配合存储过程来自动化这一流程。例如,在 Linux 系统上配置 cronjob 调用脚本运行类似下面这样的 SQL 查询[^3]: ```sql CREATE EVENT IF NOT EXISTS cleanup_logs ON SCHEDULE EVERY 1 DAY DO DELETE FROM logs WHERE created_at < DATE_SUB(CURDATE(), INTERVAL 7 DAY); ``` 上述例子定义了一个每天触发一次的时间计划程序 (`EVENT`) ,用于删除超过七天的日志项。 --- ### 注意事项 无论采用哪种方法实施删除动作之前都应做好充分准备,尤其是涉及大规模生产环境下的敏感资料处理更需格外小心。建议先备份原始表格副本再做进一步改动;另外也可以启用事务功能以便出现问题能够回滚更改。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值