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_namelast_name:分别表示用户的名字和姓氏,不能为空。
  • email:用户的电子邮件地址,添加了唯一约束,确保每个用户的电子邮件地址唯一。
  • phone:用户的电话号码,允许为空。
  • registration_date:注册日期,默认当前时间(使用 CURRENT_TIMESTAMP)。
  • status:账户状态,使用枚举类型(ENUM),限定值为 activeinactive,默认值为 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;
posted @ 2024-11-28 16:19  拿受用  阅读(1)  评论(0编辑  收藏  举报