Day 20 20.2 数据库之MySQL基础
基本概念
- 前面的学习中我们提到,mysql是关系型数据库,
- 所以我们要操作mysql就需要使用SQL(结构化查询语言)。
SQL规范
注释
SQL类型
根据不同的用途,SQL语句通常分3大类型:
1、数据定义语言(Data Definition Language,DDL)
用于创建或删除数据库以及数据表的语句,DDL包含以下几种指令:
CREATE: 创建数据库和表等对象
DROP: 删除数据库和表等对象
ALTER: 修改数据库和表等对象的结构
2、数据操纵语言(Data Manipulation Language,DML)
用于对数据表中的数据进行增删查改的。
SELECT: 查询表中的数据
INSERT: 向表中插入新数据
UPDATE: 变更表中的数据
DELETE: 删除表中的数据
3、数据控制语言(Data Control Language,DCL)
用于对控制数据库的操作权限的,包括用户权限以及数据操作权限。
COMMIT: 确认对数据库中的数据进行的变更
ROLLBACK: 取消对数据库中的数据进行的变更
GRANT: 赋予用户操作权限
REMOVE: 取消用户的操作权限
常用命令
命令 | 描述 |
---|---|
help | 查看系统帮助想你想 |
status | 查看数据库管理系统的状态信息 |
exit | 退出数据库终端连接 |
quit | 退出数据库终端连接 |
\c | 当打错命令了,想换行重新写时可以在错误命令后面跟着\c回车 |
数据库操作
数据库基础
创建数据库
在磁盘上创建一个存储数据表的文件夹。
注意:mysql中的编码字符集中utf-8,要换成utf8mb4。SQL语句中的中括号部分表示可选。
查看数据库
修改数据库
删除数据库
使用数据库
- 切换数据库 注意:进入到某个数据库后没办法再退回之前状态,但可以通过use进行切换
特别注意:
使用 DROP DATABASE 命令时要非常谨慎,
- 在执行该命令后,MySQL 不会给出任何提示确认信息。
- DROP DATABASE 删除数据库后,数据库中存储的所有数据表和数据也将一同被删除,而且不能恢复。
- 因此最好在删除数据库之前先将数据库进行备份。
小结
数据表操作
数据表就相当于存储数据的特殊文件,数据表中的一条记录就相当于普通文件的一行内容。
与普通文件不同的是,数据表是二维的表格结构。
创建数据表
数据表就相当于文件,文件有文件名,自然地,数据表也要有表名。同样道理,数据表中的一条记录就相当于文件的一行内容。只是不同的是,数据表需要定义表头(上图中的首行),称为表的字段名。而且因为数据库的存储数据更加科学、严谨,所以需要创建表时要给每一个字段设置数据类型以及字段约束(完整性约束条件)。
- 注意:
- 上面SQL语句中,小括号中的定义字段语句后面必须以英文逗号结尾,而最后一个字段的定义语句不能有英文逗号出现,否则报错。
- 在同一张数据表中,字段名是不能相同,否则报错!
- 创建数据表的SQL语句中,存储空间和字段约束是选填的,而字段名和数据类型则是必须填写的。
创建班级表
- 上面的SQL语句就相当于创建了一个表格。
id | name | address | total |
---|---|---|---|
创建学生表
练习:
- 假设现在我们有一个课程表(courses),
- 里面需要保存课程编号(id),课程名(cource),授课老师(lecturer),教室(address)。
查看数据表
查看所有数据表
- 列出当前数据库中所有的数据表
- 语法:
查看表结构
- 以表格形式列出当前数据表的结构信息
- 语法:
查看建表语句
删除数据表
- 删除表结构,并把数据一并删除,
- 使用需谨慎,强烈建议先备份后删除,或者直接改表名来代替删除操作。
重置表信息
- 保留数据表结构,但是把数据表存储的数据以及数据表的状态回滚,
- 相当于删除原表,并新建一张一模一样的空数据表。
表记录操作
【1】添加记录
INSERT 语句有两种语法形式
- INSERT…VALUES 语句
- INSERT…SET 语句
- 指定需要插入数据的列名。若向表中的所有列插入数据,则全部的列名均可以省略,直接采用 INSERT<表名>VALUES(…) 即可。
- INSERT 语句后面的列名称顺序可以不是 表定义时的顺序,即插入数据时,不需要按照表定义的顺序插入,只要保证值的顺序与列字段的顺序相同就可以。
- 使用 INSERT…VALUES 语句可以向表中插入一行数据,也可以插入多行数据;
案例:
【2】查询记录
标准语法:
准备数据:
查询字段(select)
where语句
- 练习:
order:排序
- 按指定的列进行,排序的列即可是表中的列名,也可以是select语句后指定的别名。
练习:
group by:分组查询
- GROUP BY 语句根据某个列对结果集进行分组。分组一般配合着聚合函数完成查询。
常用聚合(统计)函数
max()
:最大值。min()
:最小值。avg()
:平均值。sum()
:总和。count()
:个数。
在MySQL的SQL执行逻辑中,where条件必须放在group by前面!也就是先通过where条件将结果查询出来,再交给group by去分组,完事之后进行统计,统计之后的查询用having。
练习:
limit:记录条数限制
distinct:查询去重
【3】更新记录
【4】删除记录
<表名>
:指定要删除数据的表名。ORDER BY
子句:可选项。表示删除时,表中各行将按照子句中指定的顺序进行删除。WHERE
子句:可选项。表示为删除操作限定删除条件,若省略该子句,则代表删除该表中的所有行。LIMIT
子句:可选项。用于告知服务器在控制命令被返回到客户端前被删除行的最大值。
关联表
一对多关系为关系数据库中两个表之间的一种关系,该关系中第一个表中的单个行可以与第二个表中的一个或多个行相关,但第二个表中的一个行只可以与第一个表中的一个行相关。
__EOF__

本文链接:https://www.cnblogs.com/dream-ze/p/17281185.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角【推荐】一下。您的鼓励是博主的最大动力!
本文来自博客园,作者:Chimengmeng,转载请注明原文链接:https://www.cnblogs.com/dream-ze/p/17281185.html
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· .NET10 - 预览版1新功能体验(一)