




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
比如商品信息包括商品的名称、描述、价格 n那么这些信息不能直 很难以合适的方式组织数据(多张表之前的关系合理组织 n数据库通俗来讲就是一 n通 n关系型数据库:MySQL、Oracle、DB2、SQLServer、PostgreSQL 非关系型数据库的英文其实是NotonlySQL,也简称为 相当而已非关系型数据库比较简单一些 n我们的课程是开发自己的后端项目,所以我们以关系型数据库MySQLnMySQL MySQL原本是一个开源的数据库,原开发者为瑞典的MySQLAB n根据自己的操作系 n推荐大家直 n这里我安装的是 n打开终端,查看MySQLmysql--
Macexportn我们如果想要操作数据,需要先和数据建 n mysqlurootpCoderwhy888.#方式二:mysql-uroot-Enterpassword:yourn我 showshownMySQL performance_schema:性能数据库,记录着MySQLServer数据库引擎在运行 n在终端直接创建一个属于自己的新的数据库coderhub(一般情况下一个新的项目会对应一个新的数据库)createcreatedatabasen使用我们创建的数据库useusencreatecreatetablenamevarchar(20),ageint,heightinsertintouser(name,age,height)values('why',18,1.88);insertintouser(name,age,height)values('kobe',40,1.98);n n所以在开发中,我们可以借助于一些GUI工具来帮助我们连接上数据库,之后直接在GUIn常见的MySQL的GUI 的(有免费的试用时间,或者各显神通 页n我们希望操作数据库(特别是在程序中),就需要有和数据库沟通的语言,这个语言就是 SQL是StructuredQueryLanguage,称之为结构化查询语言,简称 n事实上,常见的关系型数据库SQL语句都是比较相似的,所以你学会了MySQL中的SQLnSQL n常见的SQLnDDL(DataDefinitionLanguage): nDML(DataManipulationLanguage): nDQL(DataQueryLanguage) nDCL(DataControlLanguage): nnSHOWUSESELECTDEFAULTDEFAULTCHARACTERSETutf8mb4COLLATEIFNOTIFNOTnDROPDATABASEDROPDATABASEIFEXITnALTERDATABASEbilibiliCHARACTERSET=utf8COLLATE=nSHOWDESCnCREATECREATETABLEIFNOTEXISTS`users`(nameVARCHAR(20),ageINT,heightDOUBLESQL n SQLnMySQL SQLnMySQLnCHAR类型在创建表时为固定长度,长度可以是0到255 nBINARY和VARBINARY类型用 nBLOB用 nTEXT用 n主键:PRIMARYp一张表中,我们为了区分每一条记录的唯一性,必须有一个字段是 主键是表中唯一的索引 并且必须是NOTNULL的,如果没有设置NOTNULL,那么MySQL也会隐式的设置为NOT n唯一p某些字段在开发中我们希望是唯一的,不会重复的,比如 p使用UNIQUEp对于所有引擎,UNIQUE索引允许NULL包含的列具有多个值NULLn不能为空:NOTpNOTNULLnpDEFAULTn自动递增n外键约束也是最常用的一种约 nCREATETABLEIFNOTEXISTSidINTPRIMARYKEYAUTO_INCREMENT,nameVARCHAR(20)NOTNULL,ageINTDEFAULTPhoneVARCHAR(20)DEFAULT''UNIQUENOTnDROPTABLEDROPTABLEIFEXISTSn1.ALTERTABLE`moments`RENAMETO`moment`;#2.添加一个新的列ALTERTABLE`moment`ADD`publishTime`DATETIME;ALTERTABLE`moment`ADD`updateTime`DATETIME;#3.删除一列数据ALTERTABLE`moment`DROP`updateTime`;#4.修改列的名称ALTERTABLE`moment`CHANGE`publishTime``publishDate`DATE;#5.修改列的数据类型ALTERTABLE`moment`MODIFY`id`nDML:DataManipulationLanguage(数据操作语言nCREATECREATETABLEIFNOTEXISTS`id`INTPRIMARYKEY`title``description``price``publishTime`nINSERTINTO`products`(`title`,`description`,`price`,`publishTime`)VALUES(' ',' 12只要998998.88,'2020-10-10');INSERTINTO`products`(`title`,`description`,`price`,`publishTime`)VALUES(' ',' P40只要888',888.88,'2020-11-11');#会删除表中所有的数据DELETEFROM`products`;#会删除符合条件的数据DELETEFROM`products`WHERE`title`=UPDATE`products`SET`title`=12',`price`=UPDATE`products`SET`title`= 12',`price`=1299.88WHERE`title`= nnALTERTABLE`products`ADD`updateTime`DEFAULTCURRENT_TIMESTAMPONUPDATEn如果我ALTERTABLE`products`ADD`updateTime`DEFAULTCURRENT_TIMESTAMPONUPDATEnDQL:DataQueryLanguage(数据查询语言 nSELECTselect_expr[,select_expr]...[FROMtable_references][WHEREwhere_condition][ORDERBYexpr[ASC|DESC]][LIMIT{[offset,]row_count|row_countOFFSET[GROUPBY[HAVINGn
constmysql=CREATETABLEIFNOTEXISTS`products`(idINTPRIMARYKEYCREATETABLEIFNOTEXISTS`products`(idINTPRIMARYKEYAUTO_INCREMENT,brandVARCHAR(20),titleVARCHAR(100)NOTNULL,priceDOUBLENOTNULL,scoreDECIMAL(2,1),turlpidport:3306,user:'root',database:'coderhub'conststatement=`INSERTINTOproductsSET?;`constphoneJson=require('./phone.json');for(letphoneofphoneJson){}nSELECTSELECT*FROMn查询title、brand、SELECTSELECTtitle,brand,priceFROMn SELECTSELECTtitleast,brandasb,priceaspFROM WEHREnWHERE查询价格小于1000SELECT*FROM`products`WHEREprice<查询价格大于等于2000SELECT*FROM`products`WHEREprice>=价格等于3399SELECT*FROM`products`WHEREprice=价格不等于3399SELECT*FROM`products`WHEREprice=#查 SELECT*FROM`products`WHERE`brand`= nWHERE#查询品牌 SELECT*FROM`products`WHERE`brand`=' 'and`price`<2000;SELECT*FROM`products`WHERE`brand`=' '&&`price`<2000;#查 (不包 SELECT*FROM`products`WHEREprice>1000andprice<OR:#查询所有 SELECT*FROM`products`WHEREbrand= 'orprice<#查 (包 SELECT*FROM`products`WHEREpriceBETWEEN1000andSELECT*FROM`products`WHEREbrandin 小米n模糊查询使用LIKE 查询所有以v开头的SELECT*FROM`products`WHERE#查询带M的titleSELECT*FROM`products`查询带M的titleSELECT*FROM`products`'n当我们查询到结果的时候,我们希望讲结果按照某种方式进行排序,这个时候使用的是ORDERnORDERBY SELECTSELECT*FROM`products`WHEREbrand= 'orprice<1000ORDERBYpricen当数据库中的数据非常多时 它的用法有[LIMIToffset,]row_count|row_countOFFSET***#另外一种写法:offset,row_countSELECT*FROM`products`LIMIT90,30;n聚合函数表示对值集合进行操作的组(集合)# SELECTAVG(price)FROM`products`WHEREbrand=' #计算所有 SELECTAVG(score)FROM SELECTMAX(score)FROM`products`;SELECTMIN(score)FROMSELECT t)FROMSELECTCOUNT(*FROM`products`; SELECTCOUNT(*)FROM`products`WHEREbrand= 认识Groupn GROUPnGROUPBY n
SELECTCOUNT(*)ascount,ROUND(AVG(price),2)asavgPrice,FROM`products`GROUPBYGroupByn使用我们希望给GroupBy查询到的结果添加一些约束,那么我们可以使用:HAVINGn比如:如果我们还希望筛选出平均价格在4000以下,并且平均分在7SELECTSELECTCOUNT(*)ascount,ROUND(AVG(price),2)asavgPrice,MAX(price)asmaxPrice,MIN(price)asminPrice,AVG(score)asavgScoreFROM`products`GROUPBYHAVINGavgPrice<4000andavgScore>n n CREATETABLEIFNOTEXISTS`brand`(CREATETABLEIFNOTEXISTS`brand`(idINTPRIMARYKEYAUTO_INCREMENT,nameVARCHAR(20)NOTNULL,websiteVARCHAR(100),worldRankINTINSERTINSERTINTO`brand`(name,INSERTINTO`brand`(name,website,INSERTINTO`brand`(name,website,INSERTINTO`brand`(name,website,INSE
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025婚纱摄影工作室合作合同范本
- 2025水果销售居间合同
- 2025工程采购合同范本
- 2025聘请家庭保姆合同范本
- 2025写字楼租赁合同书范文
- 2025年进出口贸易合同范本
- 2025成都市土地流转合同
- 8.1《薪火相传的传统美德》教案 2024-2025学年统编版道德与法治七年级下册
- 《电子书下载流程》课件
- 《胃癌内科治疗》课件
- 食品安全自查、从业人员健康管理、进货查验记录、食品安全事故处置等保证食品安全规章制度
- 中小学教师家校社协同育人能力的区域调研与思考
- 第三单元 认识立体图形(单元测试)-2024-2025学年一年级上册数学人教版
- ISO 22003-1:2022《食品安全-第 1 部分:食品安全管理体系 审核与认证机构要求》中文版(机翻)
- 员工工资表范本
- 小学二年级下口算题1000道(50道每天)
- 香港私家车转让协议书模板
- 食品经营安全管理制度目录
- 浙江省石材面板保温装饰板外墙外保温系统应用技术规程
- 汽车租赁合同协议电子版
- 模拟电子技术基础智慧树知到期末考试答案章节答案2024年北京航空航天大学
评论
0/150
提交评论