【MySQL】 基本查询(上)

06-01 1085阅读

欢迎拜访:雾里看山-CSDN博客
本篇主题:【MySQL】 基本查询(上)
发布时间:2025.2.14
隶属专栏:MySQL

【MySQL】 基本查询(上)
CRUD : Create(创建), Retrieve(读取),Update(更新),Delete(删除)

目录

  • Create
    • 基本知识
    • 直接插入
      • 单行数据,指定列插入
      • 单行数据,全列插入
      • 多行数据,指定列插入
      • 多行数据,全列插入
    • 插入替换
      • 主键或者唯一键冲突
      • 插入时更新
        • 通过 MySQL 函数获取受到影响的数据行数
      • 插入时替换
  • Retrieve
    • 基本知识
    • select 列
      • 全列查询
      • 指定列进行查询
      • 查询字段为表达式
      • 为查询结果指定别名
      • 结果去重
    • where条件
      • 比较运算符
      • 逻辑运算符
      • 案例
    • 结果排序
      • 语法:
      • 案例:
    • 筛选分页结果
      • 语法
      • 案例

Create

基本知识

语法:

INSERT [INTO] table_name
	[(column [, column] ...)]
	VALUES (value_list) [, (value_list)] ...

案例:

mysql> create table students(
    -> id int unsigned primary key auto_increment,
    -> sn int not null unique key,
    -> name varchar(20) not null,
    -> qq varchar(32) unique key
    -> );
Query OK, 0 rows affected (0.02 sec)
mysql> desc students;
+-------+------------------+------+-----+---------+----------------+
| Field | Type             | Null | Key | Default | Extra          |
+-------+------------------+------+-----+---------+----------------+
| id    | int(10) unsigned | NO   | PRI | NULL    | auto_increment |
| sn    | int(11)          | NO   | UNI | NULL    |                |
| name  | varchar(20)      | NO   |     | NULL    |                |
| qq    | varchar(32)      | YES  | UNI | NULL    |                |
+-------+------------------+------+-----+---------+----------------+
4 rows in set (0.00 sec)

直接插入

单行数据,指定列插入

into 可以省略,但是建议带上。

mysql> insert into students (sn, name, qq) values (123, '张飞', '4567890');
Query OK, 1 row affected (0.00 sec)
mysql> select * from students;
+----+-----+--------+---------+
| id | sn  | name   | qq      |
+----+-----+--------+---------+
|  1 | 123 | 张飞   | 4567890 |
+----+-----+--------+---------+
1 row in set (0.00 sec)

单行数据,全列插入

into 可以省略,但是建议带上。

mysql> insert into students values (2, 124, '刘备', '4567891');
Query OK, 1 row affected (0.00 sec)
mysql> select * from students;
+----+-----+--------+---------+
| id | sn  | name   | qq      |
+----+-----+--------+---------+
|  1 | 123 | 张飞   | 4567890 |
|  2 | 124 | 刘备   | 4567891 |
+----+-----+--------+---------+
2 rows in set (0.00 sec)

多行数据,指定列插入

每组数据之间用,(英文符号)隔开

mysql> insert into students (sn, name, qq) values (125, '关羽', '4562890'),(126, '诸葛亮', '423613719'),(127, '赵云', '3728140');
Query OK, 3 rows affected (0.01 sec)
Records: 3  Duplicates: 0  Warnings: 0
mysql> select * from students;
+----+-----+-----------+-----------+
| id | sn  | name      | qq        |
+----+-----+-----------+-----------+
|  1 | 123 | 张飞      | 4567890   |
|  2 | 124 | 刘备      | 4567891   |
|  3 | 125 | 关羽      | 4562890   |
|  4 | 126 | 诸葛亮    | 423613719 |
|  5 | 127 | 赵云      | 3728140   |
+----+-----+-----------+-----------+
5 rows in set (0.00 sec)

多行数据,全列插入

每组数据之间用,(英文符号)隔开

mysql> insert into students values (10, 128, '曹操', '45637891'),(11, 129, '许攸','14723193'),(12, 130, '许褚','4723012');
Query OK, 3 rows affected (0.00 sec)
Records: 3  Duplicates: 0  Warnings: 0
mysql> select * from students;
+----+-----+-----------+-----------+
| id | sn  | name      | qq        |
+----+-----+-----------+-----------+
|  1 | 123 | 张飞      | 4567890   |
|  2 | 124 | 刘备      | 4567891   |
|  3 | 125 | 关羽      | 4562890   |
|  4 | 126 | 诸葛亮    | 423613719 |
|  5 | 127 | 赵云      | 3728140   |
| 10 | 128 | 曹操      | 45637891  |
| 11 | 129 | 许攸      | 14723193  |
| 12 | 130 | 许褚      | 4723012   |
+----+-----+-----------+-----------+
8 rows in set (0.00 sec)

插入替换

主键或者唯一键冲突

-- 主键冲突
mysql> insert into students values (12, 133, '荀彧', '45167891');
ERROR 1062 (23000): Duplicate entry '12' for key 'PRIMARY'
-- 唯一键冲突
mysql> insert into students values (14, 132, '荀彧', '45167891');
ERROR 1062 (23000): Duplicate entry '132' for key 'sn'

插入时更新

语法:

INSERT ... ON DUPLICATE KEY UPDATE

案例:

mysql> insert into students values (11, 131, 'xuyou', '112121') on duplicate key update sn=131, name='xuyou', qq='112121';
Query OK, 2 rows affected (0.00 sec)
mysql> insert into students values (13, 132, '貂蝉', '1121211') on duplicate key update sn=132, name='貂蝉', qq='1121211';
Query OK, 1 row affected (0.01 sec)
mysql> insert into students values (13, 132, '貂蝉', '1121211') on duplicate
免责声明:我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自自研大数据AI进行生成,内容摘自(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供学习参考,不准确地方联系删除处理! 图片声明:本站部分配图来自人工智能系统AI生成,觅知网授权图片,PxHere摄影无版权图库和百度,360,搜狗等多加搜索引擎自动关键词搜索配图,如有侵权的图片,请第一时间联系我们。

目录[+]

取消
微信二维码
微信二维码
支付宝二维码