MySQL 记录的操作

记录的操作一般指增删改查,也就是 CRUD, 即:Create(增加), Retrieve(读取), Update(更新), Delete(删除)。

首先建一张 users 表,如下:

mysql> CREATE TABLE users(
    -> id SMALLINT UNSIGNED PRIMARY KEY AUTO_INCREMENT,
    -> username VARCHAR(20) NOT NULL,
    -> password VARCHAR(32) NOT NULL,
    -> age TINYINT UNSIGNED NOT NULL DEFAULT 10,
    -> gender BOOLEAN
    -> );

结构图:
6

1. 插入记录

关键字:INSERT
语法:

INSERT [INTO] tbl_name [(col_name,...)] {VALUES|VALUE} ({expr|DEFAULT,...}),(...),...
  1. 第一种方式:
    mysql> INSERT users VALUES(NULL, ‘Tom’, ‘123’, 25, 1);
    若主键写为 null(可以写入null),则默认从1开始。如图所示:
    7
    主键也可设置为DEFAULT,语句内部也能写表达式,例如:
    mysql> INSERT users VALUES(DEFAULT, ‘Jack’, ‘234’, 2*6+7, 2);
    若不设置,则用默认值:mysql> INSERT users VALUES(NULL, ‘Jerry’, ‘123’, DEFAULT, 1);
    可一次插入多条记录,中间用逗号隔开,例如:
    mysql> INSERT users VALUES(default, ‘A’, ‘234’, 29, 2), (DEFAULT, ‘B’, ‘345’, 12, 1);

  2. 第二种方式:使用 SET
    例如: mysql> INSERT users SET name=’C’, password=’179’;
    8

  3. 第三种方法:INSERT … SELECT

INSERT [INTO] tbl_name [(col_name,...)] SELECT ...

这里用到了子查询。例如:
mysql> DESC tdb_goods_cates;
1

mysql> INSERT tdb_goods_cates (cate_name) SELECT goods_cate FROM tdb_goods GROUP BY goods_cate;

2

效果如图:

2. 更新记录

关键字:UPDATE
有两种方式:

  1. 更新所有数据
    例如,更新所有的 age:mysql> UPDATE users SET age = age + 2;
    这样做所有的 age 都更新了。
  2. 更新指定条件数据:
    例如:id 为偶数的 gender 设置为1
    mysql> UPDATE users SET gender = 1 WHERE id % 2 = 0;

3. 删除记录

关键字:DELETE
例如,删除 id 为 3 的记录:mysql> DELETE FROM users WHERE id = 3;

注意:此时若再插入数据,则 id 继续增加,而不是补充已删除的那个 id

4. 查询记录

关键字:SELECT
有条件查找:
mysql> SELECT username, id FROM users;
9
注:查找顺序就是显示的顺序,可以不按表的顺序。

可以给查找出来的字段赋予别名,例如: mysql> SELECT username AS name, password AS pw FROM users;
结果如下:
10
注:AS 可省略,为防止混淆,建议不省略。

4.1 WHERE

条件过滤记录。

4.2 GROUP BY

对查询结果进行分组。

例如:
原表:
11

分组后:mysql> SELECT gender FROM users GROUP BY gender;
12

或者:mysql> SELECT gender FROM users GROUP BY 1;
注:1表示出现的第一个字段,这里就是 gender, 了解即可,不建议使用。

4.3 HAVING

HAVING 后要么是聚合函数,要么前面字段中有,否则报错。
例如: mysql> SELECT gender, age FROM users GROUP BY 1 HAVING age > 20;
13

ORDER BY :对结果进行排序
ASC: 升序(默认)
DESC: 降序

例如:以 id 降序排列 mysql> SELECT * FROM users ORDER BY id DESC;

多个参数排序:
例如,先按 gender升序排列,再按 id 升序排列: mysql> SELECT * FROM users ORDER BY gender, id;
16

4.4 LIMIT

限制查找到的记录数目。
例如: mysql> SELECT * FROM users LIMIT 2;
17

例如:
mysql> SELECT * FROM users LIMIT 3,2; 【LIMIT参数:起始位,个数】
18

注意:这里的编号是从0开始的,跟 id 神马的没关系!

将查询结果写入另一个表中:
原来的表:
19

新建一个 test 表:

mysql> CREATE TABLE test(
    -> id TINYINT UNSIGNED PRIMARY KEY AUTO_INCREMENT,
    -> name VARCHAR(20)
    -> );

将 users 表按条件查询的内容写入到 test 中:

mysql> INSERT test(name) SELECT username FROM users WHERE age > 30;

结果:
20

慕课网 MySQL学习笔记

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值