Mysql:基础知识大全,看这一篇就够了~

目录

一、MySQL 连接与退出

1.连接本地数据库

2.连接远程数据库

3.退出数据库

二、数据库操作

1.查看所有数据库

2.创建数据库

3.切换数据库

4.删除数据库

三、数据表操作

1. 查看当前数据库所有表

2. 创建表

3. 查看表结构

4. 修改表

5. 删除表

四、数据增删改查(CRUD)

1. 新增数据(INSERT)

2. 查询数据(SELECT)

3. 修改数据(UPDATE)

4. 删除数据(DELETE)

五、查询进阶

1. 条件查询(WHERE 子句)

2. 多条件查询(AND/OR)

3. 聚合查询(GROUP BY + 聚合函数)

4. 多表连接查询

1.内连接(INNER JOIN):

2.左连接(LEFT JOIN):

六、常用约束

七、常用函数

1.字符串函数

2.日期函数

3.数学函数

八、索引操作

1.创建索引(提高查询效率)

2.查看索引

3,删除索引


一、MySQL 连接与退出

1.连接本地数据库

mysql -u 用户名 -p

输入后回车,再输入密码(如 root 用户密码)即可登录。示例:

mysql -u root -p

2.连接远程数据库

mysql -h 主机IP -u 用户名 -p 端口号

示例:

mysql -h 192.168.1.100 -u admin -p 3306

3.退出数据库

exit; 或 quit;

二、数据库操作

1.查看所有数据库

SHOW DATABASES;

2.创建数据库

CREATE DATABASE 数据库名 [CHARACTER SET 字符集] [COLLATE 排序规则];

示例:

CREATE DATABASE test_db CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;\

(utf8mb4 支持 emoji)

3.切换数据库

USE 数据库名;

示例:

USE test_db;

4.删除数据库

DROP DATABASE 数据库名;

示例:

DROP DATABASE test_db;

(谨慎操作,删除后无法恢复)

三、数据表操作

1. 查看当前数据库所有表

SHOW TABLES;

2. 创建表

CREATE TABLE 表名 (

字段名1 数据类型 [约束],

字段名2 数据类型 [约束],

...

[表级约束]

);

示例:创建 user 表

CREATE TABLE user (

id INT PRIMARY KEY AUTO_INCREMENT, -- 主键,自增

username VARCHAR(50) NOT NULL UNIQUE, -- 非空,唯一

age INT DEFAULT 0, -- 默认值 0

create_time DATETIME

);

3. 查看表结构

DESC 表名; 或 DESCRIBE 表名;

示例:

DESC user;

4. 修改表
  • 添加字段

ALTER TABLE 表名 ADD 字段名 数据类型 [约束];

示例:

ALTER TABLE user ADD email VARCHAR(100);

  • 修改字段类型 / 约束

ALTER TABLE 表名 MODIFY 字段名 新数据类型 [新约束];

示例:

ALTER TABLE user MODIFY age TINYINT DEFAULT 18;

  • 删除字段

ALTER TABLE 表名 DROP 字段名;

示例:

ALTER TABLE user DROP email;

  • 修改表名

ALTER TABLE 旧表名 RENAME TO 新表名;

示例:

ALTER TABLE user RENAME TO t_user;

5. 删除表

DROP TABLE 表名;

示例:

DROP TABLE t_user;

四、数据增删改查(CRUD)

1. 新增数据(INSERT)
  • 全字段插入

INSERT INTO 表名 VALUES (值1, 值2, ...);

示例:

INSERT INTO user VALUES (1, 'zhangsan', 20, '2023-01-01 10:00:00');

  • 指定字段插入

INSERT INTO 表名 (字段1, 字段2, ...) VALUES (值1, 值2, ...);

示例:

INSERT INTO user (username, age) VALUES ('lisi', 25);

  • 批量插入

INSERT INTO 表名 (字段1, 字段2) VALUES

(值1, 值2),

(值3, 值4);

2. 查询数据(SELECT)
  • 基础查询

SELECT 字段1, 字段2, ... FROM 表名 [WHERE 条件];

示例:

查询所有用户 SELECT * FROM user;

(* 表示所有字段)

示例:

查询年龄 > 20 的用户名 SELECT username FROM user WHERE age > 20;

  • 去重查询

SELECT DISTINCT 字段 FROM 表名;

