一、数据库
数据存储的仓库,其本质也是一个文件系统
数据库会按照特定的格式对数据进行存储,用户可以对数据库中的数据进行增加,修改,删除及查询操作。
数据库管理系统的层次:软件
-->数据库
-->数据表
-->数据记录
常见的数据库:mysql,oracle
二、数据库的安装
将软件解压,然后把文件夹复制到D:\dev
结构如下(==注意:目录不能有空格 不能有中文==)
设置环境变量:
新建系统变量,添加MYSQL_HOME=mysql安装目录
编辑环境变量,在path中添加%MYSQL_HOME%\bin
创建服务并启动
# 注意调整下面数据库配置文件的位置
mysqld --install mysql --defaults-file="D:\dev\mysql-8.0.31-winx64\my.ini"
# 初始化
mysqld --initialize-insecure
# 启动服务
net start mysql
# 设置root用户的密码
mysqladmin -u root password root
三、数据库操作
1.连接数据库
语法:mysql [-h 服务器地址 -P 端口号] -u用户名 -p密码
实例:mysql -uroot -p
2.创建数据库
语法:create database [IF NOT EXISTS] 数据库名;
实例:create database if not exists db1;
3.查询数据库
语法:show databases;
4.删除数据库
语法:drop database [IF EXISTS] 数据库名;
实例:drop database if exists db1;
5.切换数据库
查看正在使用的数据库:select database();
语法:use 数据库名;四、数据表操作
6.创建数据表(单表)
语法:create table 表名(
字段名1 字段类型1(字段长度) [ comment 字段1注释 ], -- 不是;号
字段名2 字段类型2(字段长度) [ comment 字段2注释 ], ....
字段名n 字段类型n(字段长度) [ comment 字段n注释 ]-- 最后一列后面是没有,的
) [ comment 表注释 ];
实例:create table student1(
id int comment '标识',
name varchar(30) comment '姓名',
gender varchar(1) comment '性别',
age int comment '年龄',
birthday date comment '生日'
) comment '学生表';
7.数据类型
大分类 | 类型 | 描述 |
---|---|---|
float | 浮点数类型 | |
数值类型 | int | 大整数 |
double | 浮点数类型 | |
字符类型 | varchar(30) | 可变长度字符串,如果插入的长度小于定义长度时,插入多长就存多长 |
char(11) | 固定长度字符串,如果插入的长度小于定义长度,则可以用空格进行填充 | |
日期类型 | date | 日期,格式:yyyy-MM-dd |
datetime | 日期时间,格式:yyyy-MM-dd HH:mm:ss |
8.数据约束
约束 | 描述 | 关键字 |
---|---|---|
主键约束 | 主键是一行数据的唯一标识,要求非空且唯一;一张表只能有一个注解列 | primary key(auto increment自增) |
非空约束 | 限制该字段值不能为null | not null |
唯一约束 | 保证字段的所有数据都是唯一、不重复的 | unique |
默认约束 | 保存数据时,如果未指定该字段值,则采用默认值 | default |
外键约束 | 让两张表的数据建立连接,保证数据的一致性和完整性 | foreign key |
9.插入数据
==指定字段添加数据==:insert into 表名 (字段名1, 字段名2) values (值1, 值2)
==全部字段添加数据==:insert into 表名 values (值1, 值2, ...)
10.修改数据
==修改数据:==update 表名 set 字段名1 = 值1 , 字段名2 = 值2 , .... [ where 条件 ]
11.删除数据
==删除数据:==delete from 表名 [ where 条件 ]
12.基本查询
==查询指定字段==:select 字段1, 字段2, 字段3 from 表名
==查询所有字段==:select * from 表名
==设置别名==:select 字段1 [ as 别名1 ] , 字段2 [ as 别名2 ] from 表名
==去除重复记录==:select distinct 字段列表 from 表名
13.条件查询
==条件查询==:select 字段列表 from 表名 where 条件列表
比较运算符 | 功能 | 逻辑运算符 | 功能 | |
---|---|---|---|---|
> | 大于 | and | 并且 (多个条件同时成立) | |
>= | 大于等于 | or | 或者 (多个条件任意一个成立) | |
< | 小于 | ! | 非 , 不是 | |
<= | 小于等于 | |||
= | 等于 | |||
<> 或 != | 不等于 | |||
is null | 是null | |||
between ... and ... | 在某个范围之内(含最小、最大值) | |||
in(...) | 在in之后的列表中的值,多选一 | |||
like 占位符 | 模糊匹配(_匹配单个字符, %匹配任意个字符) |
14.==聚合函数:== 将一列数据作为一个整体,进行纵向计算,语法为: select 聚合函数(字段名)
from 表名
函数 | 功能 |
---|---|
count | 统计数量 |
max | 最大值 |
min | 最小值 |
avg | 平均值 |
sum | 求和 |
15.分组过滤
==分组过滤:== select 分组字段,聚合函数() from 表名 group by 分组字段名 having 分组后过滤条件
==排序:== select 字段列表 from 表名 order
16.排序
by 字段1 排序方式1 , 字段2 排序方式2
ASC:升序 DESC:降序
17.分页
==分页:== select 字段列表 from 表名 limit 起始索引, 查询记录数