目录
1.数据库
2.数据库分类与常见的数据库
3.SQL
3.1.DDL
数据库操作
表操作
3.2.DML
3.3.DQL
3.4.DCL
管理用户
权限控制
4.Mysql常用的数据类型
1.数据库
数据库:是“按照数据结构来组织、存储和管理数据的仓库”。是一个长期存储在计算机内的、有组织的、可共享的、统一管理的大量数据的集合。
数据库管理系统(DBMS):操作和管理数据库的大型软件
SQL:操作关系型数据库的编程语言,定义了一套操作关系型数据库统一的标准
2.数据库分类与常见的数据库
关系型数据库:建立在关系模型基础上,由多张相互连接的二维表组成的数据库。
常见的类型有:
- MySQL、Oracle、SQL Server、SQLite、DB2
非关系型数据库:
常见的类型有:
- Redis、MongoDB
非关系型数据库的特性:
1、使用键值对存储数据;
2、分布式;
3、一般不支持ACID特性;
4、非关系型数据库严格上不是一种数据库,应该是一种数据结构化存储方法的集合。
非关系型数据库的优点:
1、无需经过sql层的解析,读写性能很高;
2、基于键值对,数据没有耦合性,容易扩展;
3、存储数据的格式:nosql的存储格式是key,value形式、文档形式、图片形式等等,文档形式、图片形式等等,而关系型数据库则只支持基础类型。
非关系型数据库的缺点:
1、不提供sql支持,学习和使用成本较高;
2、无事务处理,附加功能bi和报表等支持也不好;
3.SQL
SQL语句,根据其功能,分为四类:DDL、DML、DQL、DCL。
分类 | 解释 | 命令 |
DDL(数据定义语言) | 定义和管理数据对象,如数据库,数据表等 | CREATE、DROP、ALTER |
DML(数据操作语言) | 用于操作数据库对象中所包含的数据 | INSERT、UPDATE、DELETE |
DQL(数据查询语言) | 用于查询数据库数据 | SELECT |
DCL(数据控制语言) | 用来管理数据库的语言,包括管理权限及数据更改 | GRANT、COMMIT、ROLLBACK |
3.1.DDL
数据定义语言,用来定义数据库对象(数据库、表、z字段)。
数据库操作
- 创建数据库(判断是否存在)
create database [ if not exists ] 数据库名;
- 删除数据库
drop database [ if exists ] 数据库名;
- 查看所有数据库
show databases;
- 切换数据库
use 数据库名;
---------------------------------------------------------------------
表操作
- 创建表
create table[ if not exists ] 表名(
字段1 字段1类型[ comment 字段1注释 ],
字段2 字段2类型[ comment 字段2注释 ],
.......
)[ comment 表注释 ];
- 查看表
desc 表名;
- 删除表
drop table 表名;
删除指定表,并重新创建该表:
truncate table 表名;
- 添加字段
alter table 表名 add 字段名 类型(长度)[ comment 注释 ];
eg:
alter table emp add nickname varchar(20) comment '昵称';
- 修改字段
修改数据类型
alter table 表名 modify 字段名 新数据类型(长度)修改字段名和字段类型
alter table 表名 change 旧字段名 新字段名 类型(长度)[comment 注释]eg:
alter table emp change nickname username varchar(30) comment '用户名';
- 删除字段
alter table 表名 drop 字段名;
- 修改表名
alter table 表名 rename to 新表名;
---------------------------------------------------------------------
3.2.DML
- insert ( 添加数据语句 )
- update ( 修改数据语句 )
- delete ( 删除数据语句 )
- 添加数据
给指定字段添加数据
insert into 表名(字段名1,字段名2,...) values (值1,值2,...);
给全部字段添加数据
insert into 表名 values (值1, 值2, ...);
批量添加数据
insert into 表名 (字段名1,字段名2,...) values (值1, 值2, ...), (值1, 值2, ...);
- 修改数据
update 表名 set 字段名1 = 值1 , 字段名2 = 值2, ...[ where 条件 ];
- 删除数据
delete from 表名 [ where 条件 ];
---------------------------------------------------------------------
3.3.DQL
- 查询多个字段
SELECT [ALL | DISTINCT]
{ * | table.* | [ table.field1 [ as alias1] [, table.field2 [as alias2]][, …]] }
FROM table_name [ as table_ alias ]
[ left|out|inner join table_name2 ] #联合查询
[ WHERE … ] #指定结果需满足的条件
[ GROUP BY …] #指定结果按照哪几个字段来分组
[ HAVING …] #过滤分组的记录必须满足的次要条件
[ ORDER BY… ] #指定查询记录按一个或者多个条件排序
[ LIMIT { [ offset,] row_count | row_count OFFSET offset }] ; #指定查询的记录从哪条至哪条
Mysql-DQL查询语句
---------------------------------------------------------------------
3.4.DCL
数据控制语言,用来管理数据库用户、控制数据库的访问权限。
管理用户
1.查询用户
select * from mysql.user;
2.创建用户
create user '用户名'@'主机名' identified by '密码';
---------------------
主机名可以使用%通配
3.修改用户密码
alter user '用户名'@'主机名' identified with mysql_native_password by '新密码' ;
4.删除用户
drop user '用户名'@'主机名' ;
权限控制
1.查询权限
show grants for '用户名'@'主机名' ;
2.授予权限
grant 权限列表 on 数据库名.表名 to '用户名'@'主机名';
3.撤销权限
revoke 权限列表 on 数据库名.表名 from '用户名'@'主机名';
---------------------------------------------------------------------
4.Mysql常用的数据类型
列类型
规定数据库中该列存放的数据类型
- 数值类型
- 字符串类型
- 日期和时间型数值类型
- NULL值
数值类型
类型 | 说明 | 存储需求 |
---|---|---|
tinyint | 非常小的数据 | 1字节 |
int | 标准整数 | 4字节 |
bigint | 较大的整数 | 8字节 |
float | 单精度浮点数 | 4字节 |
double | 双精度浮点数 | 8字节 |
decimal | 字符串形式的浮点数 | decimal(m, d) m字节 保留d位小数 |
字符串类型
类型 | 说明 | 存储需求 |
---|---|---|
varchar | 可变字符串 | 变长度 |
text | 文本 | 2的16次方–1字节 |
日期和时间型数值类型
类型 | 说明 |
---|---|
DATE | YYYY-MM-DD |
DATETIME | YY-MM-DD hh:mm:ss |
TIMESTAMP | YYYYMMDDhhmmss格式表示的时间戳 |