快考试了,还是勉强学一下这个数据库吧(虽然我讨厌这玩意)
数据库相关概念
| 名称 | 全称 | 简称 |
|---|---|---|
| 数据库 | 存储数据的仓库,数据是有组织的进行存储 | DataBase(DB) |
| 数据库管理系统 | 操纵和管理数据库的大型软件 | DataBase Management System(DBMS) |
| SQL | 操作关系型数据库的编程语言,定义了一套操作关系型数据库统一标准 | Structured Query Languague(SQL) |
主流的关系型数据库管理系统:
- Oracle
- MySQL
- Microsoft SQL Server
- PostgreSQL
- IBM Db2
- Microsoft Acess
- SQLite
- MariaDB
- Microsoft Azure SQL Database
- Hive
MySQL怎么下载不说了,我们直接学SQL
因为现在基本上没有人使用命令行了,基本上就是用 navicat 或者 其他可视化工具,不过还是学习一下吧(毕竟要考 悲)
MsSQL的启动和停止方式
方式一
首先我们输入 Win +R 并在窗口输入 services.msc
1 | services.msc |


此时可以看到MySQL默认是启动了,也可以手动关掉
方式二

直接在命令行(以管理员身份运行)输入指令
1 | net start mysql80 //启动 |
1 | net stop mysql80 //停止 |

客户端连接
同样的也是有两种方式
方式一
用这个东西,也就是一个控制台

进入后输入密码(就是你下载MySQL自己设置的那个密码)

方式二

但是这个有要求—–需要配置 Path路径

首先我们输入 Win +R 输入 sysdm.cpl
1 | sysdm.cpl |

在 高级 里打开 环境变量

然后找到path

然后就是点击 新建 把 MySQL server的路径放进去(吐槽一下,不知道为什么这个默认在C盘,直接让我C盘红了)


完成后需要一路点击确定来保存
然后我们 进入 CMD 窗口
Win + R输入 cmd
1 | cmd |

1 | mysql -u root -p |

可以看到打开了
MySQL数据模型


在一个数据库中可以创建多个服务器,在一个服务器中又可以创建多张表
SQL语句
Sql的分类


SQL的图形化界面软件


如你所见,这两个工具可以让所有操作轻而易举,真的 也不需要敲什么命令行了 全都是自动化的
学校也不知道怎么回事,老师只知道教学生使用命令行,还有课本上的古董伪代码,真的是严重脱离实际,关键是还要求什么手写代码,根本没有上机练习,不知道有什么意义,真的是无语死了
一 : DDL

① 数据库操作
① 显示所有数据库:
1 | SHOW DATABASES; |
我们先使用第一个命令看看

② 查询当前数据库:
1 | SELECT DATABASE(); |
记住在使用查询功能先要使用数据库
③ 创建数据库:
1 | CREATE DATABASE [ IF NOT EXISTS ] 数据库名 [ DEFAULT CHARSET 字符集] [COLLATE 排序规则 ]; |
我们也可以新建一个
1 | CREATE DATABASE itcast; |

但是假如我们再次创建相同名字的数据库会不会覆盖原来的呢——–答案是,不会,MySQL会直接报错

我们可以这么干,判断当前是否存在,不存在就创建,存在就不创建
1 | CREATE DATABASE if not exists itcast; |

或者也可以指定数据库字符的编码格式
1 | create database huyang default charset utf8mb4; |

注意:
UTF8字符集长度为3字节,有些符号占4字节,所以推荐用utf8mb4字符集
④ 删除数据库:
1 | DROP DATABASE [ IF EXISTS ] 数据库名; |

和创建是一样的,可以增加判断条件
1 | drop database if exists itcast; |

⑤ 使用数据库:
1 | USE 数据库名; |

② 表操作
① 查询

① 查询当前数据库所有表:
1 | SHOW TABLES; |

因为是才创建的所以是空表
② 查询表结构:
1 | DESC 表名; |
③ 查询指定表的建表语句:
1 | SHOW CREATE TABLE 表名; |
这两个指令暂时不讲等会说
② 创建

1 | CREATE TABLE 表名( |
注意这个最后一个字段没有逗号(别问我怎么知道的)

ok创建完了,我们使用刚才的两个命令了(即 DESC 表名; 和 SHOW CREATE TABLE 表名; )


ENGINE=InnoDB 表示存储引擎
DEFAULT CHARSET=utf8mb4 表示存储编码格式
COLLATE=utf8mb4_0900_ai_ci表示排序规则
这几个都是默认的
③ 修改
① 添加字段

1 | ALTER TABLE 表名 ADD 字段名 类型(长度) [COMMENT 注释] [约束];` |

修改后

② 修改数据类型和修改字段名和字段类型

1 | 修改数据类型: |


③ 删除字段

1 | 删除字段: |

④ 修改表名

1 | 修改表名: |

⑤ 删除表

1 | 删除表: |


注意,这两种删除方式无论是哪种方式都会将表中的数据全部删除
③ 数据类型

① 数值类型
② 字符串类型

char和varchar的区别:
- char: 例如char[10] 即使存储一个字符,也会占用10个字符的空间,因为其他空间会使用空格占用,
- varchar: 例如 varchar[10] 存储几个字符就占用几个空间
- 相比varchar来说char的性能更好,因为varchar需要根据内容来计算所需的内存空间,消耗物理计算资源
- 对于用户名来说用varchar更好一些,对于性别这种char更好一些
③ 日期时间类型
一般来说DATE TIME DATETIME 用的比较多一些
生日用date更好一些
④ 案例

1 | create table emp( |



评论区