MySQL的增删查改

插入

这里写图片描述
这里写图片描述
*注意:第一种方式可以一次性插入多条记录,但是这种只能一次性插入一条记录。

修改

这里写图片描述
这里写图片描述
这里写图片描述

删除

这里写图片描述

查询

这里写图片描述

这里写图片描述
这里写图片描述
这里写图片描述
这里写图片描述
这里写图片描述
这里写图片描述
这里写图片描述
*注意:ASC表示升序排列,DESC表示降序,默认为ASC。
这里写图片描述

这里写图片描述
*注意:select sex from users group by 1;表示按照select后面出现的第一个列名,然后依次类推
这里写图片描述
这里写图片描述
*注意:第一条语句出错是因为,having 后面的那一列的列名必须出现在select后面。或者加入聚合函数,如下面的count()……
这里写图片描述
这里写图片描述
这里写图片描述
*注意:order by 后面可以接多个排序条件,如果第一个条件满足的话就不会考虑第二个条件,如果不满足再按照第二个条件排列。像上面的例子,age有相同的,但是id不同,所以第二个条件就生效了。
这里写图片描述
这里写图片描述
注意:select from user limit 3,2; 其中第一个3表示从第三索引开始,2表示开始取两个数据,注意,这里列中数据和数组类似,是从0开始编号的。
这里写图片描述
*注意:排序之后,就算ID是乱的,但是还是按照排序的顺序来编号的。

下面我们,进行一个有趣的操作,把从user查询到的值插入到user1中
这里写图片描述

这里写图片描述
*这里是设置主键和主键自加的过程,至于原因在下面会解释;
这里写图片描述
这里写图片描述
*这里是user1和user的列信息,很明显两个的列数肯定不相同;
这里写图片描述
*这里是user1和user里面已经插入的数据信息;
这里写图片描述
*重头戏来了,很明显,第一次插入失败了,失败的原因是因为clientname没有设置默认值,而前面的主键也是一样没有设置默认值,所以不能插入,因为两个表中的列是不同的,所以你想要插入age这个数据,必须要把其他的设置有默认值,才可以插入。

### MySQL 增删查改 (CRUD) 语句详解及示例 以下是关于 MySQL 数据库中增删查改操作的详细介绍和代码示例: --- #### 1. **创建表** 在进行任何 CRUD 操作之前,通常需要先创建一张表。以下是一个简单的建表语句: ```sql CREATE TABLE employees ( id INT AUTO_INCREMENT PRIMARY KEY, first_name VARCHAR(50), last_name VARCHAR(50), age INT, department_id INT, salary DECIMAL(10, 2) ); ``` 此语句定义了一张名为 `employees` 的表,并设置了字段类型、长度以及主键自增等功能[^1]。 --- #### 2. **插入数据 (Create)** 用于向表中添加新的记录。基本语法如下: ```sql INSERT INTO table_name (column1, column2, ..., columnN) VALUES (value1, value2, ..., valueN); ``` **示例:** 向 `employees` 表中插入一条员工信息: ```sql INSERT INTO employees (first_name, last_name, age, department_id, salary) VALUES ('John', 'Doe', 30, 1, 5000.00); ``` 如果省略列名,默认会按照表结构顺序填充值,但需要注意提供完整的值列表[^2]。 --- #### 3. **查询数据 (Read)** 用于检索存储在数据库中的数据。可以通过条件过滤来获取所需的结果集。 ##### (1)简单查询 ```sql SELECT * FROM employees; ``` ##### (2)带条件查询 通过 `WHERE` 子句筛选符合条件的数据。 ```sql SELECT first_name, last_name, salary FROM employees WHERE age > 25 AND department_id = 1; ``` 注意:应避免使用通配符 `*` 来选取所有列,而应该明确指定所需的列名称以提高性能并减少不必要的计算负担[^1]。 ##### (3)复杂逻辑查询 当涉及多个条件组合时,可以借助括号调整优先级。 ```sql SELECT name, chinese, math, english FROM exam WHERE (chinese > 80 OR math > 70) AND english > 70; ``` 这里 `( )` 确保了运算次序正确无误[^4]。 --- #### 4. **更新数据 (Update)** 允许修改现有记录的一个或多个字段值。其一般形式为: ```sql UPDATE table_name SET column1=value1 [, column2=value2,...] [WHERE condition]; ``` **注意事项:** - 若未附加 `WHERE` 子句,则整张表格内的对应项都会受到影响; - 可选地加入 `ORDER BY` 排序规则或者限定影响范围大小 via `LIMIT`. **实例演示:** 提升部门编号等于2的所有成员薪水百分之十: ```sql UPDATE employees SET salary = salary * 1.10 WHERE department_id = 2; ``` 另外还可以一次性变更多项属性值: ```sql UPDATE employees SET first_name='Jane', last_name='Smith' WHERE id=5; ``` 上述例子展示了如何把ID为5的那个雇员的名字改成“Jane Smith”。同时运用到了逗号分隔的不同赋值表达式[^3]。 --- #### 5. **删除数据 (Delete)** 用来移除不再需要的信息单元。标准格式如下所示: ```sql DELETE FROM table_name [WHERE condition]; ``` 警告事项:务必小心对待没有约束条件的情况因为这可能导致整个集合被清空! **实际应用案例:** 淘汰掉那些年龄小于21岁的职员档案: ```sql DELETE FROM employees WHERE age < 21; ``` 为了安全起见,在执行大规模清理动作前最好先行验证受影响行数: ```sql SELECT COUNT(*) AS count_to_delete FROM employees WHERE age < 21; ``` 然后再依据返回的数量决定是否继续下一步骤。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值