2. mysql 学习笔记 - 基础语法

52 阅读3分钟

MySQL 是一种广泛使用的关系型数据库管理系统 (RDBMS),适用于各种应用程序的数据库操作。

1. MySQL 基本概念

  • 数据库 (Database) :存储数据的容器,数据库中包含多个表。

  • 表 (Table) :数据库中用于存储数据的结构,每个表由行和列组成。

  • 行 (Row) :表中的一条记录,每行包含多个字段值。

  • 列 (Column) :表中的一个字段,通常用于存储特定类型的数据(如姓名、年龄等)。

2. MySQL 常用命令

1. 数据库操作

创建数据库

CREATE DATABASE dbname;

删除数据库

DROP DATABASE dbname;

查看所有数据库

SHOW DATABASES;

选择数据库

USE dbname;

查看当前数据库

SELECT DATABASE();

2. 表操作

创建表

CREATE TABLE tablename (
    column1 datatype,
    column2 datatype,
    ...
);

例子:

CREATE TABLE users (
    id INT AUTO_INCREMENT PRIMARY KEY,
    name VARCHAR(50),
    age INT
);

表字段类型请看:juejin.cn/post/745403…

删除表

DROP TABLE tablename;

查看所有表

SHOW TABLES;

查看表结构

DESCRIBE tablename;

修改表结构

  1. 添加列:
ALTER TABLE tablename ADD columnname datatype;
  1. 删除列:
ALTER TABLE tablename DROP COLUMN columnname;
  1. 修改列:
ALTER TABLE tablename MODIFY COLUMN columnname new_datatype;

3. 数据操作

插入数据

INSERT INTO tablename (column1, column1, ...) VALUES (value1, value2, ...);

查询数据

SELECT column1, column2, ... FROM tablename;
  1. 查询所有列:
SELECT * FROM users;
  1. 查询特定列:
SELECT name, age FROM users;

更新数据

UPDATE tablename SET column1 = value1, column2 = value2 WHERE condition;

删除数据

DELETE FROM tablename WHERE condition;

4. 查询条件和排序

条件查询

  1. 使用 WHERE
SELECT * FROM users WHERE age > 20;
  1. 多条件查询:
SELECT * FROM users WHERE age > 20 AND name = 'kim';
  1. IN 查询:
SELECT * FROM users WHERE name IN ('alice', 'kim');
  1. LIKE 查询(模糊查询):
SELECT * FROM users WHERE name LIKE 'k%';
  1. BETWEEN 查询:
SELECT * FROM users WHERE age BETWEEN 18 AND 22;

排序

  1. 默认升序排序:
SELECT * FROM users ORDER BY age;
  1. 降序排序:
SELECT * FROM users ORDER BY age DESC;

5. 聚合函数

计数

SELECT COUNT(*) FROM users;

求和

SELECT SUM(age) FROM users;

平均值

SELECT AVG(age) FROM users;

最大值

SELECT MAX(age) FROM users;

最小值

SELECT MIN(age) FROM users;

分组查询

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

6. 连接查询

内连接INNER JOIN):

SELECT * FROM table1 INNER JOIN table2 ON table1.column = table2.column;

左连接LEFT JOIN):

SELECT * FROM table1 LEFT JOIN table2 ON table1.column = table2.column;

右连接RIGHT JOIN):

SELECT * FROM table1 RIGHT JOIN table2 ON table1.column = table2.column;

7. 索引和性能优化

创建索引

CREATE INDEX index_name ON tablename (columnname);

删除索引

DROP INDEX index_name ON tablename;

查看表的索引

SHOW INDEX FROM tablename;

8. 用户管理

创建用户

CREATE USER 'username'@'host' IDENTIFIED BY 'password';

赋予权限

GRANT ALL PRIVILEGES ON dbname.* TO 'username'@'host';

查看权限

SHOW GRANTS FOR 'username'@'host';

删除用户

DROP USER 'username'@'host';

刷新权限

FLUSH PRIVILEGES;

3. 常见操作和优化技巧

备份和恢复

1. 备份数据库

mysqldump -u root -p dbname > backup.sql

2. 恢复数据库

mysql -u root -p dbname < backup.sql

查看当前连接和状态

1. 查看当前连接

SHOW PROCESSLIST;

2. 查看数据库状态

SHOW STATUS;

MySQL 配置文件

MySQL 配置文件位置: MySQL 的配置文件一般位于 /etc/my.cnf/etc/mysql/my.cnf,可以编辑该文件来调整 MySQL 配置(如内存、连接数等)