首页 > 数据库 >mysql表

mysql表

时间:2024-11-28 16:34:53浏览次数:7  
标签:status users -- mysql 用户 sql active

创建 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;

标签:status,users,--,mysql,用户,sql,active
From: https://www.cnblogs.com/hellojianzuo/p/18574493

相关文章

  • mysql函数
    #字符串函数#拼接两个字符串concat(字符串1,字符串2)selectconcat('123','456');#123456#字符串中所有字符转小写lower(字符串)selectlower('Hello');#hello#字符串中所有字符转大写upper(字符串)selectupper('Hello');#HELLO#字符串向左侧补充长......
  • Access数据库与Mysql数据库的直观对比
    MicrosoftAccess和MySQL都是关系型数据库管理系统,但它们的设计目的、应用场景、功能特性和技术架构等方面存在显著差异。以下是两者的对比:1.目标与应用场景特性/数据库MicrosoftAccessMySQL类型桌面型数据库管理系统(RDBMS)开源的关系型数据库管理系统(RDBMS)主......
  • MySQL Workbench 数据库建模详解:从设计到实践
    目录数据库建模基础概念MySQLWorkbench简介与安装什么是MySQLWorkbench?安装与环境配置MySQLWorkbench数据库建模功能详解EER图(实体关系图)数据库反向工程数据库正向工程模型同步与版本管理MySQLWorkbench数据库建模实战教程创建新模型定义表结构设置关系与约......
  • 如何在 MySQL 中针对包含多个日期值的字段进行特定日期范围查询?
    在存在多个日期值的同个字段中进行特定日期范围查询在数据库中,某些字段可能存在多个日期值,例如:"2022-09-1411:38:21,2022-09-1418:00:00"。通常情况下,查询这类字段时,只能通过简单的范围查询来获取特定日期内的数据,而无法针对分割后的时间范围进行查询。mysql 查询解决方案要......
  • mysql postgresql with 案例
    场景假设假设我们有两张表:sales表:记录了每个产品的销售数量product_id(产品ID)quantity(销售数量)products表:记录了每个产品的详细信息product_id(产品ID)product_name(产品名称)我们的目标是计算每个产品销售数量占总销售量的百分比。 ROUND(expressio......
  • JAVA开源毕业设计 渔具租赁系统 Vue.JS+SpringBoot+MySQL
    本文项目编号T005,文末自助获取源码\color{red}{T005,文末自助获取源码}......
  • JAVA开源毕业设计 历史学习网站 Vue.JS+SpringBoot+MySQL
    本文项目编号T004,文末自助获取源码\color{red}{T004,文末自助获取源码}......
  • JAVA开源毕业设计 加油站管理系统 Vue.JS+SpringBoot+MySQL
    本文项目编号T003,文末自助获取源码\color{red}{T003,文末自助获取源码}......
  • 基于Java+SpringBoot+Mysql在线简单拍卖竞价拍卖竞拍系统功能设计与实现十一
    一、前言介绍:免费学习:猿来入此1.1项目摘要主要源于互联网技术的快速发展和电子商务的普及。随着网络技术的不断进步,人们越来越依赖于互联网进行购物、交易和沟通。电子商务的兴起为在线拍卖提供了广阔的市场和便利的条件。在线拍卖系统通过搭建一个虚拟的拍卖平台,将传统的拍卖......
  • 基于Java+SpringBoot+Mysql在线简单拍卖竞价拍卖竞拍系统功能设计与实现十二
    一、前言介绍:免费学习:猿来入此1.1项目摘要主要源于互联网技术的快速发展和电子商务的普及。随着网络技术的不断进步,人们越来越依赖于互联网进行购物、交易和沟通。电子商务的兴起为在线拍卖提供了广阔的市场和便利的条件。在线拍卖系统通过搭建一个虚拟的拍卖平台,将传统的拍卖......