MySQL基础知识

1MySQL基本概念

MySQL是一个开源的关系型数据库管理系统(RDBMS),使用结构化查询语言(SQL)作为查询和操作数据的接口。关系型数据库将数据组织成表(table),每个表包含多个字段(column)和记录(row)。

2SQL语言:

数据定义语言(DDL)、数据操作语言(DML)、数据查询语言(DQL)和数据控制语言(DCL)

DDL(Data Definition Language):CREATE, ALTER, DROP

DML(Data Manipulation Language):INSERT, UPDATE, DELETE

DQL(Data Query Language):SELECT

DCL(Data Control Language):GRANT, REVOKE

3数据库设计

数据库设计包括创建表、视图、索引等对象。规范化理论有助于设计高效、可维护的数据库结构

CREATE TABLE employees (
    id INT PRIMARY KEY AUTO_INCREMENT,
    first_name VARCHAR(50),
    last_name VARCHAR(50),
    department_id INT
);

4数据类型

MySQL支持多种数据类型,如整数(INT, SMALLINT, BIGINT等)、浮点数(FLOAT, DOUBLE等)、字符串(VARCHAR, CHAR, TEXT等)和日期时间(DATE, TIME, DATETIME等)
CREATE TABLE product (
    id INT PRIMARY KEY AUTO_INCREMENT,
    name VARCHAR(255),
    price DECIMAL(10, 2),
    release_date DATE
);

5数据查询

使用SELECT语句查询数据,可以进行筛选、排序、分组和连接等操作。
筛选(WHERE)
SELECT * FROM employees WHERE department_id = 1;


SELECT * FROM employees ORDER BY last_name;


SELECT department_id, COUNT(*) FROM employees GROUP BY department_id;


SELECT e.first_name, e.last_name, d.name 
FROM employees e
JOIN departments d ON e.department_id = d.id;

6数据操作

使用INSERT、UPDATE和DELETE语句操作数据。

INSERT INTO employees (first_name, last_name, department_id) VALUES ('John', 'Doe', 1);


UPDATE employees SET department_id = 2 WHERE id = 1;


DELETE FROM employees WHERE id = 1;

7函数与表达式

MySQL提供多种函数,如字符串、数值、日期和聚合函数
SELECT CONCAT(first_name, ' ', last_name) as full_name FROM employees;


SELECT ROUND(price, 0) as rounded_price FROM products;


SELECT DATEDIFF(NOW(), release_date) as days_since_release FROM products;


SELECT department_id, AVG(salary) as average_salary FROM employees GROUP BY department_id;

8索引与优化

创建索引可以提高查询性能,但也会增加数据插入和更新的开销。要权衡利弊,根据实际情况选择合适的索引。
CREATE INDEX idx_employees_department_id ON employees (department_id);

9事务处理

事务是一组操作序列,保证数据的完整性和一致性。使用START TRANSACTION、COMMIT和ROLLBACK控制事务。
START TRANSACTION;
INSERT INTO employees (first_name, last_name, department_id) VALUES ('Jane', 'Doe', 1);
UPDATE departments SET employee_count = employee_count + 1 WHERE id = 1;
COMMIT; -- 或者 ROLLBACK; 回滚事务

10数据导入导出

使用mysqldump、LOAD DATA INFILE等工具导入导出数据
mysqldump -u username -p dbname > backup.sql


LOAD DATA INFILE '/path/to/data.csv' INTO TABLE employees
FIELDS TERMINATED BY ',' ENCLOSED BY '"'
LINES TERMINATED BY '\n';

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容