当前位置: 首页 > news >正文

MySQL数据库——基本查询(Create)

CRUD:Create(创建)Retrieve(读取)Update(更新)Delete(删除)

1.Create

①单行数据+全列插入

insert [into] table_name [(colume[,colume]……)] values (value_list) [,(value_list)]……
value_list:value,[,value]……
mysql> create table stud(-> id int unsigned primary key auto_increment,-> sn int unsigned unique key,-> name varchar(20) not null,-> qq varchar(32) unique key-> );
Query OK, 0 rows affected (0.02 sec)mysql> desc stud;
+-------+------------------+------+-----+---------+----------------+
| Field | Type             | Null | Key | Default | Extra          |
+-------+------------------+------+-----+---------+----------------+
| id    | int(10) unsigned | NO   | PRI | NULL    | auto_increment |
| sn    | int(10) unsigned | YES  | UNI | NULL    |                |
| name  | varchar(20)      | NO   |     | NULL    |                |
| qq    | varchar(32)      | YES  | UNI | NULL    |                |
+-------+------------------+------+-----+---------+----------------+
4 rows in set (0.00 sec)-- id自增,可以忽略不写
mysql> insert into stud (sn,name,qq) values (123,'张飞','1234');
Query OK, 1 row affected (0.00 sec)mysql> select* from stud;
+----+------+--------+------+
| id | sn   | name   | qq   |
+----+------+--------+------+
|  1 |  123 | 张飞   | 1234 |
+----+------+--------+------+
1 row in set (0.00 sec)-- 也可以不指定列进行全列插入
mysql> insert into stud values (10,124,'关羽','1236');
Query OK, 1 row affected (0.00 sec)mysql> select* from stud;
+----+------+--------+------+
| id | sn   | name   | qq   |
+----+------+--------+------+
|  1 |  123 | 张飞   | 1234 |
| 10 |  124 | 关羽   | 1236 |
+----+------+--------+------+
2 rows in set (0.00 sec)-- 也可以省略into
mysql> insert stud values (11,125,'刘备','1238');
Query OK, 1 row affected (0.01 sec)mysql> select* from stud;
+----+------+--------+------+
| id | sn   | name   | qq   |
+----+------+--------+------+
|  1 |  123 | 张飞   | 1234 |
| 10 |  124 | 关羽   | 1236 |
| 11 |  125 | 刘备   | 1238 |
+----+------+--------+------+
3 rows in set (0.00 sec)

②多行数据+指定列插入

-- 多行插入
mysql> insert stud values (12,126,'曹操','1231'),(13,127,'许攸','1233');
Query OK, 2 rows affected (0.01 sec)
Records: 2  Duplicates: 0  Warnings: 0mysql> select* from stud;
+----+------+--------+------+
| id | sn   | name   | qq   |
+----+------+--------+------+
|  1 |  123 | 张飞   | 1234 |
| 10 |  124 | 关羽   | 1236 |
| 11 |  125 | 刘备   | 1238 |
| 12 |  126 | 曹操   | 1231 |
| 13 |  127 | 许攸   | 1233 |
+----+------+--------+------+
5 rows in set (0.00 sec)-- 指定列进行多行插入
mysql> insert stud (sn,name,qq) values (128,'孙权','1235'),(129,'诸葛亮','1232');
Query OK, 2 rows affected (0.00 sec)
Records: 2  Duplicates: 0  Warnings: 0mysql> select* from stud;
+----+------+-----------+------+
| id | sn   | name      | qq   |
+----+------+-----------+------+
|  1 |  123 | 张飞      | 1234 |
| 10 |  124 | 关羽      | 1236 |
| 11 |  125 | 刘备      | 1238 |
| 12 |  126 | 曹操      | 1231 |
| 13 |  127 | 许攸      | 1233 |
| 14 |  128 | 孙权      | 1235 |
| 15 |  129 | 诸葛亮    | 1232 |
+----+------+-----------+------+
7 rows in set (0.00 sec)

③插入否则更新

如果由于主键或者唯一键对应的值已经存在而导致插入失败,可以选择进行同步更新操作,即将原数据不一样的值替换为自己要改的

mysql> insert [into] stud values (10,130,'lvbu','4321') 
on duplicate key update sn=130,name='lvbu',qq='4321';
-- 主键冲突
mysql> insert stud values (10,130,'lvbu','4321');
ERROR 1062 (23000): Duplicate entry '10' for key 'PRIMARY'
-- 唯一键冲突
mysql> insert stud values (16,124,'lvbu','4321');
ERROR 1062 (23000): Duplicate entry '124' for key 'sn'
-- 更新
mysql> insert stud values (10,130,'lvbu','4321') on duplicate key update sn=130,name='lvbu',qq='4321';
Query OK, 2 rows affected (0.00 sec)mysql> select * from stud;
+----+------+-----------+------+
| id | sn   | name      | qq   |
+----+------+-----------+------+
|  1 |  123 | 张飞      | 1234 |
| 10 |  130 | lvbu      | 4321 |
| 11 |  125 | 刘备      | 1238 |
| 12 |  126 | 曹操      | 1231 |
| 13 |  127 | 许攸      | 1233 |
| 14 |  128 | 孙权      | 1235 |
| 15 |  129 | 诸葛亮    | 1232 |
+----+------+-----------+------+
7 rows in set (0.00 sec)

