目录大纲
1. 数据库划分
关系型数据库:
myslq,oracle,db2,sqlserver,sqllite
非关系型数据库:
redis,mongodb
2. 数据库管理工具
navicat,sqlyog
3. 数据库语言分类
DDL (数据定义语言)
数据定义语言 - Data Definition Language
用来定义数据库的对象,如数据表、视图、索引等
create drop alter truncate
DML (数据操纵语言)
数据处理语言 - Data Manipulation Language
在数据库表中更新,增加和删除记录
如 update, insert, delete 不包含查询
DCL (数据控制语言)
数据控制语言 – Data Control Language
指用于设置用户权限和控制事务语句
如grant,revoke,if…else,while,begin transaction
DQL (数据查询语言)
数据查询语言 – Data Query Language
数据表记录的查询。
4. 数据库操作(增删改查)
基础:
查看所有数据库:show databases;
使用数据库:use 数据库名;
查看当前使用的数据库:select database();
创建数据库:create database 数据库名 charset=utf8;
删除数据库:drop database 数据库名;
查看当前数据库中所有表:show tables;
查看表结构:desc 表名;
4.1 增
insert into 表名 VALUES 数据
4.2 删
delete from student where id =7; 单条删除
delete from student; 删除所有数据
4.3 改
update 表名 set 字段=值 where 约束条件
4.4 查
select * from student;
select * from student where id=3;
select * from student where score BETWEEN 60 and 80;
select * from student where sex=‘男’ and score >80
select * from student where sex=‘男’ or score >80
select * from student where id in(1,2,3)
select * from student where id not in(1,2,3)
select * from student where name like ‘王%’
select * from student where name like ‘%王’
select * from student where name like ‘%王%’
4.5 分组查询
查询男女成绩大于90的各有多少人
select count(*) as 数量,sex as 性别 from student GROUP BY sex HAVING avg(score)>90
4.6 排序
select * from student ORDER BY score desc 倒序
select * from student ORDER BY score 正序
4.7 分页
LIMIT 0,5----> 第一个参数是索引,从0开始;第二个参数是显示几条数据
select * from student LIMIT 1,5
4.8 聚合数据
count() 统计数量
min() 最小值
max()最大值
sum()求和
avg()求平均值
5. 表中字段基本数据类型
5.1 整型
| 类型 | 大小 | 范围(有符号) | 范围(无符号) | 用途 |
|---|---|---|---|---|
| TINYINT | 1 字节 | (-128,127) | (0,255) | 小整数值 |
| SMALLINT | 2 字节 | (-32 768,32 767) | (0,65 535) | 大整数值 |
| MEDIUMINT | 3 字节 | (-8 388 608,8 388 607) | (0,16 777 215) | 大整数值 |
| INT或INTEGER | 4 字节 | (-2 147 483 648,2 147 483 647) | 647) | (0,4 294 967 295) |
| BIGINT | 8 字节 | (-9 233 372 036 854 775 808,9 223 372 036 854 775 807) | (0,18 446 744 073 709 551 615) | 极大整数值 |
| FLOAT | 4 字节 | (-3.402 823 466 E+38,-1.175 494 351 E-38),0,(1.175 494 351 E-38,3.402 823 466 351 E+38) | 0,(1.175 494 351 E-38,3.402 823 466 E+38) | 单精度,浮点数值 |
| DOUBLE | 8 字节 | (-1.797 693 134 862 315 7 E+308,-2.225 073 858 507 201 4 E-308),0,(2.225 073 858 507 201 4 E-308,1.797 693 134 862 315 7 E+308) | 0,(2.225 073 858 507 201 4 E-308,1.797 693 134 862 315 7 E+308) | 双精度,浮点数值 |
| DECIMAL | 对DECIMAL(M,D) ,如果M>D,为M+2否则为D+2 | 依赖于M和D的值 | 依赖于M和D的值 | 小数值 |
取值范围如果加了 unsigned,则最大值翻倍,如 tinyint unsigned 的取值范围为(0~256)。
int(m) 里的 m 是表示 SELECT 查询结果集中的显示宽度,并不影响实际的取值范围,没有影响到显示的宽度,不知道这个 m 有什么用。
5.2 浮点型
| mysql数据类型 | 含义 |
|---|---|
| float(m,d) | 单精度浮点型 8位精度(4字节) m总个数,d小数位 |
| double(m,d) | 双精度浮点型 16位精度(8字节) m总个数,d小数位 |
设一个字段定义为 float(5,3),如果插入一个数 123.45678,实际数据库里存的是 123.457,但总个数还以实际为准,即 6 位。
5.3 定点数
浮点型在数据库中存放的是近似值,而定点类型在数据库中存放的是精确值。
decimal(m,d) 参数 m<65 是总个数,d<30 且 d<m 是小数位。
5.4 字符串(char,varchar,_text)
| mysql数据局类型 | 含义 |
|---|---|
| char(n) | 固定长度,最多255个字符 |
| varchar(n) | 可变长度,最多65535个字符 |
| tinytext | 可变长度,最多255个字符 |
| text | 可变长度,最多65535个字符 |
| mediumtext | 可变长度,最多2的24次方-1个字符 |
| longtext | 可变长度,最多2的32次方-1个字符 |
char和varchar的区别:
char是定长字符串,长度是固定的
如果插入数据的长度小于char的固定长度时,则用空格填充
因为长度固定,所以存取速度要比varchar快很多,甚至能快50%
但正因为其长度固定,所以会占据多余的空间,是空间换时间的做法
对于char来说,最多能存放的字符个数为255,和编码无关
插入的数据是多长,就按照多长来存储
varchar在存取方面与char相反,它存取慢,因为长度不固定
但正因如此,不占据多余的空间,是时间换空间的做法
对于varchar来说,最多能存放的字符个数为65535
总之,char更快,varchar更小,彼此都具备优秀的特质,怎么使用就看业务
简介版如下:
char和varchar的区别:
1、char的长度是固定的,varchar的长度是可变的
2、char添加时尾部不足补空格,读取时会删掉空格,而varchar不受影响
3、char一般情况下检索速度要比varchar快
4、char最多存255个字符,varchar最多存65535个字符
having和where的区别::
一般情况下,两者可通用,但where后面的条件字段必须在表中有,否则报错
having后面的条件是select后面出现的,否则报错
where必须在group by前面,having必须在group by后面
5.5 日期时间类型
| mysql数据类型 | 含义 |
|---|---|
| date | 日期 ‘2008-12-2’ |
| time | 时间 ‘12:25:36’ |
| datetime | 日期时间 ‘2008-12-2 22:06:44’ |
| timestamp | 自动存储记录修改时间 |
若定义一个字段为timestamp,这个字段里的时间数据会随其他字段修改的时候自动刷新,所以这个数据类型的字段可以存放这条记录最后被修改的时间。
特别注意:
设计日期的表字段以后,使用insert into插入数据时,一定要以字符串的形式插入,否则插入的日期都将会是0000-00-00

