它可以存储64KB的数据

发布时间:2025-06-24 17:27:52  作者:北方职教升学中心  阅读量:531


若数据需要长期保存,DATETIME更合适。比如,学生选课表里就会引用学生表的主键,确保选课记录是符合逻辑的。这样我们可以快速锁定唯一一条数据,不会出现混淆。

  • TEXT:大段文本数据类型,适合描述性内容,比如“文章内容”或“评论”。字符串类型

  • 三、这张表需要一个主键,同时,还需要能链接到studentscourses表,以确保每条选课记录都是有效的。
  • 修改表:用ALTER TABLE命令添加、数据类型
    • 一、数字类型
    • 二、

    • YEAR:存储年份,格式为YYYY,比如2024,适合只需要年份的场景,如“入学年份”。
      小贴士:如果不确定表是否存在,可以加上IF EXISTS,避免报错:

      DROPTABLEIFEXISTSstudents;

      4. 修改表结构:ALTER TABLE

      有时我们可能需要调整表的结构,比如加列、查看已经盖好的房子,以及“拆掉”不需要的房子!

      1. 创建数据库:CREATE DATABASE

      我们要“盖”一间新房子(数据库),在MySQL里使用CREATE DATABASE这个命令来实现。

      4.3 修改列的数据类型

      如果我们发现age这列使用INT类型不太合适,想改成TINYINT(占用更少存储空间),可以这样写:

      ALTERTABLEstudentsMODIFYage TINYINT;

      这样age列的数据类型就从INT改成了TINYINT,在节省存储的同时,更符合年龄数据的大小范围。

    • DATE:专门用来存日期,适合入学日期等字段。

      1. CHAR(n):固定长度的字符串,n为最大长度。

        为了把每个“格子”设计得恰到好处,我们要了解MySQL支持的数据类型

      2. VARCHAR(50):适合不定长的文本。

        小贴士ENUM适合单选选项,SET适合多选选项,特别适合数据有固定取值的情况。

      3. 外键:用于建立表之间的关联,确保数据的引用完整性,可以设置级联操作。二进制类型

        存储二进制数据,如图片或文件内容,可以选择Blob类型。学生姓名长度不固定,但设置成50足够大且节省空间。数据库的创建和管理

        • 1. 创建数据库:CREATE DATABASE
          • 注意事项:
        • 2. 查看已有数据库:SHOW DATABASES
        • 3. 删除数据库:DROP DATABASE
          • 防止误删
        • 4. 总结
      4. 2、TIMESTAMP用于带时间的日期,TIMESTAMP还能自动记录更新。

      5. TIME:用于存储时间,格式为HH:MM:SS,比如14:30:00。合理选择数据类型不仅能提高效率,还能减少空间占用。

        最后,主键和外键就像是每本书的ISBN码和分类标签。用于科学计算、

        例子:

        DESCRIBEstudents;

        执行后会看到表的结构,每一列的名字、主键(Primary Key)让每条数据都能被唯一识别,而外键(Foreign Key)让表之间形成关联关系,比如学生和选课数据的匹配。

    定义主键

    在创建表时,我们可以通过PRIMARY KEY关键字来定义主键:

    例子:
    假设我们有一个学生表students,想让每个学生都拥有独一无二的学号student_id作为主键:

    CREATETABLEstudents (student_id INTPRIMARYKEY,-- 学号,主键name VARCHAR(50),-- 姓名age INT-- 年龄);

    这里,student_id就是主键,这样即使有重名的学生,我们也能通过学号准确找到唯一的学生记录。删除或修改列。

  • 通过选择合适的数据类型,我们不仅能优化存储,还能加速查询速度,提升数据库整体性能!

    4、BLOB、我们现在把这些数据加进来:

    -- 向students表插入一条学生记录INSERTINTOstudents (student_id,name,age,enrollment_date)VALUES(1,'张三',20,'2024-10-26');-- 向courses表插入一条课程记录INSERTINTOcourses (course_id,course_name)VALUES(101,'数据库基础');-- 在enrollments表中插入张三的选课记录INSERTINTOenrollments (enrollment_id,student_id,course_id,enrollment_date)VALUES(1,1,101,'2024-10-27');

    因为enrollments表的student_idcourse_id字段分别引用了studentscourses表,所以只有当studentscourses表里有匹配的student_idcourse_id时,选课记录才会插入成功。


    2. 表的创建与管理

    接下来,在student_management数据库里创建几个表,比如students(学生基本信息)和courses(课程信息)。LONGBLOB:分别对应不同大小的二进制数据存储,适合存储图片、这些约束条件帮助我们建立数据的唯一性和一致性,让整个数据库结构更加清晰、可以这样写:

    CREATETABLEstudents (student_id INTPRIMARYKEY,-- 学号,主键name VARCHAR(50)NOTNULL,-- 姓名,不能为空age INT,-- 年龄class VARCHAR(10)-- 班级);

    解释一下:

    • students是表的名字。定义语法为ENUM('男', '女')。创建后,我们就可以在这个数据库里建各种数据表,存放我们想要的内容。数字类型

      数字类型专门用来存放整数、

    • TINYINT:适合小范围整数,比如学生的年龄,因为年龄通常小于128。
    • student_id是学号,用INT表示整数,并设为主键(PRIMARY KEY),这样学号在表里不会重复。适合固定长度的内容,比如“状态代码”。“姓名”、

      文章目录

        • 写在前面:
        • 1、

        注意:如果要处理金额或财务数据,推荐用DECIMAL,这样可以避免精度问题。

        例子:
        比如在“学生选课”表enrollments里,可能用“学号”和“课程编号”组合来唯一标识一个选课记录:

        CREATETABLEenrollments (student_id INT,course_id INT,PRIMARYKEY(student_id,course_id));

        这里,student_idcourse_id组合成主键,确保一个学生在同一课程只能选一次。

        1. 创建数据表:CREATE TABLE

        创建表时,我们需要指定表的名字和它的结构,包括列的名字、表就像Excel里的工作表,不同表用来放不同类型的数据。适合仅需日期的场景,如“出生日期”。


        2. 外键(Foreign Key):建立表与表之间的关联

        外键可以理解为一张表里某个字段“引用”了另一张表的主键,目的是建立起表与表之间的关联关系,确保数据的完整性。

      • 字符串CHARVARCHAR区别在于存储长度是否固定,TEXT用于较长的文本。
      • SHOW DATABASES;来查看当前所有的数据库。日期和时间类型
      • 四、
      定义外键

      在创建表时,用FOREIGN KEY来定义外键,并用REFERENCES指定要引用的表和字段。如果设置CHAR(5),那么每个值都会占用5个字符的空间,不足的地方用空格填充。

      小贴士TIMESTAMP非常适合自动记录数据更新时间,但有2038年限制(超出将无法使用)。需要高精度的场景。

      小贴士:尽量用合适长度的字符串类型,过长的数据会影响性能,CHARVARCHAR要特别注意设定合理的最大长度。

    • DROP DATABASE 数据库名;来删除不需要的数据库,但要小心,这个操作是不可逆的!

    2、
  • 删除表:用DROP TABLE 表名命令删除整个表和表中的数据。数据库的创建和管理
  • 在MySQL里,数据库就像一间房子,里面存放着各种数据表,表里放的则是具体的数据。主键和外键

    在数据库的世界里,主键(Primary Key)和外键(Foreign Key)就像一个人的身份证和亲属关系。接下来我们就一步步地创建数据库、枚举与集合类型

  • 五、

    4.4 重命名列

    假如我们想把“student_id”重命名为“id”,可以用下面的语法:

    ALTERTABLEstudentsCHANGE student_id id INT;

    这里不仅重命名了,还得重新指定数据类型(INT)。合理。

  • namecourse_name选用VARCHAR,是因为这些字段长度不固定,VARCHAR会根据内容长度动态分配空间。文本用VARCHAR
  • 例子:
    enrollments表设置级联删除,当students表中的学生被删除时,自动删除该学生的所有选课记录:

    CREATETABLEenrollments (enrollment_id INTPRIMARYKEY,student_id INT,course_id INT,FOREIGNKEY(student_id)REFERENCESstudents(student_id)ONDELETECASCADE);

    这样,当students表里的某个学生记录被删除,enrollments表中该学生的选课记录也会自动删除,保持数据一致性。看一下我们在上面选择的数据类型:

    • INT:适合数字,但范围较大。字符串类型

      字符串类型用来存储文本数据,从单个字符到段落都可以。

      语法:

      DROPDATABASE数据库名;

      举个例子:
      假设我们不再需要my_school数据库了,可以这样删除它:

      DROPDATABASEmy_school;

      这样,MySQL会彻底删除my_school数据库以及其中所有的数据表和数据!
      要注意:删除的数据库无法恢复,因此在执行前,一定要确认!

      防止误删

      为了防止手误删除已有的数据库,可以加个IF EXISTS,如果数据库不存在就不会报错:

      DROPDATABASEIFEXISTSmy_school;

      4. 总结

      • CREATE DATABASE 数据库名;来创建数据库。

      • 名字不能重复!如果数据库里已经有同名的数据库,再次创建时就会报错。

        1、

      2. 查看表结构:DESCRIBE 表名

      创建好表后,我们可以用DESCRIBE命令看看表的结构,确保它和我们预想的一样。枚举与集合类型

      有时我们有固定的几个选项,比如性别(男、命令是这样的:

      CREATEDATABASEmy_school;

      输入这条命令,MySQL就会帮我们创建一个名为my_school的新数据库。

      1. TINYBLOB、修改表结构,以及删除不需要的表。

        小贴士:如果表里的二进制数据多且较大,可能会影响性能,建议只存放关键数据,把文件链接存在外部存储更合适。

        注意事项:
        • 数据库名字要简洁、主键帮助每一行数据都有唯一“身份”,外键则帮助我们建立起表与表之间的“亲戚”关系。

        • VARCHAR(n):可变长度字符串,适合一般的文本数据,比如“姓名”和“地址”,可以设置最大长度n

          4.1 添加新列

          假设students表里我们还想加一列“邮箱地址”,可以这样做:

          ALTERTABLEstudentsADDemail VARCHAR(100);

          这样students表里就多了一列email,可以用来存每位学生的邮箱地址。二进制类型

        • 数据类型选择小总结
      2. 4、
      3. SMALLINT:存放范围为-32,768到32,767,适合不太大的数值,比如“库存数量”。
      4. MEDIUMINT:存放范围为-8,388,608到8,388,607,可以用来存稍大一点的数据,比如“ID编号”。

    3. 数据类型的选择

    给每个字段选择合适的数据类型非常重要。

    小贴士:用整数时尽量选小一点的类型,减少存储空间,比如TINYINTINT更省空间。我们可以这样设置外键:

    CREATETABLEenrollments (enrollment_id INTPRIMARYKEY,-- 选课记录IDstudent_id INT,-- 学生IDcourse_id INT,-- 课程IDFOREIGNKEY(student_id)REFERENCESstudents(student_id));

    这里,student_idenrollments表的外键,它引用了students表里的student_id

    复合主键

    如果一个字段不够区分数据,也可以用多个字段组合成主键,这叫复合主键。

    例子:
    假设我们有一个学生选课表enrollments,它里头的student_id应该来自学生表的students表中。所以,选择正确的数据类型非常重要,不仅关系到存储效率,还影响查询速度!下面我们一起来认识MySQL中常用的数据类型,并了解它们的“性格特点”,好让每个字段都挑到合适的“衣服”。表的创建与管理

    在数据库中,数据是按“表”来存放的,每个表像是一张电子表格,有列(字段)和行(数据条目)。另外,MySQL默认还会有一些系统数据库,比如information_schemamysql,这些是MySQL系统自己用的,通常不要删除它们。

  • student_idcourse_id是外键,分别引用studentscourses表,确保选课记录里的学生和课程必须是有效的。

    外键的作用
    • 保证数据的引用完整性:外键确保表与表之间的“关系”是正确的。
    • INT:存放范围为-2,147,483,648到2,147,483,647,常用类型,适合大多数的整数场景。特别适合记录“最后更新时间”。


      3. 总结

      • 主键:唯一标识表中每一行数据,不能重复或为空。接下来,我们学习如何“盖房子”、用CREATE TABLE新建表结构,比如定义表里有哪些“格子”(字段)来放数据,DROP TABLE用于删除表,ALTER TABLE则可以灵活调整表的结构,让数据更符合需求。

        语法:

        CREATETABLE表名 (列名1数据类型 [约束条件],列名2数据类型 [约束条件],...);

        举个例子:
        假设我们要建一个叫“students”的表,用来记录学生信息,包括学号、

        -- 创建一个叫“student_management”的数据库CREATEDATABASEstudent_management;-- 显示所有数据库,确认我们的数据库创建成功SHOWDATABASES;-- 如果哪天我们不需要这个数据库了,可以删除它DROPDATABASEstudent_management;

        这样我们就创建了一个叫student_management的数据库,并可以用它来存放所有学生管理相关的数据。今天我们来学习如何用MySQL创建这些表、

      • 想避免重复创建?我们可以加个IF NOT EXISTS条件,这样在已经存在时就不会重复创建了:

        CREATEDATABASEIFNOTEXISTSmy_school;

      2. 查看已有数据库:SHOW DATABASES

      当我们在MySQL里存了很多数据库后,可能会忘记某些数据库的名字。

    • MEDIUMTEXTLONGTEXT:分别可以存放16MB和4GB的数据,非常适合超长文本,比如“产品描述”或“日志”。

    • 四、student_idcourse_id需要保持唯一性,用INT既通用也方便。姓名、

    用好主键和外键,不仅让数据库的结构更清晰,还能保障数据的准确性和完整性!

    5 举个栗子

    假设我们要建立一个小型“学生管理系统”,包含学生的基本信息、

    语法:

    DROPTABLE表名;

    举个例子:
    假设我们不再需要“students”表了,可以这样删除:

    DROPTABLEstudents;

    MySQL会删除students表以及它存放的所有数据,所以这个操作要慎重。


    4. 主键和外键的设置

    现在,我们还可以扩展,假如有一张enrollments表记录学生选修的课程信息。数据类型

    在MySQL中,我们的表就像装东西的“架子”,每一列(字段)都是用来装特定类型的数据。

  • 表的主键只能有一个,可以是单个字段,也可以是多个字段组合。
  • 时间DATE用于单独日期,DATETIME、好记,可以使用下划线(_)来连接多个单词,比如my_company。这是一个绝佳的例子,能让我们了解数据库和表的创建管理,掌握数据类型的选择,还能了解主键和外键的用法。适合只记录时间的场景,如“电影时长”。掌握这两者的定义和作用后,不仅能提高数据的完整性,还能让查询更高效!


    1. 主键(Primary Key):唯一标识每一行数据

    主键的作用是确保表中每一行数据的唯一性,就像身份证一样,主键不能重复,也不能为空。

    接下来,在数据库中创建存放具体数据的“架子”,也就是表的创建与管理

    一、

  • DOUBLE:精度比FLOAT高,可以表示非常精确的小数(约15位有效数字)。年龄和班级。

    主键的特点:
    • 唯一性:每个主键的值都要独一无二。

      3. 删除数据库:DROP DATABASE

      当一个数据库已经没有用处了,我们可以把这个“房子”拆掉。

  • student_idcourse_id作为主键,确保每条记录都能被唯一识别。

    -- 创建学生选课表CREATETABLEenrollments (enrollment_id INTPRIMARYKEY,-- 选课记录ID,主键student_id INT,-- 学生ID,外键,链接到students表course_id INT,-- 课程ID,外键,链接到courses表enrollment_date DATE,-- 选课日期FOREIGNKEY(student_id)REFERENCESstudents(student_id),FOREIGNKEY(course_id)REFERENCEScourses(course_id));
    • enrollment_idenrollments表的主键,保证每条选课记录都是唯一的。
    • ageclass分别表示年龄和班级,直接用INTVARCHAR(10)来表示。

      语法:

      CREATEDATABASE数据库名;

      举个例子:
      假设我们要创建一个叫“my_school”的数据库,用来放学校的各种数据,比如学生信息、

    • 三、

    5. 一个例子说明它们如何协作

    (提前用一下插入语句,要不然没法写了~)

    举个例子,假设某学生“张三”入学了,他的学生ID是1,课程表里有一个“数据库基础”的课程,课程ID是101

    4.2 删除列

    假如我们不再需要class(班级)这列了,可以用下面的命令来删除它:

    ALTERTABLEstudentsDROPCOLUMNclass;

    注意:删除列后所有数据都会一并消失,操作前要确认。

    -- 选择要操作的数据库USEstudent_management;-- 创建学生信息表CREATETABLEstudents (student_id INTPRIMARYKEY,-- 学生ID,主键,独一无二name VARCHAR(50),-- 学生姓名,最多50字符age TINYINT,-- 年龄,范围足够小,用TINYINTenrollment_date DATE-- 入学日期,使用DATE类型);-- 创建课程表CREATETABLEcourses (course_id INTPRIMARYKEY,-- 课程ID,主键course_name VARCHAR(100)-- 课程名称);
    • 这里我们使用了CREATE TABLE创建表,并为每个字段指定了合适的数据类型。它可以存储64KB的数据。

    • 浮点数类型

      • FLOAT:适合存储带小数的数据,精度一般。

      这些类型让我们既节省了存储空间,又能保证数据的准确性。我们需要先建立存放数据的“库”,这就是数据库的创建和管理,通过CREATE DATABASE来新建一个库,并用SHOW DATABASES查看已经存在的库,必要时还能用DROP DATABASE清理不再需要的库。

    • 非空:主键字段不能有空值,这样才能确保每条数据都能被唯一识别。表的创建与管理
      • 1. 创建数据表:CREATE TABLE
      • 2. 查看表结构:DESCRIBE 表名
      • 3. 删除数据表:DROP TABLE
      • 4. 修改表结构:ALTER TABLE
        • 4.1 添加新列
        • 4.2 删除列
        • 4.3 修改列的数据类型
        • 4.4 重命名列
      • 5. 总结
    • 3、删列或修改某列的数据类型,这时就用ALTER TABLE命令。


      1. 数据库的创建和管理

      首先,我们需要一个数据库来存放所有的表和数据。这时,可以使用SHOW DATABASES命令来看看有哪些“房子”已经盖好。

    3、

    5. 总结

    • 创建表:用CREATE TABLE 表名命令,定义每一列的结构和约束。
    • ON UPDATE CASCADE:当父表的主键被修改时,自动更新子表中的外键值。

    • TIMESTAMP:和DATETIME类似,但带有时区转换功能,自动记录UTC时间。表,挑选合适的数据类型,设置主键和外键。这种外键约束能确保所有数据之间的关系是符合逻辑的。这样,如果学生表没有这个student_id,就不能插入对应的选课记录。不像CHARVARCHAR只占用实际存储的字符数。

      1. DATE:用于存储日期,格式为YYYY-MM-DD,比如2024-10-26。女),用枚举或集合会非常方便。

      五、

    • name是姓名,VARCHAR(50)表示最长50个字符,并且NOT NULL代表这个字段不能为空。主键和外键
      • 1. 主键(Primary Key):唯一标识每一行数据
        • 主键的特点:
        • 定义主键
        • 复合主键
      • 2. 外键(Foreign Key):建立表与表之间的关联
        • 外键的作用
        • 定义外键
        • 级联操作(CASCADE)
      • 3. 总结
    • 5 举个栗子
        • 1. 数据库的创建和管理
        • 2. 表的创建与管理
        • 3. 数据类型的选择
        • 4. 主键和外键的设置
        • 5. 一个例子说明它们如何协作