数据库(DataBase):存储和管理数据的一个仓库。
数据库类型分为:关系型数据库和非关系型数据库。
关系型数据库(SQL):存储的数据以行和列为格式,类似于excel表格,一张二维表。例如:MySQL、Oracle等。
非关系型数据库:数据是以对象类型存储。例如:redis、mongdb等。
开源免费、属于Oracle公司旗下。体积小、速度快。
常用版本:5.7和8.0两个版本。
请参考:百度
常见的MySQL可视化管理工具有:Navicat、sqlyog、DBeaver等。
创建数据库
create database 数据库名称;
指定数据库字符集
create database 数据库名称 default character set utf8;
指定数据库引擎
create database 数据库名称 engine = innodb
删除数据库
drop database 数据库名称;
使用数据库
use 数据库名称;
查看已有数据库
show databases; -- 有s
查看某个数据库的信息
show create database 数据库名称;
创建数据表
create table 表名称(
字段名称 类型 [属性] [索引] [注释],
字段名称 类型 [属性] [索引] [注释],
字段名称 类型 [属性] [索引] [注释]
);
CREATE TABLE USER (
id INT PRIMARY KEY auto_increment,
username VARCHAR (20) NOT NULL,
password VARCHAR (20) NOT NULL
);
数值类型
字符串类型
日期类型
myisam | innodb | |
---|---|---|
事务支持 | 不支持 | 支持 |
数据行锁定 | 不支持(默认是表锁) | 支持 |
外键约束 | 不支持 | 支持 |
全文索引 | 支持 | 不支持 |
表空间大小 | 较小 | 较大,约是myisam的2倍 |
mysiam优点:节约空间、存储速度快。
innodb优点:安全性高,支持事务,支持多用户多表操作。
添加数据
insert into 表名称 (字段1,字段2...) values (值1,值2...);
更新数据
update 表名称 set 字段1=值1,字段2=值2... where 条件;
删除数据
delete from 表名称; -- 全表删除
delete from 表名称 where 条件; -- 指定数据删除
清空数据
truncate 表名称;
truncate作用是清空一张数据表中的所有数据,表的结构和索引约束不会改变。
基本查询语句格式
select 字段 from 表名称 where 条件 order by 排序字段 group by 分组字段 Asc/Desc;
去重查询
select distinct 字段 from 表名称 where 条件;
使用关键字distinct去除重复的数据,只保留一条。
like模糊查询
select 字段 from 表名称 where 字段 like '%内容%';
IN范围查询
select 字段 from 表名称 where 字段 in(值1,值2,值3);
select 字段
from A
inner join B
on A.x = B.x
where 条件;
select 字段
from A
left join B
on A.x = B.x
where B.x is null;
select 字段
from A
right join B
on A.x = B.x
where A.x is null;
select 字段
from A
left join B
on A.x = B.x
select 字段
from A
right join B
on A.x = B.x
select 字段
from A
full outer join B
on A.x = B.x
select 字段
from A
full outer join B
on A.x = B.x
where A.x is null or B.x is null;
count()函数:统计数量。
-- 指定列计数
select count(指定列) from 表名称;
-- *
select count(*) from 表名称;
-- 1
select count(1) from 表名称;
三者区别:
max()函数:求最大值。
select max(指定列) from 表名称;
min()函数:求最小值。
select min(指定列) from 表名称;
avg()函数:求平均值。
select avg(指定列) from 表名称;
sum()函数:求数据总和。
select sum(指定列) from 表名称;