一、数据库相关概念
1、数据库
存储数据的仓库,数据是有组织地进行存储
英文:DataBase,简称DB
2、数据库管理系统(例如MySQL)
管理数据库的大型软件
英文:DataBase Management System 简称DBMS
3、SQL
英文:Structured Query Language,简称SQL,结构化查询语言
操作关系型数据库的编程语言
定义操作所有关系型数据库的统一标准。
4、常见的关系型数据库管理系统
二、MySQL数据库
MySQL安装 5.7.24
\bin放可执行文件
将来会用到\bin目录里的可执行文件,如果说我们想在任何盘符下都来使用\bin目录下的可执行文件.exe,就需要配置环境变量。
安装好MySQL就可以称,安装了MySQL的计算机为MySQL服务器(由MySQL对外提供数据管理和存储的服务)了
MySQL卸载
1、net stop mysql停掉MySQL服务
2、mysql -remove mysql
3、最后删除MySQL目录以及相关的环境变量
MySQL配置
MySQL登录、退出
登录:
(自己的)mysql -u用户名 -p密码
(别人的)mysql -u用户名 -p密码 -h要连接的mysql服务器IP地址(默认127.0.0.1) -P端口号(默认3306)
退出
exit
quit
MySQL数据模型
关系型数据库(通过表来存的)
关系型数据库是建立在关系模型基础上的数据库,简单说,关系型数据库是由多张表能互相连接的二维表组成的数据库。
优点:
1、都是使用表结构,格式一致,易于维护。
2、使用通用的SQL语言操作,使用方便,可用于复杂查询
3、数据存储在磁盘中,安全。
在MySQL中数据库就是文件夹
三、SQL
1、sql简介
英文:Structured Query Language,简称SQL,
结构化查询语言,操作关系型数据库的编程语言
定义操作所有关系型数据库的统一标准。
对于同一个需求,每一种数据库操作的方式可能会存在一些不一样的地方,我们称为“方言”
2、sql通用语法
a、SQL语句可以单行或多行书写,以分号结尾。
b、MySQL数据库的sql语句不区分大小写,关键字建议使用大写。
c、注释
单行注释:-- 注释内容(在--后面接注释必须有一个空格) 或 #注释内容(MySQL特有的)
多行注释:/* 注释 */
3、sql分类
DDL(Data Definition Language)数据定义语言,用来定义数据库对象:数据库,表,列等
DML(Data Manipulation Language)数据操作语言,用来对数据中表的数据进行增删改
DQL(Data Query Language)数据查询语言,用来查询数据库中表的记录(数据)
DCL(Data Control Language)数据控制语言,用来定义数据库的访问权限和安全级别,以及创建用户
4、ddl(DDL)操作数据库、表等
ddl(DDL)对于数据库的操作:
1.查询
show databases;
2.创建
- 创建数据库
- cerate database 数据库名称;
- 创建数据库(判断,如果不存在则创建)
- create database if not exists 数据库名称;
3.删除
- 删除数据库
- drop database 数据库名称;
- 删除数据库(判断,如果存在则删除)
- drop database if exits 数据库名称;
4.使用
- 查看当前使用的数据库
- select database();
- 使用数据库
- use 数据库名称;
ddl(DDL)操作表
- 创建(Create)
- 查询(Retrieve)
- 修改(Update)
- 删除(Delete)
查询表:
查询当前数据库下所有表名称
show tables;
查询表结构
desc 表名称;
创建表:
create table 表名 (
字段名1 数据类型,
字段名2 数据类型,
...
字段名n 数据类型n
);
数据类型:
MySQL支持多种数据类型,可以分为三类:
数值
使用举例:
- age int
- score double(总长度(位数),小数点后保留的位数)---(0-100,保留两位)3+2=5
score double(5,2)
日期
使用举例:
birthday date 这里日期是只有年月日
字符串
使用举例:
- name char(32) 小括号里是限制的数据字符长度最大值(以空间换时间)
这个是定长字符串:意味着,保留“张三”,
这两个字符为char类型,但在这里依然会占32个字符,后面三十个字符 用空格补齐
所以char的存储性能要高一点
但是浪费空间
确定存储字符的长度时,用char更好,比如“性别”,只需要一个字符,sex char(1)
- name varchar(32) 类似的 (以时间换空间)
这是变长字符串,意味着保留“张三”,只会占两个字符空间
varchar的存储性能要低一点(因为他要计算保留数据的长度)
节约空间
不确定存储数据的长度时,用varchar,比如”用户名“ ,不一定几个字符,name varchar(10)
案例练习:
create table student(
id int,
name varchar(10),
gender char(1),
birthday date,
score double(5,2),
email varchar(64),
tel varchar(15),
status tinyint
);
删除表(与删除数据库类似)
修改表:
- 修改表名
alter table 表名 rename to 新的表名;
- 添加一列
alter table 表名 add 列名 数据类型;
- 修改数据类型
alter table 表名 modify 列名 新数据类型;
- 修改列名和数据类型
alter table 表名 change 列名 新列名 新数据类型;
- 删除列
alter table 表名 drop 列名;
5、dml(DML)对表中的数据进行增删改
- 添加(insert)
- 修改(update)
- 删除(delete)
dml(DML)添加数据
- 给指定列添加数据
insert into 表名(列名1,列名2,...) values(值1,值2,...);
- 2给全部列添加数据
insert into 表名 values(值1,值2,...);
- 3批量添加数据
insert into 表名(列名1,列名2,...) values(值1,值2,...),(值1,值2,...)...;
insert into 表名 values(值1,值2,...),(值1,值2,...)...;
dml(DML)修改数据
- 修改表数据
update 表名 set 列名1=值1,列名2=值2,...,[where 条件1];
注意:修改语句中如果不加条件,则将所有数据都修改!!!
dml(DML)删除数据
- 删除数据
delete from 表名 [where 条件];
注意:删除语句中如果不加条件,则将所有数据都修改!!!
6、dql(DQL)对数据库进行查询(最重要)
查询语法
- 基础查询
- 条件查询(where)
- 分组查询(group by)
- 排序查询(order by)
- 分页查询(limit)
select 字段列表
from 表名列表
where 条件列表
group by 分组字段
having 分组后条件
order by 排序字段
limit 分页限定
基础查询
查询多个字段
select 字段列表 from 表名;
select * from 表名;-- 查询所有数据
- 去除重复记录
select distinct 字段列表 from 表名;
- 起别名
as:as也可以省略
条件查询(where)
分组查询(group by)
计算平均分其实就是一个分组操作,也是统计的操作!!!
聚合函数
概念:将一列数据作为一个整体,进行纵向计算。
聚合函数的分类:
- count(列名) 统计数量(一般选用不含null的列),以下两种作为一般选取的类型
- 主键
- *
- max(列名) 最大值
- min(列名) 最小值
- sum(列名) 求和
- avg(列名) 平均值
聚合函数的语法:
select 聚合函数名(列名) from 表;
注意:null值不参与所有聚合函数运算