数据库就是储存和管理数据的仓库,对数据进行增删改查操作,其本质是一个软件。
首先数据有两种,一种是关系型数据库,另一种是非关系型数据库。
关系型数据库是以表的形式来存储数据,表和表之间可以有很多复杂的关系,比如:MySQL、Oracle、SQL Server等;
非关系型数据库是以数据集的形式存储数据,大量数据集中存储在一起,比如:MongDB、Redis、Mencached等
MySQL就是一种开源的关系型数库,也是最受欢迎的数据库之一,今天对MySQL数据的基础知识做了整理,方便自己查看,也欢迎正在学习MySQL数据库的同学参考,谢谢。
目录
5.1 主键约束 primary key 数据唯一性 值不可为空 不可重复。
1.安装配置连接
MySQL数据库的安装配置前面已经写过,需要了解的请参考:详细教程 MySQL 数据库 下载 安装 连接 环境配置 全面-CSDN博客
数据库安装包有需要的请去主页资源自行下载!!
2.数据库的增删改查基本操作
连接数据库
在第一步安装的时候我们已经会使用navicat (GUI工具)并成功连接数据库了。
2.1 查询显示数据库
查询显示数据库 show databases;
- 输入sql 语句
- 选中sql语句,点击查询
- 查看查询结果
2.2 新增创建数据库
-- 1.创建数据库 user 这种写法如果当前数据库存在这个表就会报错的
create database user;
-- 2.如果数据库不存在则会创建;存在就什么也不做 但是不会报错(推荐)
create database if not exists user;
第一种写法当数据库存在user 时报错
第二种写法不会报错
2.3 删除数据库
-- 1.删除数据库 如果数据库不存在会报错
drop database user;-- 2.如果数据库存在则删除 不存在什么也不会做 但不会报错 (推荐使用)
drop database if exists user;
报错图示
2.4修改数据库
这里我们把创建的user数据库 默认字符集和排序规则进行修改,然后用sql修改成默认值。
-- 这里utf8mb4:字符集 兼容 utf8,且比utf8 能表示更多的字符
-- utf8mb4_0900_ai_ci:字符集对应的排序规则 大小写不影响
alter database user character set utf8mb4 collate utf8mb4_0900_ai_ci;
2.5 使用数据库
-- 使用数据库
select database();
use user;
3.SQL数据类型
sql主要数据类型 :数字、字符串、日期时间等类型。
3.1 整数类型
浮点类型
3.2 定点类型
3.3 字符串类型
3.4 日期时间类型
4.数据表的增删改查
4.1 查询数据表
-- 查询数据表
select database();
--使用数据库
use demo;
-- 查看当前数据库的所有表
show tables;
4.2 新增数据表
--创建数据表 不存在才创建 不会报错 (推荐)
create table if not exists student (
id int unsigned,
name varchar(20),
age tinyint unsigned,
gender enum('男性','女性','保密'),
createAt timestamp
)
查询表中的字段信息
4.3 删除数据表
-- 删除数据表 (推荐)
drop table if exists student;
4.4 修改数据表
改表名
-- 修改数据表表名
alter table student rename to students;
加字段
--添加字段
alter table student add updatedAt timestamp;
--查看数据表信息
desc student;
删除字段
--添加字段
alter table student drop updatedAt;
--查看数据表信息
desc student;
修改字段名称和字段的数据类型
--修改字段的数据类型
alter table student modify createAt datetime;
--修改字段的名称和数据类型
alter table student change createAt createAT TIMESTAMP;
5.SQL约束
对数据表进行约束。
5.1 主键约束 primary key 数据唯一性 值不可为空 不可重复。
//没有primary key约束的
create table if not exists use_1(
id int unsigned,
name varchar(20)
);
-- primary key 主键约束 数据的唯一性 值不可重复 不可为空
create table if not exists use_2(
id int unsigned primary key,
name varchar(20)
);
--主键也可以这样设置
create table if not exists use_3(
id int unsigned,
name varchar(20),
primary key(id)
);
5.2 联合主键约束
-- 联合主键 就是两个字段一起约束数据的唯一性 这里id 和name 两个字段
create table if not exists use_4(
id int unsigned,
name varchar(20),
primary key(id,name)
);
当联合主键约束中的其中一个字段重复不会提示,两个字段完全重复会约束。
5.3 自动递增 auto_increment
设置自动递增的字段,当我们新增数据时,该字段会自动填充数据。
-- 自动递增 auto_increment
create table if not exists use_6(
id int unsigned primary key auto_increment,
name varchar(20)
);
5.4 unique 唯一约束
-- unique 唯一约束
-- 保证某个字段的值永远不重复 但允许有多个null值存在
-- 一张表可以只能有一个主键,但是可以有多个unique
create table if not exists use_7(
id int unsigned primary key auto_increment,
name varchar(20) unique
);
5.5 非空约束 not null
--非空约束 not null
create table if not exists use_8(
id int unsigned primary key auto_increment,
name varchar(20) not null
);
5.6 default 默认值
-- default 默认值
create table if not exists use_9(
id int unsigned primary key auto_increment,
name varchar(20) not null,
gender enum('男性','女性','保密') default('保密'),
cerateAt timestamp default crrent_timestamp,
updateAt timestamp default crrent_timestamp on update current_timestamp
);
6.外键约束
有关MySQL数据库外键默认约束和外键操作的restrict严格模式、set null置空操作、cascade级联操作的基础知识请参考:MySQL数据库 外键默认约束和action 基础知识【2】推荐-CSDN博客
MySQL数据库数据的增删改查,包括基础查询、where条件查询、排序、分页、聚合、分组、having以及多表查询基础知识请参考:MySQL数据的增删改查 where 条件查询 基础知识 【3】推荐-CSDN博客