mysql(10.11~10.18)

一,数据库

1.数据库

  • 概念:数据仓库,软件,安装在操作系统之上。
  • 作用:存储数据,管理数据

2.数据库的分类

  • 关系型数据库:
    • MySQL,Oracle,SqlServer,DB2,SQLite
    • 通过表和表之间,行和列之间的关系进行数据的存储
  • 非关系类型数据库
    • Redis,MongDB
    • 非关系数据库,对象存储,通过对象的自身的属性来决定

3.DBMS(数据库管理系统)

  • 数据库的管理软件,科学有效的管理数据,维护和获取数据
  • MySQL,数据库管理系统

4.MuSQL简介

  • MySQL是一个关系型数据库管理系统

5.数据库xxx语言 CRUD 增删改查

DDL	  	定义

DML	  	操作

DQL	  	查询

DCL	  	控制

二,数据类型

1.数值

tintint		十分小的数据		1个字节
smallint	较小的数据		2个字节
mediumint	中等大小的字节	3个字节
int			标准的整数		4个字节
bigint		较大的数据		8个字节
float		浮点型			4个字节
double		浮点型			8个字节
decimal		字符串形式的浮点书		金融计算的时候使用

2.字符串

char		字符串固定大小		0~255
varchar		可变字符串			0~65535		常用的变量String
tinytext	微型文本				2^8-1
text		文本串				2^16-1		保存大文本

3.时间日期

date		YYYY-MM-DD		日期格式
time		HH: mm: ss		时间格式
datetime	YYYY-MM-DD HH: mm: ss	最常用的时间格式
timestamp	时间戳,	1970.1.1到现在的毫秒数
year		年份表示

4.null

  • 没有值

三,操作数据库

1.增加数据

  • insert into 表名 (名称,名称) value (值,值);
  • insert into 表名 values (值,值);

2.删除数据

  • delete from 表名 where ???=???;

3.展示数据

  • select * from 表名;

4.新建数据库

  • create database 库名;

5.新建表

  • creat table 表明(
    字段名字 数据类型 修饰
    );
create table user(
	id int(8) not null auto_increment,
	name char(30),
	primary key(id)
	)
	;

6.修改数据

  • update 表名 set 名称=新值 where 条件;

7.查找数据

  • select * from darft where 条件;

8.删除数据库

  • drop database 库名;

四,数据库的字段属性

1.Unsight

  • 无符号的整数
  • 声明了该列不能声明为负数

2.zetofill

  • 0填充的
  • 不足的位数,使用0来填充, int (3), 5->005

3.自增

  • 通常理解为自增,自动在上一条记录的基础上+1(默认)
  • 通常用来设计唯一的主键~index,必须是整数类型
  • 可以自定义设计主键自增的起始值和步长

4.非空 NULL not null

  • 假设设置为not null,如果不给它赋值,就会报错!
  • NULL,如果不填写值,默认就是null

5.默认

  • 设置默认的值
  • sex,默认值为男,如果不指定改列的值,则会有默认的值

五,MyISAM和InnoDB区别

1.数据表的类型

MYISAMINNODB
事务支持不支持支持
数据行锁定不支持支持
外键约束不支持支持
全文索引支持不支持
表空间的大小较小较大,约为2倍

2.常规使用操作

  • MYISAM: 节约空间,速度较快
  • INNODB: 安全性高,事务的处理,多表多用户操作

六,修改和删除数据字段

  • 修改表名 :ALTER TABLE 旧表名 RENAME AS 新表名
ALTER TABLE teacher RENAME AS teacher1
  • 增加表的字段:ALTER TABLE 表名 ADD 字段名 列属性
ALTER TABLE teacher1 ADD age INT(11)
  • 修改表的字段:(重命名,修改约束!)
ALTER TABLE teacher1 MODIFY age VARCHAR(11)	--修改约束
ALTER TABLE teacher1 CHANGE age age1 INT(1)	--字段重命名
  • 删除表的字段
ALTER TABLE teacher1 DROP age1

七,DML语言

数据库意义:数据存储,数据管理

DML语言:数据操作语言

  • Insert
  • update
  • delete

1.添加

  • 插入语句(添加)
    • insert into 表名([字段名1,字段名2,字段名3])values(‘值1’,‘值2’,‘值3’,…)
    • 由于主键自增我们可以省略(如果不写表的字段,他就会一一匹配)
    • 一般写插入语句,我们一定要数据和字段一一对应

