第2讲——MySQL数据表的基本操作1

97 阅读5分钟

❤️持续创作,加速成长!开启掘金成长之旅!这是我参与「掘金日新计划 · 2 月更文挑战」的第 2 天,点击查看活动详情

🎨 个人介绍

👉大家好,我是:旺仔不是程序员

👉认真分享技术,记录学习过程的点滴,如果我的分享能为你带来帮助,请支持我奥🍻

👉你的支持,是我每天更新的动力。

👉赞点:👍 留言:✍ 收藏:⭐

👉个人格言:想法一步一步的落实,才是你我前进最佳选择。

my.jpeg

1. 创建数据表

1. 基本创建方法

  1. 创建数据表注意事项:

    1. 要创建的表的名称,不区分大小写,不能使用SQL语言中的关键字,如DROP、ALTER、INSERT等
    2. 数据表中每一列(字段)的名称和数据类型,如果创建多列,就要用逗号隔开
  2. 创建数据表格式:

 CREATE TABLE 表名
 (
 字段名1  数据类型  [列级别约条件] [默认值],  
 字段名2  数据类型  [列级别约条件] [默认值],  
 字段名3  数据类型  [列级别约条件] [默认值], 
 );
 CREATE TABLE tb_emp1
 (
 id      INT(11),
 name   VARCHAR(25),
 deptId  INT(11),
 salary  FLOAT
 );

2. 使用主键约束创建方式

  1. 概述:

    1. 主键:又称主码,是表中一列或多列的组合
    2. 主键约束(Primary Key Constraint)要求主键列的数据唯一,并且不允许为空
  2. 作用:

    1. 主键能够唯一地标识表中的一条记录
    2. 可以结合外键来定义不同数据表之间的关系
    3. 并且可以加快数据库查询的速度
  3. 分类:

    1. 单字段主键:

      1. 概述:主键由一个字段组成
      2. 语法格式:字段名 数据类型 PRIMARY KEY [默认值]
    2. 多字段联合主键:

      1. 概述:主键由多个字段联合组成
      2. 语法格式:PRIMARY KEY [字段1, 字段2,. . ., 字段n]
 # 第一种创建
 CREATE TABLE tb_emp2
 (
 id      INT(11) PRIMARY KEY,
 name    VARCHAR(25),
 deptId  INT(11),
 salary  FLOAT
 );
 ​
 # 第二种创建
 CREATE TABLE tb_emp3 
 (
 id INT(11),
 name VARCHAR(25),
 deptId INT(11),
 salary FLOAT,
 PRIMARY KEY(id)
 );
 CREATE TABLE tb_emp4
  (
 name VARCHAR(25),
 deptId INT(11),
 salary FLOAT,
 PRIMARY KEY(name,deptId)
 );

3. 使用外键约束

  1. 概述:

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

    1. 保证数据引用的完整性,定义外键后,不允许删除在另一个表中具有关联关系的行
    2. 保持数据的一致性、完整性
  3. 主表和从表的说明

    1. 主表(父表):对于两个具有关联关系的表而言,相关联字段中主键所在的那个表即是主表。
    2. 从表(子表):对于两个具有关联关系的表而言,相关联字段中外键所在的那个表即是从表。
  4. 创建外键的语法规则:

    1. [CONSTRAINT <外键名>] FOREIGN KEY 字段名1 [ ,字段名2,…] REFERENCES <主表名> 主键列1 [ ,主键列2,…]
  5. 注意:子表的外键必须关联父表的主键,且关联字段的数据类型必须匹配

 [CONSTRAINT <外键名>] FOREIGN KEY 字段名1 [ ,字段名2,…] 
 REFERENCES <主表名> 主键列1 [ ,主键列2,…]
 ​
 # 创建一个部门表tb_dept1,SQL语句如下:
 CREATE TABLE tb_dept1
 (
 id       INT(11) PRIMARY KEY,
 name    VARCHAR(22)  NOT NULL,
 location  VARCHAR(50)
 );
 ​
 # 定义数据表tb_emp5,让它的键deptId作为外键关联到tb_dept1的主键id,SQL语句为:
 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)
 );

4. 使用非空约束

  1. 概述

    1. 非空约束(Not Null Constraint)指字段的值不能为空
    2. 对于使用了非空约束的字段,如果用户在添加数据时没有指定值,数据库系统会报错
  2. 非空约束的语法规则:字段名 数据类型 not null

 # 定义数据表tb_emp6,指定员工的名称不能为空,SQL语句如下:
 CREATE TABLE tb_emp6 
 (
 id     INT(11) PRIMARY KEY,
 name   VARCHAR(25) NOT NULL,
 deptId  INT(11), 
 salary  FLOAT
 );

5. 使用唯一性约束

  1. 概述:

    1. 唯一性约束(Unique Constraint)要求该列唯一,允许为空
    2. 但只能出现一个空值
    3. 唯一约束可以确保一列或者几列不出现重复值
  2. 唯一性约束的语法规则:

    1. 字段名 数据类型 UNIQUE
    2. [CONSTRAINT <约束名>] UNIQUE(<字段名>)
  3. UNIQUE和PRIMARY KEY的区别:

    1. 一个表中可以有多个字段声明为UNIQUE,但只能有一个PRIMARY KEY声明
    2. 声明为PRIMAY KEY的列不允许有空值,但是声明为UNIQUE的字段允许空值(NULL)的存在
 # 唯一约束
 # 定义数据表tb_dept2,指定部门的名称唯一,SQL语句如下:
 CREATE TABLE tb_dept2 
 (
 id      INT(11) PRIMARY KEY,
 name    VARCHAR(22) UNIQUE,
 location  VARCHAR(50)
 );

6. 使用默认约束

  1. 概述

    1. 默认约束(Default Constraint)指定某列的默认值
  2. 默认约束的语法规则:字段名 数据类型 DEFAULT 默认值

 # 定义数据表tb_emp7,指定员工的部门编号默认为1111SQL语句如下:
 CREATE TABLE tb_emp7 
 (
 id      INT(11) PRIMARY KEY,
 name   VARCHAR(25) NOT NULL,
 deptId  INT(11) DEFAULT 1111, 
 salary  FLOAT
 );

7. 设置表的属性值自动增加

  1. 概述

    1. 在数据库应用中,经常希望在每次插入新记录时,系统自动生成字段的主键值
    2. 可以通过为表主键添加AUTO_INCREMENT关键字来实现
    3. 默认的,在MySQL中AUTO_INCREMENT的初始值是1,每新增一条记录,字段值自动加1
    4. 一个表只能有一个字段使用AUTO_INCREMENT约束,且该字段必须为主键的一部分
    5. AUTO_INCREMENT约束的字段可以是任何整数类型(TINYINT、SMALLIN、INT、BIGINT等)
  2. 自动增加的语法规则:字段名 数据类型 AUTO_INCREMENT

 # 属性值自动增加
 # 定义数据表tb_emp8,指定员工的编号自动递增,SQL语句如下:
 CREATE TABLE tb_emp8 
 (
 id      INT(11) PRIMARY KEY AUTO_INCREMENT,
 name   VARCHAR(25) NOT NULL,
 deptId  INT(11), 
 salary  FLOAT
 );
 # 插入数据测试
 INSERT INTO tb_emp8 (name,salary) VALUES('Lucy',1000), ('Lura',1200),('Kevin',1500);