zoukankan      html  css  js  c++  java
  • MySQL整理4—数据表的基本操作1

    主要内容:创建数据表,查看数据表结构,修改数据表,删除数据表,约束、默认和规则含义

    一、创建数据表

    语法形式:
    create table <表名> (
    字段1 , 数据类型 [列级别约束条件][默认值],
    字段2 , 数据类型 [列级别约束条件][默认值],
    ...
    );
    

    例子:

    create 
    create table tb_emp1(
    id int(11) primary key,
    name varchar(25),
    deptID int(11),
    salary float
    /*添加主键约束,在最后添加也可*/
    /*primary key(id)*/
    /*多字段主键添加  primary key(id,name)*/
    );
    

    约束包括哪些?

    • 非空约束 (not null)
    • 唯一性约束 (unique)
    • 主键约束 (primary key) 简称 PK
    • 外键约束 (foreign key) 简称 FK
    • 检查约束【目前MYSQL不支持,oracle数据库支持】

    1.主键:表中的每一行都应该具有可以唯一标识自己的一列(或一组列)。而这个承担标识作用的列称为主键。如果没有主键,数据的管理将会十分混乱。比如会存在多条一模一样的记录,删除和修改特定行十分困难。

    任何列都可以作为主键,只要它满足以下条件:

    • 任何两行都不具有相同的主键值。就是说这列的值都是互不相同的     
    • 每个行都必须具有一个主键值。主键列不允许设置为NULL    
    • 主键列的值不建议进行修改和更新

    (注释:在第一部分,数据库基础中,主键知识已介绍)

    2.外键

    基本概念 :

    • (1) MySQL中“键”和“索引”的定义相同,所以外键和主键一样也是索引的一种。不同的是MySQL会自动为所有表的主键进行索引,但是外键字段必须由用户进行明确的索引。用于外键关系的字段必须在所有的参照表中进行明确地索引,InnoDB不能自动地创建索引。
    • (2) 外键可以是一对一的,一个表的记录只能与另一个表的一条记录连接,或者是一对多的,一个表的记录与另一个表的多条记录连接。
    • (3) 如果需要更好的性能,并且不需要完整性检查,可以选择使用MyISAM表类型,如果想要在MySQL中根据参照完整性来建立表并且希望在此基础上保持良好的性能,最好选择表结构为innoDB类型。
    • (4) 外键的使用条件: ① 两个表必须是InnoDB表,MyISAM表暂时不支持外键 ② 外键列必须建立了索引,MySQL 4.1.2以后的版本在建立外键时会自动创建索引,但如果在较早的版本则需要显式建立; ③ 外键关系的两个表的列必须是数据类型相似,也就是可以相互转换类型的列,比如int和tinyint可以,而int和char则不可以;
    • (5) 外键的好处:可以使得两张表关联,保证数据的一致性和实现一些级联操作。

    create table tb_dept1(
    id int(11) primary key,
    name varchar(22) not null,
    location varchar(50)
    );
    create table tb_emp5(
    id int(11) primary key,
    name varchar(25),
    deptID int(11),
    salary float,
    constraint fk_empdept1 foreign key(deptID) references tb_dept1(id)
    );
    

    3.非空约束

    强制列不能为 NULL 值,约束强制字段始终包含值。这意味着,如果不向字段添加值,就无法插入新记录或者更新记录。例子:name字段不能为空

    create table tb_dept1(
    id int(11) primary key,
    name varchar(22) not null,
    location varchar(50)
    );
    

    4.唯一性约束

    unique约束的字段具有唯一性,不可重复。唯一性约束要求该列唯一,允许为空,但只能出现一个空值。唯一性约束可以确保一列或者几列不出现重复值。

    • UNIQUE KEY 唯一约束
    • 唯一约束可以保证数据的唯一性
    • 唯一约束的字段可以为空
    • 每张数据表可以有存在多个唯一约束
    create table tb_dept1(
    id int(11) primary key,
    name varchar(22) unique,
    location varchar(50)
    /*或者在最后添加constraint <约束名> unique <字段名>*/
    /*constraint na unique(name)*/
    );
    

    5.设置表的属性自动增加

    在数据库应用中,经常希望在每次插入新纪录时,系统自动生成字段的主键值。 实现此目的,可以使用关键字:ATUO_INCREMENT

    • 1.默认,MySQL中AUTO_INCREMENT的初值是1,每新增一条记录,字段值自动加1;
    • 2.一个表只能用一个字段使用AUTO_INCREMENT约束,且该字段必须为主键的一部分。
    • 约束的字段可以是任何整数类型(tinyint,smallint,int,bigint)
    create table tb_emp1(
    id int(11) primary key auto_increment,
    name varchar(25),
    deptID int(11),
    salary float
    );
    insert into tb_emp1(name,salary) 
    values('lucy',7000),('tom',15000),('steven',40000);
    

    插入数据后,id字段自动增加1。

  • 相关阅读:
    vim初试(Hello World)
    CSP201809-2 买菜(超简单的方法!!)
    CSP202006-2 稀疏向量
    CSP202012-2 期末预测之最佳阈值
    浮点数表示
    结构体
    全排列-康托展开及逆展开
    CA-031 上手Games101环境 Games101环境怎么配置
    计算机图形学 实验四 AET算法
    计算机图形学 实验三 梁氏裁剪算法
  • 原文地址:https://www.cnblogs.com/nctjlyh/p/10477165.html
Copyright © 2011-2022 走看看