还剩7页未读,继续阅读
文本内容:
一、初识数据库
1、什么是数据库设计?数据库设计就是将数据库中的数据实体及这些数据实体之间的关系,进行规划和结构化的过程
2、数据库规范设计第一范式:原子性(官方总结:每列都是不可再分的最小单位)(大白话:每列只能存一个值)第二范式:确保表中每列都跟主键相关第三范式:确保表中每列都与主键直接相关,而不能间接相关(A\B\C三列,A列是主键,C列依赖B列,B列与A列直接相关,这就是错误的设计,因为C列不是与主键直接相关)windowsr-一>services.msc
二、基本sql语句1>创建数据库createdatabase数据库名;
2、查看数据库列表:showdatabases;
3、使用数据库:use数据库名;
4、数据类型varchar字符串类型(对应java中的String类型)dateYYYY-MM-DD时间类型timestampYYYYMMDDHHMMSS精度为1秒例:2018年某时刻〜2019年某时刻
5、创建表:创建表前必须使用某个数据库createtable[ifnotexists]表名(字段1数据类型[字段属性I约束][索引][注释]字段2数据类型[字段属性|约束][索引][注释]字段n数据类型[字段属性|约束][索引]comment〃字段注释〃)[表类型][表字符集]comment=〃练习表〃;约束非空约束:notnull主键约束primarykey自动增长autoincrement单行注释:多行注释:/**/
6、删除数据库:dropdatabase数据库名;
7、查看所有表:showtables;
8、查看某个表describe表名;
9、删除表:droptable表名;10>修改表名altertable旧表名rename新表名;
11、添加字段:altertable表名add字段名数据类型(属性);
12、修改字段:altertable表名change原字段名新字段名数据类型(属性);
13、删除字段altertable表名drop字段名;
三、新增sql语句
1、标准写法insertinto表名(字段1字段
2...)value(对应值,对应
2、简洁写法insertinto表名value(对应值,对应值・・・.)注value和values都可用
3、insertinto表1select(字段)from表2注:表1和表2完全相同的情况下
4、insertinto表名value(值1(从别的表查出的值))
四、修改sql语句
1、修改一条记录:update表名set字段二新的值where条件
2、修改多条记录:update表名set字段1二新的值,字段2二新的值・・.where条件
五、删除sql语句
1、删除一条记录:deletefrom表名where条件
2、删除表中所有数据:truncatetable表名六:查询sql语句
1、查询表中所有数据select*from表名
2、查询表中id为1的数据select*from表名whereid=l
3、查询表中某个字段,条件为id=l:select某字段from表名whereid=l
4、查询某个范围的记录select*from表名where查询条件limit位置偏移量,行数注:常作用于分页查询位置偏移量:从第几行开始查询,从0开始行数:查询几行
5、查询表中是否存在某条数据selectcount1as别名from表where条件selectcount*as别名from表where条件如果存在,结果为1否则结果为
06、一堆函数avg―-返回某字段的平均值max返回某字段的最大值min--返回某字段的最小值sum-一返回某字段的和例selectavg某字段from表名;
7、关联查询⑴左关联select要查询的列from表1leftjoin表2on表
1.关联列=表
2.关联列where条件;注右关联:将上述sql语句中的left改成right中间关联:将上述sql语句中的left改成inner
2、直接关联:select要查询的列from表1表2where条件and表
1.关联列=表
2.关联列;
8、子查询
1、语法:select*from表名where字段1比较运算符子查询;例:查询成绩大于吴春雷的成绩信息select*frommarkwheregradeselectgradefrommarkwhereusername=wcl;
2、语法:select*from表名where字段1in子查询;例查询成绩在50~61范围内的成绩信息select*frommarkwheregradeinselectgradefrommarkwheregrade=61andgrade=50;
9、模糊查询语法select*from表where某字段like%字符1%;注:查询某字段存在字符1的数据
10、排序语法select*from表orderby字段名;注:查询某表所有数据,根据某字段进行排序,默认升序排列orderby字段名desc:为降序排列11子查询exists
1、语法select*from表whereexists子查询注:如果子查询成立,才能查出结果,否则结果为空⑵、语法select*from表1whereexistsselect1from表2where表
1.字段二表
2.字段注:exists可用于多表关联查询,子查询语句可以直接利用主查询语句的表
12、casewhen判断语句:语法selectcase字段名when字段值1then返回值1when字段值2then返回值
2..・.else返回值3end列别名from表名;
七、事务、视图、索引
1、什么是事务事务是一种机制、一组操作序列,要么都执行,要么都不执行,是一个不可分割的逻辑元
2、事务四大属性
1、原子性:一组操作序列作为一个整体去提交或回滚
2、一致性:某个正在进行的事务导致数据可能不在一致的状态,当此事务成功完成时,数据必须再次回到一致状态
3、隔离性:对数据进行修改的所有并发事务是彼此隔离的,事务相对都是独立的
4、持久性:不管系统是否发生故障,事务处理的结果都是永久的
3、如何执行事务
1、开始事务:begin或starttransaction2>提交事务commit⑶、回滚撤销事务:rollback注查询所有进程showprocesslist找到锁死的进程,kill锁死进程的id
4、什么是视图:视图是另一种查看数据库中一个或多个表数据的方法,视图是一种虚拟表注:视图作用
1、筛选所要查询的行、列
2、防止未经许可的用户访问敏感数据
3、将多个物理数据表抽象为一个逻辑数据表使用sql创建视图createview视图名asselect语句;
5、什么是索引给某个表创建索引后,查询效率会提高,增删改效率会降低,有了索引后无需对整个表进行扫描,利用索引就能找到所需数据索引分类普通索引、唯一索引、主键索引、复合索引、全文索引、空间索引创建索引:createuniqueindex索引名on表名列名(长度)删除索引dropindex索引名on表名;。