数据库就是储存和管理数据的仓库,对数据进行增删改查操作,其本质是一个软件。
首先数据有两种,一种是关系型数据库,另一种是非关系型数据库。
关系型数据库是以表的形式来存储数据,表和表之间可以有很多复杂的关系,比如:MySQL、Oracle、SQL Server等;
非关系型数据库是以数据集的形式存储数据,大量数据集中存储在一起,比如:MongDB、Redis、Mencached等
MySQL就是一种开源的关系型数库,也是最受欢迎的数据库之一,今天对MySQL数据的基础知识做了整理,方便自己查看,也欢迎正在学习MySQL数据库的同学参考,谢谢。
目录
1.安装配置连接
2.数据库的增删改查基本操作
2.1 查询显示数据库
2.2 新增创建数据库
2.3 删除数据库
2.4修改数据库
3.SQL数据类型
3.1 整数类型
3.2 定点类型
3.3 字符串类型
3.4 日期时间类型
4.数据表的增删改查
4.1 查询数据表
4.2 新增数据表
4.3 删除数据表
4.4 修改数据表
5.SQL约束
5.1 主键约束 primary key 数据唯一性 值不可为空 不可重复。
5.2 联合主键约束
5.3 自动递增 auto_increment
5.4 unique 唯一约束
5.5 非空约束 not null
5.6 default 默认值
6.外键约束
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知识 请参考:MySQL数据库入门基础知识 【2】
MySQL数据库安装配置连接教程