当前位置: 首页 > MySQL数据库

mysql增删改的方法是什么

时间:2026-01-27 10:37:34

插入数据

    代码案例

    #方式1:一条一条的添加数据#没有指明添加的字段时,一定要按照声明的字段的先后顺序添加INSERTINTOemp1VALUES(1,'Tom','2000-12-21',3400);#错误写法:没有指定添加字段,也没有按声明顺序INSERTINTOemp1VALUES(2,3400,'2000-12-21','Jerry');#指明要添加的字段(推荐)INSERTINTOemp1(id,hire_date,salary,`name`)VALUES(2,'1999-09-09',4000,'Jerry');#说明:没有进行赋值的hire_date的值为nullINSERTINTOemp1(id,salary,`name`)VALUES(3,4500,'shk');#同时插入多条记录(推荐)INSERTINTOemp1(id,NAME,salary)VALUES(4,'Jim',5000),(5,'张俊杰',5500);#VALUES也可以写成VALUE,但是VALUES是标准写法。#字符和日期型数据应包含在单引号中#方式2:将查询结果插入到表中;查询的字段一定要与添加到的表的字段一一对应INSERTINTOemp1(id,NAME,salary,hire_date)SELECTemployee_id,last_name,salary,hire_dateFROMemployeesWHEREdepartment_idIN(70,60);#说明:emp1表中要添加数据的字段的长度不能低于employees表中查询的字段的长度#如果emp1表中要添加数据的字段的长度低于employees表中查询的字段的长度的话,就有添加不成功的风险

    更新数据

      代码案例

      #UPDATE....SET....WHERE...#可以实现批量修改数据的#更新为当前时间UPDATEemp1SEThire_date=CURDATE()WHEREid=5;#同时修改一条数据的多个字段UPDATEemp1SEThire_date=CURDATE(),salary=6000WHEREid=4;#将表中姓名中包含字符a的提薪20%UPDATEemp1SETsalary=salary*1.2WHERENAMELIKE'%a%';#修改数据时,是可能存在不成功的情况的。(可能是由于约束的影响造成的)UPDATEemployeesSETdepartment_id=10000WHEREemployee_id=102;

      删除数据

        代码案例

        #删除id为1的数据DELETEFROMemp1WHEREid=1;#在删除数据时,也有可能因为约束的影响,导致删除失败DELETEFROMdepartmentsWHEREdepartment_id=50;#DML操作默认情况下,执行完以后都会自动提交数据#如果希望执行完以后不自动提交数据,则需要在DML操作前,使用SETautocommit=FALSE

        mysql8新特性,计算列

          代码案例

          #新建1张表,字段c即为计算列CREATETABLEtest1(aINT,bINT,cINTGENERATEDALWAYSAS(a+b)VIRTUAL);#插入前2个字段时,自动计算第3个字段INSERTINTOtest1(a,b)VALUES(10,20);#修改第1个字段后,自定计算第3个字段UPDATEtest1SETa=100;

          综合案例

            代码案例

            #创建数据库test01_libraryCREATEDATABASEIFNOTEXISTStest01_libraryCHARACTERSET'utf8';#切换数据库USEtest01_library;#创建表books,表结构如下:CREATETABLEIFNOTEXISTSbooks(idINT,`name`VARCHAR(50),`authors`VARCHAR(100),priceFLOAT,pubdateYEAR,noteVARCHAR(100),numINT);#查看表结构DESCbooks;#查看表数据SELECT*FROMbooks;#向books表中插入记录#1)不指定字段名称,插入第一条记录INSERTINTObooksVALUES(1,'TalofAAA','Dickes',23,'1995','novel',11);#2)指定所有字段名称,插入第二记录INSERTINTObooks(id,NAME,AUTHORS,price,pubdate,note,num)VALUES(2,'EmmaT','Janelura',35,'1993','joke',22);#3)同时插入多条记录INSERTINTObooks(id,NAME,AUTHORS,price,pubdate,note,num)VALUES(3,'StoryofJane','JaneTim',40,2001,'novel',0),(4,'LoveyDay','GeorgeByron',20,2005,'novel',30),(5,'Oldland','HonoreBlade',30,2010,'Law',0),(6,'TheBattle','UptonSara',30,1999,'medicine',40),(7,'RoseHood','Richardhaggard',28,2008,'cartoon',28);#将小说类型(novel)的书的价格都增加5UPDATEbooksSETprice=price+5WHEREnote='novel';#将名称为EmmaT的书的价格改为40,并将说明改为dramaUPDATEbooksSETprice=40,note='drama'WHERENAME='EmmaT';#删除库存为0的记录DELETEFROMbooksWHEREnum=0;#统计书名中包含a字母的书SELECTNAMEFROMbooksWHERENAMELIKE'%a%';#统计书名中包含a字母的书的数量和库存总量SELECTCOUNT(*),SUM(num)FROMbooksWHERENAMELIKE'%a%';#找出“novel”类型的书,按照价格降序排列SELECTNAME,note,priceFROMbooksWHEREnote='novel'ORDERBYpriceDESC;#查询图书信息,按照库存量降序排列,如果库存量相同的按照note升序排列SELECT*FROMbooksORDERBYnumDESC,noteASC;#按照note分类统计书的数量SELECTnote,COUNT(*)FROMbooksGROUPBYnote;#按照note分类统计书的库存量,显示库存量超过30本的SELECTnote,SUM(num)FROMbooksGROUPBYnoteHAVINGSUM(num)>30;#查询所有图书,每页显示5本,显示第二页SELECT*FROMbooksLIMIT5,5;#按照note分类统计书的库存量,显示库存量最多的SELECTnote,SUM(num)sum_numFROMbooksGROUPBYnoteORDERBYsum_numDESCLIMIT0,1;#查询书名达到10个字符的书,不包括里面的空格SELECTCHAR_LENGTH(REPLACE(NAME,'',''))FROMbooks;#方式2:SELECTNAMEFROMbooksWHERECHAR_LENGTH(REPLACE(NAME,'',''))>=10;#查询书名和类型,其中note值为novel显示小说,law显示法律,medicine显示医药,cartoon显示卡通,joke显示笑话SELECTNAME"书名",note,CASEnoteWHEN'novel'THEN'小说'WHEN'law'THEN'法律'WHEN'medicine'THEN'医药'WHEN'cartoon'THEN'卡通'WHEN'joke'THEN'笑话'ELSE'其他'END"类型"FROMbooks;#查询书名、库存,其中num值超过30本的,显示滞销,大于0并低于10的,显示畅销,为0的显示需要无货SELECTNAMEAS"书名",numAS"库存",CASEWHENnum>30THEN'滞销'WHENnum>0ANDnum<10THEN'畅销'WHENnum=0THEN'无货'ELSE'正常'END"显示状态"FROMbooks;#统计每一种note的库存量,并合计总量SELECTIFNULL(note,'合计库存总量')ASnote,SUM(num)FROMbooksGROUPBYnoteWITHROLLUP;#统计每一种note的数量,并合计总量SELECTIFNULL(note,'合计总量')ASnote,COUNT(*)FROMbooksGROUPBYnoteWITHROLLUP;#统计库存量前三名的图书SELECT*FROMbooksORDERBYnumDESCLIMIT0,3;#找出最早出版的一本书SELECT*FROMbooksORDERBYpubdateASCLIMIT0,1;#找出novel中价格最高的一本书SELECT*FROMbooksWHEREnote='novel'ORDERBYpriceDESCLIMIT0,1;#找出书名中字数最多的一本书,不含空格SELECT*FROMbooksORDERBYCHAR_LENGTH(REPLACE(NAME,'',''))DESCLIMIT0,1;

            上一篇:mysqldump备份方法怎么使用
            下一篇:mysql distinct如何用
            mysql

  • 英特尔与 Vertiv 合作开发液冷 AI 处理器
  • 英特尔第五代 Xeon CPU 来了:详细信息和行业反应
  • 由于云计算放缓引发扩张担忧,甲骨文股价暴跌
  • Web开发状况报告详细介绍可组合架构的优点
  • 如何使用 PowerShell 的 Get-Date Cmdlet 创建时间戳
  • 美光在数据中心需求增长后给出了强有力的预测
  • 2027服务器市场价值将接近1960亿美元
  • 生成式人工智能的下一步是什么?
  • 分享在外部存储上安装Ubuntu的5种方法技巧
  • 全球数据中心发展的关键考虑因素
  • 英特尔与 Vertiv 合作开发液冷 AI 处理器

    英特尔第五代 Xeon CPU 来了:详细信息和行业反应

    由于云计算放缓引发扩张担忧,甲骨文股价暴跌

    Web开发状况报告详细介绍可组合架构的优点

    如何使用 PowerShell 的 Get-Date Cmdlet 创建时间戳

    美光在数据中心需求增长后给出了强有力的预测

    2027服务器市场价值将接近1960亿美元

    生成式人工智能的下一步是什么?

    分享在外部存储上安装Ubuntu的5种方法技巧

    全球数据中心发展的关键考虑因素