1.数据库操作
DDL(Data Definition Language):数据定义语言,用于定义和管理数据库对象(如表、索引等)。
- CREATE:创建数据库对象。
- ALTER:修改数据库对象。
- DROP:删除数据库对象。
1.1 创建数据库
使用CREATE DATABASE语句创建数据库。
CREATE DATABASE dbname;
示例:
CREATE DATABASE mydb;
1.2 选择数据库
使用USE语句选择要操作的数据库。
USE dbname;
示例:
USE mydb;
1.3 删除数据库
使用DROP DATABASE语句删除数据库。
DROP DATABASE dbname;
示例:
DROP DATABASE mydb;
1.4 显示所有数据库
使用SHOW DATABASES语句显示所有数据库。
SHOW DATABASES;
2.表的创建
2.1 创建表的基本语法
使用CREATE TABLE语句创建表。
CREATE TABLE tablename (
column1 datatype constraints,
column2 datatype constraints,
...
);
- tablename:表名。
- column1, column2, ...:列名。
- datatype:数据类型(如INT, VARCHAR, DATE等)。
- constraints:约束条件(如PRIMARY KEY, NOT NULL, UNIQUE等)。
2.2 示例:创建用户表
CREATE TABLE users (
id INT AUTO_INCREMENT PRIMARY KEY,
username VARCHAR(50) NOT NULL,
email VARCHAR(100) NOT NULL UNIQUE,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
解释:
- id:主键,自动递增。
- username:用户名,不能为空。
- email:电子邮件,不能为空且唯一。
- created_at:创建时间,默认为当前时间。
3.表的修改
3.1 添加列
使用ALTER TABLE语句添加列。
ALTER TABLE tablename ADD columnname datatype constraints;
示例:
ALTER TABLE users ADD age INT;
3.2 修改列
使用ALTER TABLE语句修改列。
ALTER TABLE tablename MODIFY columnname new_datatype;
示例:
ALTER TABLE users MODIFY age TINYINT;
3.3 删除列
使用ALTER TABLE语句删除列。
ALTER TABLE tablename DROP COLUMN columnname;
示例:
ALTER TABLE users DROP COLUMN age;
3.4 重命名列
使用ALTER TABLE语句重命名列。
ALTER TABLE tablename CHANGE old_columnname new_columnname datatype;
示例:
ALTER TABLE users CHANGE email user_email VARCHAR(100);
3.5 重命名表
使用RENAME TABLE语句重命名表。
RENAME TABLE old_tablename TO new_tablename;
示例:
RENAME TABLE users TO customers;
4.表的删除
4.1 删除表
使用DROP TABLE语句删除表。
DROP TABLE tablename;
示例:
DROP TABLE users;
4.2 删除表并重置自增值
使用TRUNCATE TABLE语句删除表数据并重置自增值。
TRUNCATE TABLE tablename;
示例:
TRUNCATE TABLE users;
5.表的约束
5.1 主键约束
主键用于唯一标识表中的每一行。
CREATE TABLE tablename (
id INT AUTO_INCREMENT PRIMARY KEY,
...
);
5.2 唯一约束
唯一约束确保列中的值唯一。
CREATE TABLE tablename (
email VARCHAR(100) UNIQUE,
...
);
5.3 外键约束
外键用于建立表与表之间的关系。
CREATE TABLE orders (
order_id INT AUTO_INCREMENT PRIMARY KEY,
user_id INT,
FOREIGN KEY (user_id) REFERENCES users(id)
);
5.4 检查约束
检查约束用于限制列中的值。
CREATE TABLE tablename (
age INT CHECK (age >= 18),
...
);
6.表的索引
6.1 创建索引
索引用于加速查询。
CREATE INDEX indexname ON tablename (columnname);
示例:
CREATE INDEX idx_username ON users (username);
6.2 删除索引
使用DROP INDEX语句删除索引。
DROP INDEX indexname ON tablename;
示例:
DROP INDEX idx_username ON users;
7.表的复制
7.1 复制表结构
使用CREATE TABLE ... LIKE语句复制表结构。
CREATE TABLE new_tablename LIKE old_tablename;
示例:
CREATE TABLE users_copy LIKE users;
7.2 复制表结构和数据
使用CREATE TABLE ... AS SELECT语句复制表结构和数据。
CREATE TABLE new_tablename AS SELECT * FROM old_tablename;
示例:
CREATE TABLE users_copy AS SELECT * FROM users;