2.修改

  • 语法:UPDATE 表名 set colnum_name = value,[colnum_name = value,…] where [条件]

3.删除

  • 语法:delete from 表名 [where 条件]

八,where条件语句

  • 作用:检索数据中符合条件的值

逻辑运算符

运算符语法描述
and &&a and b a&&b逻辑与,两个都为真,结果为真
or ||a or b a||b逻辑或,其中一个为真,则结果为真
Not !not a ! a逻辑非,真为假,假为真

模糊查询:比较运算符

运算符语法描述
IS NULLa is null如果操作符为NULL,结果为真
IS NOT NULLa is not null如果操作符不为null,结果为真
BETWEENa between b and c若a在b和c之间,则结果为真
LIKEa like bSQL匹配,如果a匹配b,则结果为真
ina in (a1,a2,a2…)假设a在a1,或者a2…其中的某一个值中,结果为真

联表查询

操作描述
Inner join如果表中至少有一个匹配,就返回行
left join会从左表中返回所有的值,即使右表中没有匹配
right join会从右表中返回所有的值,即使左表中没有匹配

九,分页和排序

1.排序

排序:升序ASC,降序DESC
SELECT s.'StudentNO','StudentName','StudentResult'
FROM student s
INNER JOIN 'result' r
ON s.Student = r.StudentNo
INNER JOIN 'subject' sub
ON r.'StudentNO'=sub.'SubjectNO'
WHERE syvjectName = '数据库结构'
ORDER BY StudentResult ASC

2.分页

  • 分页,每页只显示五条数据
  • 语法:Limit起始值,页面的大小

十,常用函数

1.数学运算

  • SELECT AES(-8) ——绝对值
  • SELECT CEILING(9.4) ——向上取整
  • SELECT FLOOR(9.4) ——向下取整
  • SELECT RANE() ——返回一个随机数
  • SELECT STBN(10) ——判断一个数的符号,0-0 负数返回-1,正数返回1

2.字符串函数

  • SELECT CHAR_LENGTH(‘jhbhgj’) ——字符串长度
  • SELECT CONCAT(‘紫’,‘荆’,‘城’)——字符串拼接
  • SELECT LNSERT(‘EDFRFGRF’,1,2,‘DFR’)——查询,从某个位置开始替换某个长度
  • SELECT LOWER(‘FEFRSF’)——小写字母
  • SELECT UPPER(‘WDFEF’)——大写字母

3.时间和日期函数

  • SELECT CURRENT_DATE()——获取当前日期
  • SELECT CURDATE()——获取当前日期
  • SELECT NOW()——获取当前时间

十一,事务

1.原子性

  • 要么都成功,要么都失败

2.一致性

  • 事务前后的数据完整性要保证一致

3.持久性

  • 事务一旦提交则不可逆,被持久化到数据库中

4.隔离性

  • 事务的隔离性是多个用户并发访问数据库时,数据库为每一个用户开启的事务,不能被其他事务的操作数据所干扰

5.脏读

  • 指一个事务读取了另外一个事务未提交的数据

6.不可重复读

  • 在一个事务内读取表中的某一行数据,多次读取结果不同

7.虚读

  • 是指在一个事务内读取到了别的事务插入的数据,导致前后读取不一致

十二,索引

索引的分类

  • 主键索引
    • 唯一的标识,主键不可重复,只能由一个列作为主键
  • 唯一索引
    • 避免重复的列出现,唯一索引可以重复,多个列都可以标识为唯一索引
  • 常规索引
    • 默认的,index ,key关键字来设置
  • 全文索引
    • 在特定的数据库引擎下才有,MyLSAM
    • 快速定位数据

十三,三大范式

1.第一范式

  • 原子性:保证每一列不可再分

2.第二范式

  • 前提:满足第一范式
  • 每张表只描述一件事情

3.第三范式

  • 前提:满足第一第二范式
  • 第三范式需要确保数据表中的每一列数据都和主键直接相关,而不能间接相关

4.规范性和性能的问题

  • 考虑商业化的需求和目标,数据库的性能更加重要
  • 在规范性能得问题得时候,需要适当得考虑一下规范性
  • 故意给某些表增加一些冗余得字段
  • 故意增加一些计算列
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值