数据库基础

MySQL连接

安装完成之后就需要连接,使用以下指令进行连接。

powershell 复制代码
mysql -h 127.0.0.1 -P 3306 -u root -p
#-h (Host)指定要连接的 MySQL 服务器所在的主机名或 IP 地址
#-P (Port)指定的端口号
#-u (User)指定登录数据库的用户名
#-p (password)输入的密码
quit 退出
#不写-h就默认连接本地的数据库
#不写-P就使用默认配置的端口号(my.cnf里面的)
mysql -u root -p

目前是免密码的后续需要设置密码

数据库基础

什么是数据库?

MySQL本质是基于C(mysql)S(mysqld)模式一种网络服务

  1. mysql 是数据库服务的客户端
  2. mysqld 是数据库服务的服务器端
    mysql是一套提供数据存取的服务的网络程序
    数据库一般指的是,在磁盘或者内存中存储的特定结构组织的数据--在磁盘上存储的一套数据库方案
  • 为什么不用文件存储数据?
    文件确实提供了数据的存储服务,但是没有提供非常好的数据管理能力
    数据库对数据内容存储提供了一套解决方案,只要给他字段或者要求,他就能直接给结果

初次使用MySQL数据库

  1. 创建数据库
sql 复制代码
create database helloworld;
  • 每个指令必须要以;结尾
  • 创建数据库,本质就是Linux下的一个目录
  1. 建立一张表
sql 复制代码
use helloworld;   #使用helloworld数据库
cteate table student(
	name varchar(32),
	age int,
	gender varchar(2)
	);
  • 数据库内建表,本质就是在Linux下创建对应的文件即可
  1. 插入数据
sql 复制代码
insert into student (name,age,gender) values ('张三',20,'男');
select * from student;   #显示表数据
  • 数据库本质其实也是文件,由数据库服务帮我们进行操作
  • 数据库逻辑存储结构是行列式

数据库,服务器,表关系

SQL分类

  • DDL(Data Definition Language)数据定义语言,用来维护存储数据的结构
    代表指令:create,drop,alter
  • DML(Data Manipulation Language)数据操纵语言,用来对数据进行操作
    代表指令:insert,delete,update
    DML中又单独分了一个DQL,数据查询语言,代表指令:select
  • DCL(Data Control Language)数据控制语言,只要负责权限管理和事物
    代表指令:grant,revoke,commit

这 9 个命令覆盖了 MySQL 数据库的 "结构定义"、"数据操作"、"权限控制""事务提交" 四大核心领域。为了帮你更好地区分,我把它们分成了四组来讲解:

第一组:DDL(数据定义语言)------ 操作"结构"

这一组针对的是库、表、列 本身,操作后会隐式提交事务(无法回滚),请谨慎操作。

  • CREATE(创建) :用来新建数据库、表、视图或索引。
    • 例子:CREATE DATABASE school;(创建数据库)、CREATE TABLE students (id INT, name VARCHAR(20));(创建表)。
  • DROP(删除/丢弃) :用来彻底删除 数据库、表或列。这是物理删除,结构和数据一起消失,极其危险,通常不可恢复
    • 例子:DROP TABLE students;(整个表直接没了)。
  • ALTER(修改/改变) :用来修改已有表的结构,比如增加列、删除列、修改列的类型或重命名表。
    • 例子:ALTER TABLE students ADD COLUMN age INT;(增加一列年龄字段)。

第二组:DML(数据操作语言)------ 操作"内容"

这一组针对的是表里的具体数据行(增、删、改),这是日常开发中使用最频繁的命令。

  • INSERT(插入) :向表中添加/写入 新的数据行。
    • 例子:INSERT INTO students (id, name) VALUES (1, '张三');
  • DELETE(删除) :从表中删除 现有的数据行(只删数据,不删表结构)。注意 :如果不加 WHERE 条件,会清空全表数据。
    • 例子:DELETE FROM students WHERE id = 1;(删除学号为1的学生)。
  • UPDATE(更新/修改) :修改表中已存在 的数据行中的字段值。注意 :如果不加 WHERE 条件,会修改全表所有行的该字段。
    • 例子:UPDATE students SET name = '李四' WHERE id = 1;(把学号为1的名字改成李四)。

第三组:DCL(数据控制语言)------ 操作"权限"

这一组由**数据库管理员(DBA)**使用,用来控制不同用户能看什么、能改什么。

  • GRANT(授予) :给某个用户赋予 特定的操作权限(比如查询、插入、修改的权限)。
    • 例子:GRANT SELECT ON school.* TO 'user1'@'localhost';(允许 user1 查询 school 库下的所有表)。
  • REVOKE(撤销/收回) :把之前授予给某个用户的权限收回
    • 例子:REVOKE SELECT ON school.* FROM 'user1'@'localhost';(收回 user1 的查询权限)。

第四组:TCL(事务控制语言)------ 操作"事务"

这一组用来确保一系列操作要么全部成功,要么全部撤销(保证数据一致性),仅针对 InnoDB 存储引擎生效。

  • COMMIT(提交) :将当前事务中所有未保存的更改永久写入 数据库。
    • 场景:你执行了多条 INSERTUPDATE,执行 COMMIT; 后,这些修改才真正落盘,其他用户才能看到最新结果。

补充提示 :与 COMMIT 相对的是 ROLLBACK(回滚),用于撤销当前事务还未提交的所有修改。


💡 一句话总结记忆口诀

  • CREATE / DROP / ALTER:管房子的(建房子、拆房子、装修房子)。
  • INSERT / DELETE / UPDATE:管家具的(搬进家具、扔掉家具、换新家具)。
  • GRANT / REVOKE:管门禁的(给钥匙、没收钥匙)。
  • COMMIT:管结账的(确认付款,订单生效)。

存储引擎

  1. 查看存储引擎
sql 复制代码
show engines; 
  • 常用就两个:MyISAM和InnoDB
相关推荐
deepdata_cn1 小时前
向量数据库是非结构化数据的AI检索底座
数据库·人工智能
梁辰兴1 小时前
软件工程:数据库设计
数据库·软件工程·数据库设计·逻辑设计·概念设计·梁辰兴·物理设计
10mAh2 小时前
【Git】误删分支、reset --hard 后提交丢了怎么办?——reflog、fsck 与安全恢复实战
数据库·git·安全·回归
J_bean2 小时前
剖析 MySQL InnoDB 共享行锁 (S) & 排他行锁 (X)
数据库·mysql·共享行锁·s lock·排他行锁·x lock
Lumistory2 小时前
城市景观亮化设施维护管养的核心痛点与标准化解决方案
数据库·光照贴图
倒流时光三十年2 小时前
第六阶段 57 · ES|QL 与 SQL API(用 SQL 查 ES)
数据库·sql·elasticsearch
努力进修3 小时前
“数据心脏” 驱动能源自主:国产数据库支撑 Cemsol 实现固井全流程数字化闭环
数据库·人工智能·能源
vHelios3 小时前
SQL不会写?不会找关联表?复杂SQL语句编写逻辑实现思路请查收✉
数据库·sql
DB哥讲数据库3 小时前
【ClickHouse安装教程】从零开始部署高性能列式数据库(附ClickHouse安装包)
数据库·clickhouse