示例:

SELECT DISTINCT age FROM user;

  • 排序查询

SELECT 字段 FROM 表名 ORDER BY 字段 [ASC|DESC];

-- ASC 升序(默认),DESC 降序

示例:

按年龄降序

SELECT * FROM user ORDER BY age DESC;

  • 分页查询

SELECT 字段 FROM 表名 LIMIT 起始索引, 查询条数; -- 起始索引从 0 开始

示例:

查询第 11-20 条数据

SELECT * FROM user LIMIT 10, 10;

3. 修改数据(UPDATE)

UPDATE 表名 SET 字段1=值1, 字段2=值2, ... [WHERE 条件];

示例:

将 id=1 的用户年龄改为 22

UPDATE user SET age=22 WHERE id=1;

注意:不加 WHERE 条件会修改表中所有数据,谨慎操作!

4. 删除数据(DELETE)

DELETE FROM 表名 [WHERE 条件];

示例:

删除 id=2 的用户

DELETE FROM user WHERE id=2;

注意:不加 WHERE 条件会删除表中所有数据(保留表结构),如需清空表且自增 ID 重置,用 TRUNCATE TABLE 表名;

五、查询进阶

1. 条件查询(WHERE 子句)

常用运算符:=、!=、>、<、>=、<=、BETWEEN...AND...、IN(...)、LIKE、IS NULL

示例:

年龄在 18-30 之间

SELECT * FROM user WHERE age BETWEEN 18 AND 30;

用户名包含 'zhang'

SELECT * FROM user WHERE username LIKE '%zhang%';(% 匹配任意字符)

年龄为空

SELECT * FROM user WHERE age IS NULL;

2. 多条件查询(AND/OR)

SELECT * FROM user WHERE age > 20 AND username LIKE 'l%';

3. 聚合查询(GROUP BY + 聚合函数)

常用聚合函数:COUNT()、SUM()、AVG()、MAX()、MIN()

示例:

统计用户总数

SELECT COUNT(*) FROM user;

按年龄分组统计每组人数

SELECT age, COUNT(*) FROM user GROUP BY age;

过滤分组结果

(HAVING)SELECT age, COUNT(*) FROM user GROUP BY age HAVING COUNT(*) > 2;

4. 多表连接查询
1.内连接(INNER JOIN):

只显示匹配的记录

SELECT u.username, o.order_no

FROM user u

INNER JOIN order o ON u.id = o.user_id;

2.左连接(LEFT JOIN):

左表所有记录 + 右表匹配记录

SELECT u.username, o.order_no

FROM user u

LEFT JOIN order o ON u.id = o.user_id;

六、常用约束

约束

作用

PRIMARY KEY

主键,唯一标识一条记录,非空且唯一

UNIQUE

字段值唯一(可多个 NULL)

NOT NULL

字段值不能为 NULL

DEFAULT

字段默认值

FOREIGN KEY

外键,关联另一表的主键,保证数据一致性

示例:添加外键

CREATE TABLE order (

id INT PRIMARY KEY AUTO_INCREMENT,

order_no VARCHAR(20) UNIQUE,

user_id INT,

FOREIGN KEY (user_id) REFERENCES user(id) ON DELETE CASCADE

-- 级联删除

);

七、常用函数

1.字符串函数
  • CONCAT(str1, str2):拼接字符串

示例:

SELECT CONCAT(username, '_', age) FROM user;

  • LENGTH(str):获取字符串长度
  • UPPER(str)/LOWER(str):转大小写
2.日期函数
  • NOW():获取当前日期时间

示例:

INSERT INTO user (username, create_time) VALUES ('wangwu', NOW());

  • DATE_FORMAT(date, format):格式化日期

示例:

SELECT DATE_FORMAT(create_time, '%Y-%m-%d') FROM user;

3.数学函数
  • ROUND(num, n):四舍五入保留 n 位小数
  • ABS(num):绝对值

八、索引操作

1.创建索引(提高查询效率)

CREATE INDEX idx_age ON user(age); -- 普通索引

CREATE UNIQUE INDEX idx_username ON user(username); -- 唯一索引

2.查看索引

SHOW INDEX FROM 表名;

3,删除索引

DROP INDEX 索引名 ON 表名;

篇幅多大,后续在下一篇中。。。。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值