insert into student values(1001,“张大民”,95.5,“2018-03-12”);

5.6 数据类型的属性
| mysql关键字 | 含义 |
|---|---|
| NULL | 数据列可包含NULL值 |
| NOT NULL | 数据列不允许包含NULL值 |
| DEFAULT | 默认值 |
| PRIMARY KEY | 主键 |
| AUTO_INCREMENT | 自动递增,适用于整数类型 |
| UNSIGNED | 无符号 |
| CHARACTER SET name | 指定一个字符集 |
6. 子查询
select * from 表1 where 表1.字段=(select 表2.字段 from 表2 where 表2.字段=‘条件’)
7. 多表联查
两个表:
select 表1.字段,表2.字段 from 表1 inner join 表2 on 表1.字段 = 表2.字段
三个表:
select 表1.字段,表2.字段,表3.字段 FROM 表1 inner join 表2 on 表1.字段=表2.字段 inner join 表3 on 表1.字段=表3.字段 where 条件
7.1 inner join、left join、right join三者之间的区别(union全连接)
left join 以左边表为主,右边没有,用null代替
right join 以右边表为主,左边没有,用null代替
inner join 显示共同有的
inner join:

left join:

right join:

union :实现全连接,将左连接和右连接连接起来

8. 快捷进入mysql
在桌面新建一个txt文件
将txt文件的后缀改为bat
右击点击编辑
编辑内容如下:
cd D:\mysql\mysql\bin
d:
mysql -uroot -p
pause
本文详细介绍了MySQL数据库的划分、管理工具、语言分类,包括数据操作(增删改查)、表字段基本数据类型、子查询和多表联查等内容,深入讲解了DML、DQL和DCL。此外,还探讨了日期时间类型和数据类型的属性。
584

被折叠的 条评论
为什么被折叠?



