当前位置: 首页 > news >正文

MySQL数据库入门基础知识 【1】推荐

数据库就是储存和管理数据的仓库,对数据进行增删改查操作,其本质是一个软件。

首先数据有两种,一种是关系型数据库,另一种是非关系型数据库。

关系型数据库是以表的形式来存储数据,表和表之间可以有很多复杂的关系,比如: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;

  1. 输入sql 语句
  2. 选中sql语句,点击查询
  3. 查看查询结果

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博客


http://www.lryc.cn/news/414628.html

相关文章:

  • Anaconda下的 jupyter notebook安装及使用
  • C语言初阶(11)
  • Unity获取Animator动画播放完成事件
  • git submodule 使用
  • 【Jenkins未授权访问漏洞 】
  • 前端处理 Excel 文件
  • (vue)el-cascader级联选择器按勾选的顺序传值,摆脱层级约束
  • Redis进阶(四):哨兵
  • 蓝屏事件:网络安全的启示
  • 技术方案评审原则
  • 117页PPT埃森哲-物流行业信息化整体规划方案
  • 百度网盘不下载怎么直接打印文件?
  • 设置了 robots.txt 禁止爬虫抓取,为什么还是能被百度搜索出来
  • DedeCMS-V5.7.82-UTF8织梦管理系统漏洞
  • 【Python】字符串练习题及代码示例
  • fluent动网格profile udf 注意事项
  • 【doghead】mac构建 2: player 端 clion构建
  • 论网络流(最大流篇)--新手入门超详解--包教包会
  • 环境搭建:全面详尽的 MongoDB Shell MongoDB Server介绍、安装、验证与配置指南(以 Windows 系统为主)
  • 使用 OpenSearch 的 K-NN 向量搜索来增强搜索功能
  • Less-2(闭合)
  • mysql介绍
  • 【ROS学习】ROS中 use_sim_time 参数的含义与作用
  • python-查找元素3(赛氪OJ)
  • 苹果 Safari 的隐私保护与广告追踪问题 :技术进展与挑战
  • pytest之fixture
  • Rancher
  • Wordpress建站问题记录
  • JavaFx中通过线程池运行或者停止多个周期性任务
  • 使用RabbitMQ实现异步支付状态通知