MySQL心得二

MySQL心得二

上一篇我写的是数据库操作,接下来这一篇我们要讲的是数据库的表操作,我们都知道数据设计最重要之一就是确定数据库模型,这关乎到如何将现实中数据如何存入数据库中。数据库模式有三种

  1. 层次模型
  2. 网状模型
  3. 关系模型

本篇文章针对的是关系模型。关系模型的存储结构为多张二维的表格。对于二维表数据库有一定的要求

1、对于表中的行和列不再是单纯的了,行被称为记录和元组,列被称为字段或者属性。
2、数据表之间的联系是通过键的联系,键分为两种:主键、外键。主键是表中唯一的字段,外键则是另一张表的主键。表中存储另一张表的主键,通过键值比对进行操作。
3、主键字段不为空,且不同记录中不能出现主键字段重复。一张表只能有一个主键

数据类型

在我们创建表定义记录的时候需要我们指定其数据类型,具体的数据类型可以参考一下面的链接
w3school 在线教程

数据库的表操作

无论是数据库还是数据表的操作都离不开“增删改查”操作。下面我们就来说一下常用的操作。

  1. 创建表(增)

    #创建表有三种方式
    #
    #方式一 普通形式创建表
    #主要的结构为  CREATE TABLE 表名 ( 记录名  类型  约束条件 ....)
    CREATE TABLE t2 (
    	id INT NOT NULL auto_increment,#非空自动增长
    	sNO INT UNIQUE,#设置唯一标识
    	username VARCHAR ( 25 ) DEFAULT '',#设置默认值
    	sex TINYINT COMMENT 'One for boys, zero for girls',#设置备注
    	d_id INT,#定义主键记录
    	PRIMARY KEY ( id ),#设置主键
    	FOREIGN KEY ( d_id ) REFERENCES `user` ( d_id ),#设置外键
    	CHECK ( sex = 0 OR sex = 1 ) #设置约束条件
    )	CHARSET='utf8' #设置表的编码格式
    	ENGINE=INNODB	 #设置存储引擎
    	auto_increment=20 #设置自动增长的初始值
    	COMMENT='表的备注';#设置表的注释;
    
    #方式二 用查询到的结果集创建表
    create table 表名
    as
     查询语句
     
    #方式三 创建与另一张表结构相同的表
    create table 表名 
    like 另一张表的表名;
    
    1. 唯一标识要求同一记录中不能出现相同的值。一个表中可以定义多个唯一标识

    2. 设置默认值中需要说一下如果你设置的是 ’‘不占用空间,设置null是占用空间。如果类型是varchar 需要指定大小 不然就报错,其原因不祥.

    3. 上面普通形式创建表中介绍到我们比较常用的约束条件,还有两个约束条件为UNSIGNED 无符号约束,没有负数,从零开始、ZEROFILL显示的长度不够的数字前面自动补零约束。

    4. 在我们往数据表中的数值类型填充值的时候需要注意一下类型的最大长度和最小长度,如果填充的值超过最大值或最小值会出现截断现象,例如你设置的类型为 TINYINT,但是你填充的为128,那么存入的值为127。

    5. 一个表中只能有一个主键,但也不是说只有表中的一个记录才形成主键,多个记录也可以形成复合主键,复合主键的写法为’PRIMARY KEY (记录,记录…)‘,例如我们设置了两条记录为复合主键,对数据增删改查的时候需要同时对这两条记录操作。

    6. 自动增长约束一般用于键值或者是索引,不然会报错

    7. 存储引擎,5.5之前的mysql使用的myisam存储引擎,之后使用的是InnoDB。下面就是存储引擎详解。

      (https://img-blog.csdnimg.cn/20200503103838576.png?x-oss-	process=im

  2. 删除表(删)

    DROP TABLE
    IF
    EXISTS t2;
    

    如果表存在 这个命令将表的描述、表的完整性约束、索引及表的相关的权限等都全部删除。

  3. 修改表(改)

    #向表中添加字段
    #方括号里面的属性是可选的,FIRST和AFTER指的是插入的位置
     ALTER TABLE 表名
     ADD  记录名 类型 [约束条件  FIRST|AFTER 表中已有记录名];
    
    #删除字段
    ALTER TABLE 表名 DROP  dept;
    
    #主键的添加 
    ALTER TABLE 表名
    ADD PRIMARY KEY ( 表中已有的记录名 );
    
    #主键的删除 
    ALTER TABLE 表名
    DROP PRIMARY KEY;
    
    #添加默认值
    ALTER TABLE 表名
    ALTER 表中已有的记录 set DEFAULT 默认值;
    
    #删除默认值
    ALTER TABLE 表名
    ALTER 表中已有记录名 DROP DEFAULT;
    
    #修改字段类型、字段名称、约束条件、位置
    #方括号可选。
    ALTER TABLE 表名
    CHANGE 表中已有记录名 新记录名 类型 [DEFAULT 默认值 AFTER|FIRST 表中已有的记录名 ];
    
    #不需要修改记录名称,修改字段类型、字段名称、约束条件、位置。
    ALTER TABLE 表名
    MODIFY 表中已有记录名  类型  [DEFAULT 默认值 AFTER|FIRST 表中已有的记录名 ];
    
    #修改自动增长值
    ALTER TABLE 表名 auto_increment=;
    
    #修改数据表的名称
    #方式一
    RENAME TABLE 原数据表名称 TO 新数据表名称;
    #方式二
    ALTER TABLE 原数据表名称
    RENAME TO 新数据表名称;
    
  4. 查询表(查)

    	#查看表中的结构
    	DESC 表名
    

此文章的存储引擎的图片来源于https://www.cnblogs.com/457248499-qq-com/p/7368491.html 的文章中。如若有错,请在评论。岁月茫茫,愿你我偕同成长。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值