• MySQL学习 [第一天] ——数据库的基本操作 Ⅰ


    MySQL学习 [第一天] ——数据库的基本操作 Ⅰ

    一、前言

    大数据的学习道路上离不开数据库的学习,我们学校在上学期开设了有关数据库的课程,但学习的是SQL Server,虽然不管使用什么数据库SQL语法都差不多,但是SQL Server在平时确实用的很少,所以本学期我准备重新开始学习数据库,并且以MySQL 8为学习目标,进一步学习有关数据库的知识。

    MySQL 是最流行的关系型数据库管理系统,在 WEB 应用方面 MySQL 是最好的 RDBMS(Relational Database Management System:关系数据库管理系统)应用软件之一。

    MySQL 是一个关系型数据库管理系统,由瑞典 MySQL AB 公司开发,目前属于 Oracle 公司。MySQL 是一种关联数据库管理系统,关联数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。

    我学习参考的书籍是**《MySQL 8从入门到精通》,**我正在看,大家如果想去阅读,可以去微信阅读上看或者上网找免费的电子版学习,后续学习总结的内容都会依据这本书来为大家总结。

    好啦,废话不多说,我们开始数据库的学习之旅!

    二、我的环境

    • 电脑系统:Windows 11
    • 数据库管理系统版本:MySQL 8
    • 数据库管理工具:Nacicat Premium 16

    三、数据库的创建与删除

    1、数据库的创建

    MySQL安装完成之后,它自动的生成几个系统的数据库,我们可以使用如下SQL语句来查询看看:

    SHOW DATABASES;
    

    在这里插入图片描述

    这些数据库都不能轻易删除,它们是MySQL所必需的,它们的作用在后面的学习中会讲到。

    创建数据库是在系统磁盘上划分一块区域用于数据的存储和管理,在MySQL中创建数据库的基本SQL语法格式是:

    CREATE DATABASE database_name;
    

    database_name是要创建的数据库的名称,新建的数据库不能和已存在的数据库重名。

    OK,现在我们来尝试创建我们的第一个数据库:

    CREATE DATABASE test_db;
    

    数据库创建好之后,我们再次使用上面的语句查看一下:

    在这里插入图片描述

    OK,我们已经成功迈出了第一步了。

    2、数据库的删除

    删除数据库是将已经存在的数据库从磁盘空间上清除,清除之后,数据库中的所有数据也将一同被删除。MySQL中删除数据库的基本语法格式为:

    DROP DATABASE database_name
    

    用DROP DATABASE声明删除数据库后,数据库中存储的所有数据表和数据也将一同被删除,而且不能恢复,如果要删除的数据库不存在,就会报错。

    我们试着将刚才创建的数据库删除:

    DROP DATABASE test_db;
    

    在这里插入图片描述

    我们刷新一下,就会发现数据库已经被成功删除了。

    四、数据表的基本操作

    在数据库中,数据表是数据库中最重要、最基本的操作对象,是数据存储的基本单位。数据表被定义为列的集合,数据在表中是按照行和列的格式来存储的。每一行代表一条唯一的记录,每一列代表记录中的一个域。

    接下来我们将学习有关数据表的基本操作。

    1、创建数据表

    创建数据表的过程是规定数据列的属性的过程,同时也是实施数据完整性(包括实体完整性、引用完整性和域完整性等)约束的过程。

    创建数据表的语句如下:

    CREATE TABLE <表名>
    (
        字符串1, 数据类型 [列级别约束条件] [默认值],
        字符串2, 数据类型 [列级别约束条件] [默认值],
        ......
        [表级别约束条件]
    );
    

    创建数据表的前提是有一个数据库,我们在创建表时需要指定是在哪个数据库里创建表,例如我们先创建一个数据库,然后再创建一个表:

    USE test_db;
    CREATE TABLE tb_emp1 
    (
     id INT ( 11 ), 
    NAME VARCHAR ( 25 ), 
    deptId INT ( 11 ), 
    salary FLOAT 
    );
    

    在这里插入图片描述

    2、使用主键约束

    主键,又称主码,是表中一列或多列的组合。主键约束要求主键列的数据唯一,并且不允许为空。主键能够唯一地标识表中的一条记录,可以结合外键来定义不同数据表之间的关系,并且可以加快数据库查询的速度。

    主键分为两种类型:单字段主键和多字段联合主键。

    • 单字段主键

      语法格式如下:

      字段名 数据类型 PRIMARY KEY [默认值]
      

      例如我们将刚才的表的id设置为主键,并命名为新的数据表tb_emp2:

      USE test_db;
      CREATE TABLE tb_emp2 
      (
      id INT ( 11 ) PRIMARY KEY, 
      name VARCHAR ( 25 ), 
      deptId INT ( 11 ), 
      salary FLOAT 
      );
      

      我们还可以再所以列定义完之后再指定主键:

      USE test_db;
      CREATE TABLE tb_emp3
      (
      id INT ( 11 ) , 
      name VARCHAR ( 25 ), 
      deptId INT ( 11 ), 
      salary FLOAT,
      PRIMARY KEY(id) 
      );
      
    • 多字段联合主键

      语法格式如下:

      PRIMARY KEY [字段1, 字段2, ... ..., 字段n]
      

      例如,我们可以将name和deptId联合起来作为主键:

      USE test_db;
      CREATE TABLE tb_emp4
      ( 
      name VARCHAR ( 25 ), 
      deptId INT ( 11 ), 
      salary FLOAT,
      PRIMARY KEY(name, deptId) 
      );
      

      这样name和deptId字段组合起来成为表tb_emp4的多字段联合主键。

    3、使用外键约束

    外键用来在两个表的数据之间建立连接,可以是一列或者多列。一个表可以有一个或多个外键。外键对应的是参照完整性,一个表的外键可以为空值,若不为空值,则每一个外键值必须等于另一个表中主键的某个值。

    外键是表中的一个字段,需要对应另一个关联表的主键,设置外键的原因在于保证数据引用的完整性,在定义外键之后,就不允许删除在另一个表中具有关联关系的行了。

    创建外键的语法格式是:

    [CONSTRAINT <外键名>] FOREIGN KEY 字段1 [, 字段名2, ...]
    REFERENCES <主表名> 主键列1 [,  主键列2,...] 
    

    例如我们创建一个部门表tb_dept1:

    USE test_db;
    CREATE TABLE tb_dept1
    ( 
    id INT(11) PRIMARY KEY,
    name VARCHAR(22) NOT NULL,
    location VARCHAR(50) 
    );
    

    然后我们再创建一个数据表tb_emp5,让它的键deptId作为外键关联到tb_dept1的主键id:

    USE test_db;
    CREATE TABLE tb_emp5
    ( 
    id INT(11) PRIMARY KEY,
    name VARCHAR(25),
    deptId INT(11),
    salary FLOAT,
    CONSTRAINT fk_emp_dept1 FOREIGN KEY(deptId) REFERENCES tb_dept1(id)
    );
    

    我们再表tb_emp5上添加了一个名为fk_emp_dept1的外键约束,外键为deptId,它依赖于表tb_dept1的主键id。

    4、使用非空约束

    非空约束意思为字段的值不能为空,字段再设置非空约束之后,如果不指定值,就会报错。

    非空约束的语法格式为:

    字段名 数据类型 NOT NULL
    

    5、使用唯一约束

    设置唯一约束要求该列唯一,可以为空,但只能出现一个空值,其作用是可以确保一列或者多列不出现重复着。

    设置唯一约束可以再定义列之后直接指定唯一约束:

    字段名 数据类型 UNIQUE
    

    例如:

    USE test_db;
    CREATE TABLE tb_dept2
    ( 
    id INT(11) PRIMARY KEY,
    name VARCHAR(25) UNIQUE,
    location VARCHAR(50)
    );
    

    设置唯一约束还可以再定义所以列之后指定唯一约束:

    [CONSTRAINT <约束名>] UNIQUE(<字段名>)
    

    例如:

    USE test_db;
    CREATE TABLE tb_dept3
    ( 
    id INT(11) PRIMARY KEY,
    name VARCHAR(22),
    location VARCHAR(50),
    CONSTRAINT STH UNIQUE(name)
    );
    

    学到这里,有人可能会问,主键跟唯一约束不都是确定唯一值吗,它们有什么区别,我想说的是唯一约束在一个表中可以有多个字段声明,而且字段可为空值,但是主键只能声明一个,且不能为空。

    6、使用默认约束

    默认约束意思是指定某列的默认值,它的语法格式如下:

    字段名 数据类型 DEFAULT 默认值
    

    例如:

    USE test_db;
    CREATE TABLE tb_emp7
    ( 
    id INT(11) PRIMARY KEY,
    name VARCHAR(25) NOT NULL,
    deptId INT(11) DEFAULT 0000,
    salary FLOAT
    );
    

    我们将部门编号默认为0000,如果插入数据时不指定编号那么就是默认的编号。

    五、最后我想说

    开始部分内容比较多,我准备分成几个博客进行总结更新,接下来的博客依旧会继续更新有关数据库的基本操作内容,大家耐心等待,谢谢啦!
    另外,我使用的是破解版的Nacicat Premium 16,如果你们想要的话,可以留下你们的邮件,我发给你们,但要注意不能利用这个去盈利,希望大家都遵纪守法,学计算机的,要学会白嫖,也需要学会遵纪守法。
    最后,创作不易,期待得到你们的支持,谢谢关注!

  • 相关阅读:
    apisix~14在自定义插件中调用proxy_rewrite
    HTML Emmet语法
    Elasticsearch 认证模拟题 - 22
    LeetCode 121:买卖股票的最佳时机
    认证服务------功能实现逻辑
    智能井盖的用处有哪些?好用在什么地方?
    what is gopls
    04-SpringBoot的基础配置及其配置文件分类,解决Yaml文件失效问题
    Imu_PreIntegrate_11 position Jacobian 位置残差对状态增量的雅克比矩阵
    超声波清洗机需要注意什么?不能错过的超声波清洗机
  • 原文地址:https://blog.csdn.net/qq_52417436/article/details/126964015