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)模式一种网络服务
- mysql 是数据库服务的客户端
- mysqld 是数据库服务的服务器端
mysql是一套提供数据存取的服务的网络程序
数据库一般指的是,在磁盘或者内存中存储的特定结构组织的数据--在磁盘上存储的一套数据库方案
- 为什么不用文件存储数据?
文件确实提供了数据的存储服务,但是没有提供非常好的数据管理能力
数据库对数据内容存储提供了一套解决方案,只要给他字段或者要求,他就能直接给结果
初次使用MySQL数据库
- 创建数据库
sql
create database helloworld;
- 每个指令必须要以;结尾
- 创建数据库,本质就是Linux下的一个目录
- 建立一张表
sql
use helloworld; #使用helloworld数据库
cteate table student(
name varchar(32),
age int,
gender varchar(2)
);
- 数据库内建表,本质就是在Linux下创建对应的文件即可
- 插入数据
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(提交) :将当前事务中所有未保存的更改永久写入 数据库。- 场景:你执行了多条
INSERT或UPDATE,执行COMMIT;后,这些修改才真正落盘,其他用户才能看到最新结果。
- 场景:你执行了多条
补充提示 :与
COMMIT相对的是ROLLBACK(回滚),用于撤销当前事务还未提交的所有修改。
💡 一句话总结记忆口诀
- CREATE / DROP / ALTER:管房子的(建房子、拆房子、装修房子)。
- INSERT / DELETE / UPDATE:管家具的(搬进家具、扔掉家具、换新家具)。
- GRANT / REVOKE:管门禁的(给钥匙、没收钥匙)。
- COMMIT:管结账的(确认付款,订单生效)。
存储引擎
- 查看存储引擎
sql
show engines;
- 常用就两个:MyISAM和InnoDB