mysql表
创建 users
表(用户信息表)
假设我们要记录用户的基本信息,如用户 ID、姓名、电子邮件、联系电话、注册日期等。
sql-- 在数据库 'weather' 中创建一个名为 'users' 的表
USE weather;
CREATE TABLE users (
id INT AUTO_INCREMENT PRIMARY KEY, -- 用户ID,主键,自增
first_name VARCHAR(100) NOT NULL, -- 名字
last_name VARCHAR(100) NOT NULL, -- 姓氏
email VARCHAR(255) NOT NULL UNIQUE, -- 电子邮件,唯一约束
phone VARCHAR(20), -- 电话号码
registration_date TIMESTAMP DEFAULT CURRENT_TIMESTAMP, -- 注册日期,默认当前时间
status ENUM('active', 'inactive') DEFAULT 'active' -- 账户状态,'active' 或 'inactive'
);
解释
id
:自动增长的主键,用于唯一标识每个用户。first_name
和last_name
:分别表示用户的名字和姓氏,不能为空。email
:用户的电子邮件地址,添加了唯一约束,确保每个用户的电子邮件地址唯一。phone
:用户的电话号码,允许为空。registration_date
:注册日期,默认当前时间(使用CURRENT_TIMESTAMP
)。status
:账户状态,使用枚举类型(ENUM
),限定值为active
或inactive
,默认值为active
。
增:插入数据(INSERT INTO
)
插入一条新的用户记录。
sql-- 插入一条用户记录
INSERT INTO users (first_name, last_name, email, phone, status)
VALUES ('John', 'Doe', 'john.doe@example.com', '123-456-7890', 'active');
查:查询数据(SELECT
)
查询所有用户信息:
sql-- 查询所有用户
SELECT * FROM users;
查询特定用户信息(根据邮箱):
sql-- 查询特定邮箱的用户
SELECT * FROM users WHERE email = 'john.doe@example.com';
查询所有处于活动状态的用户:
sql-- 查询所有活动状态的用户
SELECT * FROM users WHERE status = 'active';
查询注册时间在某个范围内的用户:
sql-- 查询2024年1月1日到2024年11月28日注册的用户
SELECT * FROM users WHERE registration_date BETWEEN '2024-01-01' AND '2024-11-28';
改:更新数据(UPDATE
)
更新某个用户的信息。例如,修改用户的电话号码和状态:
sql-- 更新John Doe的电话号码和状态
UPDATE users
SET phone = '987-654-3210', status = 'inactive'
WHERE email = 'john.doe@example.com';
删:删除数据(DELETE
)
删除某个用户记录,例如根据邮箱删除用户:
sql-- 删除特定邮箱的用户记录
DELETE FROM users WHERE email = 'john.doe@example.com';
查询:按状态分组并统计(例如统计活动用户和非活动用户的数量)
-- 按状态分组统计用户数量
SELECT status, COUNT(*) AS user_count
FROM users
GROUP BY status;