MySQL数据库基础
MySQL是一种开源的关系型数据库管理系统(RDBMS),广泛应用于Web应用程序开发、数据存储和管理。以下是MySQL数据库的基础知识。
数据库与表
MySQL数据库由多个表组成,表是数据的结构化集合。每个表包含行(记录)和列(字段),用于存储特定类型的数据。
创建数据库的SQL语句:
sql
CREATE DATABASE database_name;
创建表的SQL语句:
sql
CREATE TABLE table_name (
column1 datatype constraints,
column2 datatype constraints,
...
);
数据类型
MySQL支持多种数据类型,主要包括:
- 整数类型 :
INT,TINYINT,SMALLINT,BIGINT - 浮点数类型 :
FLOAT,DOUBLE,DECIMAL - 字符串类型 :
CHAR,VARCHAR,TEXT - 日期时间类型 :
DATE,TIME,DATETIME,TIMESTAMP
基本操作
插入数据:
sql
INSERT INTO table_name (column1, column2, ...) VALUES (value1, value2, ...);
查询数据:
sql
SELECT column1, column2 FROM table_name WHERE condition;
更新数据:
sql
UPDATE table_name SET column1 = value1 WHERE condition;
删除数据:
sql
DELETE FROM table_name WHERE condition;
约束
约束用于限制表中数据的规则,确保数据的完整性:
- 主键(PRIMARY KEY):唯一标识表中的每一行。
- 外键(FOREIGN KEY):确保表之间的引用完整性。
- 唯一约束(UNIQUE):确保列中的所有值唯一。
- 非空约束(NOT NULL):确保列不能包含NULL值。
示例:
sql
CREATE TABLE employees (
id INT PRIMARY KEY,
name VARCHAR(100) NOT NULL,
department_id INT,
FOREIGN KEY (department_id) REFERENCES departments(id)
);
索引
索引用于加快查询速度,但会增加插入和更新操作的开销。常见的索引类型包括普通索引、唯一索引和主键索引。
创建索引:
sql
CREATE INDEX index_name ON table_name (column1, column2);
事务
事务是一组原子性的SQL操作,要么全部执行成功,要么全部失败。MySQL支持事务的ACID特性(原子性、一致性、隔离性、持久性)。
事务示例:
sql
START TRANSACTION;
INSERT INTO table1 VALUES (1, 'value1');
UPDATE table2 SET column1 = 'value2' WHERE id = 1;
COMMIT;
用户与权限
MySQL支持多用户管理,可以为不同用户分配不同的权限。
创建用户:
sql
CREATE USER 'username'@'host' IDENTIFIED BY 'password';
授予权限:
sql
GRANT SELECT, INSERT ON database_name.* TO 'username'@'host';
备份与恢复
备份数据库可以使用mysqldump工具:
bash
mysqldump -u username -p database_name > backup.sql
恢复数据库:
bash
mysql -u username -p database_name < backup.sql
以上是MySQL数据库的基础知识,掌握这些内容可以帮助用户快速上手MySQL的基本操作和管理。