《(专升本)《计算机网络原理》数据库.docx》由会员分享,可在线阅读,更多相关《(专升本)《计算机网络原理》数据库.docx(7页珍藏版)》请在第一文库网上搜索。
1、一、初识数据库:1、什么是数据库设计?数据库设计就是将数据库中的数据实体及这些数据实体之间的关系,进行规划和结构化的过程。2、数据库规范设计:第一范式:原子性(官方总结:每列都是不可再分的最小单位)(大白话:每列只能存一个值)第二范式:确保表中每列都跟主键相关第三范式:确保表中每列都与主键直接相关,而不能间接相关(ABC三列,A列是主键,C列依赖B歹J,B列与A列直接相关,这就是错误的设计,因为C列不是与主键直接相关)windowsr-services.msc二、基本SqI语句1、创建数据库:Createdatabase数据库名;2、查看数据库列表:ShOWdatabases;3、使用数据库:
2、USe数据库名;4、数据类型:varchar字符串类型(对应java中的String类型)dateYYYY-MM-DD时间类型timestampYYYYMMDDHHMMSS精度为1秒例:2018年某时刻2019年某时刻5、创建表:创建表前必须使用某个数据库createtab1eifnotexists表名(字段i数据类型字段属性I约束索引注释,字段2数据类型字段属性I约束索引注释字段n数据类型字段属性I约束索引COn1ment字段注释)表类型表字符集comment=练习表;约束:非空约束:notnu11主键约束:Prin1arykey自动增长:auto_increment单行注释:多行注释:/*
3、/6、删除数据库:dropdatabase数据库名;7、查看所有表:ShOWtab1es;查看某个表:describe表名;9、删除表:droptab1e表名;10、修改表名:a1tertab1e旧表名rename新表名;11、添加字段:a1tertab1e表名add字段名数据类型(属性);12、修改字段:a1tertab1e表名change原字段名新字段名数据类型(属性);13、删除字段:a1tertab1e表名drop字段名;三、新增sq1语句:1、标准写法:insertinto表名(字段1,字段2.)va1ue(对应值,对应值.)2、简洁写法:insertinto表名va1ue(对应值,
4、对应值.)注:Va1Ue和va1ues都可用3、insertinto表1se1ect(字段)from表2注:表1和表2完全相同的情况下4、insertinto表名va1ue(值1,(从别的表查出的值)四、修改SqI语句:1、修改一条记录:UPdate表名set字段二新的值Where条件2、修改多条记录:UPdat6表名set字段I=新的值,字段2二新的值where条件五、删除Sq1语句:1、删除一条记录:de1etefrom表名where条件2、删除表中所有数据:truncatetab1e表名六:查询Sq1语句:1、查询表中所有数据:se1ect*from表名2、查询表中id为1的数据:se1
5、ect*from表名whereid=13、查询表中某个字段,条件为id=1:se1ect某字段from表名whereid=14、查询某个范围的记录:se1ect*from表名where查询条件IinIit位置偏移量,行数注:常作用于分页查询位置偏移量:从第几行开始查询,从0开始行数:查询几行5、查询表中是否存在某条数据:se1ectcount(1)as别名from表where条件se1ectcount(*)as别名from表where条件如果存在,结果为1,否则结果为06、一堆函数:avg()-返回某字段的平均值max()返回某字段的最大值min()-一返回某字段的最小值SUIT1()-一返回
6、某字段的和例:SeIeCtavg(某字段)from表名;7、关联查询(1)左关联:se1ect要查询的列from表11eftjoin表2on表1关联列二表2.关联列Where条件;注:右关联:将上述Sq1语句中的1eft改成right中间关联:将上述Sq1语句中的1eft改成inner、直接关联:se1ect要查询的列from表1,表2where条件and表1.关联列=表2.关联列;8、子查询:(1)、语法:SeIeCt*from表名where字段1比较运算符(子查询);例:查询成绩大于吴春雷的成绩信息se1ect*frommarkwheregrade(se1ectgradefrommarkw
7、hereusername=,wc);(2)、语法:SeIeCt*from表名where字段1in(子查询);例:查询成绩在5061范围内的成绩信息se1ect*frommarkwheregradein(se1ectgradefrommarkwheregrade=50);9、模糊查询:语法:SeIeCt*from表where某字段1ike%字符1%,;注:查询某字段存在字符1的数据10、排序:语法:se1ect*from表orderby字段名;注:查询某表所有数据,根据某字段进行排序,默认升序排列orderby字段名desc:为降序排列11、子查询:exists(1)、语法:SeieCt*fro
8、m表whereexists(子查询)注:如果子查询成立,才能查出结果,否则结果为空(2)、语法:Se1eCt*from表1whereexists(se1ect1from表2where表1.字段二表2.字段)注:exists可用于多表关联查询,子查询语句可以直接利用主查询语句的表12caseWhen判断语句:语法:Se1eCtcase字段名when字段值1then返回值1when字段值2then返回值2.e1se返回值3end列别名from表名;七、事务、视图、索引1、什么是事务:事务是一种机制、一组操作序列,要么都执行,要么都不执行,是一个不可分割的逻辑元。2、事务四大属性:(1)、原子性:一
9、组操作序列作为一个整体去提交或回滚(2)、一致性:某个正在进行的事务导致数据可能不在一致的状态,当此事务成功完成时,数据必须再次回到一致状态。(3)、隔离性:对数据进行修改的所有并发事务是彼此隔离的,事务相对都是独立的(4)、持久性:不管系统是否发生故障,事务处理的结果都是永久的3、如何执行事务(1)、开始事务:begin或Starttransaction(2)、提交事务:COn1mit(3)、回滚(撤销)事务:ro11back注:查询所有进程:ShOWProCeSS1iSt找到锁死的进程,ki11锁死进程的id4、什么是视图:视图是另一种查看数据库中一个或多个表数据的方法,视图是一种虚拟表注:视图作用:(1)、筛选所要查询的行、列(2)、防止未经许可的用户访问敏感数据(3)、将多个物理数据表抽象为一个逻辑数据表使用sq1创建视图:createview视图名asSe1eCt语句;5、什么是索引:给某个表创建索引后,查询效率会提高,增删改效率会降低,有了索引后无需对整个表进行扫描,利用索引就能找到所需数据索引分类:普通索引、唯一索引、主键索引、复合索引、全文索引、空间索引创建索引:createuniqueindex索引名On表名列名(长度)删除索引:dropindex索引名on表名;