影响的数据行数

-- 此时表中没有数据,直接插入,qq=1111,影响一行数据
mysql> insert stud values (16,131,'貂蝉','1111') on duplicate key update sn=131,name='貂蝉',qq='1122';
Query OK, 1 row affected (0.00 sec)-- 此时表中已有id=16,数据冲突,所以更新,数据qq变为1122,影响两行数据
mysql> insert stud values (16,131,'貂蝉','1111') on duplicate key update sn=131,name='貂蝉',qq='1122';
Query OK, 2 rows affected (0.00 sec)-- 此时表中有冲突数据,但冲突数据的值和 update 的值相等,不影响数据
mysql> insert stud values (16,131,'貂蝉','1111') on duplicate key update sn=131,name='貂蝉',qq='1122';
Query OK, 0 rows affected (0.00 sec)mysql> select * from stud;
+----+------+-----------+------+
| id | sn   | name      | qq   |
+----+------+-----------+------+
|  1 |  123 | 张飞      | 1234 |
| 10 |  130 | lvbu      | 4321 |
| 11 |  125 | 刘备      | 1238 |
| 12 |  126 | 曹操      | 1231 |
| 13 |  127 | 许攸      | 1233 |
| 14 |  128 | 孙权      | 1235 |
| 15 |  129 | 诸葛亮    | 1232 |
| 16 |  131 | 貂蝉      | 1122 |
+----+------+-----------+------+
8 rows in set (0.00 sec)

④替换

insert换成replace

-- 插入新数据
mysql> replace into stud (sn,name,qq) values (140,'许攸','4322');
Query OK, 1 row affected (0.00 sec)mysql> select * from stud;
+----+------+-----------+------+
| id | sn   | name      | qq   |
+----+------+-----------+------+
|  1 |  123 | 张飞      | 1234 |
| 10 |  130 | lvbu      | 4321 |
| 11 |  125 | 刘备      | 1238 |
| 12 |  126 | 曹操      | 1231 |
| 13 |  127 | 许攸      | 1233 |
| 14 |  128 | 孙权      | 1235 |
| 15 |  129 | 诸葛亮    | 1232 |
| 16 |  131 | 貂蝉      | 1122 |
| 17 |  140 | 许攸      | 4322 |
+----+------+-----------+------+
9 rows in set (0.00 sec)-- 插入不能重复的数据
mysql> replace into stud (sn,name,qq) values (140,'许攸1','4322');
Query OK, 2 rows affected (0.01 sec)-- id会继续增,这里其实相当于继续添加一行然后删除原来的数据
mysql> select * from stud;
+----+------+-----------+------+
| id | sn   | name      | qq   |
+----+------+-----------+------+
|  1 |  123 | 张飞      | 1234 |
| 10 |  130 | lvbu      | 4321 |
| 11 |  125 | 刘备      | 1238 |
| 12 |  126 | 曹操      | 1231 |
| 13 |  127 | 许攸      | 1233 |
| 14 |  128 | 孙权      | 1235 |
| 15 |  129 | 诸葛亮    | 1232 |
| 16 |  131 | 貂蝉      | 1122 |
| 18 |  140 | 许攸1     | 4322 |
+----+------+-----------+------+
9 rows in set (0.00 sec)-- 1 row affected: 表中没有冲突数据,数据被插入
-- 2 row affected: 表中有冲突数据,删除后重新插入

http://www.lryc.cn/news/424989.html

相关文章:

  • spring-security-1-快速入门
  • 5 大场景上手通义灵码企业知识库 RAG
  • 免费远程控制电脑的软件有哪些?
  • Linux软件包yum
  • 网页的切换与嵌套
  • 基于飞桨框架的稀疏计算使用指南
  • 启明云端WT32C3-S6物联网模块,乐鑫ESP32-C3芯片技术应用
  • 超越流水线,企业研发规范落地新思路
  • 财务会计与管理会计(四)
  • 回归分析系列1-多元线性回归
  • web小游戏开发:拼图——蜂巢拼图
  • springCloud集成activiti5.22.0流程引擎(分支)
  • ppt模板免费网站有哪些?自动美化工具推荐
  • java实现解析pdf格式发票
  • 数据结构初阶——算法复杂度超详解
  • ArcGIS Pro SDK (十二)布局 4 预定义的形状和箭头
  • 在 Ubuntu 14.04 服务器上安装 ISPConfig3 的方法
  • ELK学习笔记
  • Python+Selenium+Pytest+POM自动化测试框架封装详解
  • Hidden Marlov Model(HMM)
  • mamba的安装及下载速度慢问题解决
  • 【Linux入门】Linux环境搭建
  • CPU缓存一致性机制详解
  • Android 12系统源码_屏幕设备(一)DisplayManagerService的启动
  • 《AI视频类工具之十——​D-ID》
  • 【网络】局域网LAN、广域网WAN、TCP/IP协议、封装和分用
  • 我司搜索中台的三次演变
  • html+css+js网页设计 电商模版4个页面
  • 区块链技术在Facebook中的潜力:未来趋势与挑战
  • dockerfile自定义镜像