主键约束

Mysql 存储引擎的区别和比较

邮差的信 提交于 2019-12-20 08:51:31
MyISAM存储引擎   MyISAM基于ISAM存储引擎,并对其进行扩展。它是在Web、数据仓储和其他应用环境下最常使用的存储引擎之一。 MyISAM拥有较高的插入、查询速度,但不支持事务。 MyISAM主要特性有: 大文件(达到63位文件长度)在支持大文件的文件系统和操作系统上被支持。 当把删除、更新和插入操作混合使用的时候,动态尺寸的行产生更少碎片。这要通过合并相邻被删除的块,以及若下一个块被删除,就扩展到下一块自动完成。 每个MyISAM表最大索引数是64,这可以通过重新编译来改变。每个索引最大的列数是16 NULL被允许在索引的列中,这个值占每个键的0~1个字节 可以把数据文件和索引文件放在不同目录(InnoDB是放在一个目录里面的)    MyISAM引擎使用B+Tree作为索引结构, 叶节点的data域存放的是数据记录的地址 。   下图是MyISAM索引的原理图:    可以看出MyISAM的索引文件仅仅保存数据记录的地址。 在MyISAM中,主索引和辅助索引(Secondary key)在结构上没有任何区别,只是主索引要求key是唯一的,而辅助索引的key可以重复。   如果我们在Col2上建立一个辅助索引,则此索引的结构如下图所示:   同样也是一颗B+Tree,data域保存数据记录的地址。 因此,MyISAM中索引检索的算法为首先按照B

MySQL中数据表的基本操纵

寵の児 提交于 2019-12-19 09:14:01
本文基于对国家863中部软件孵化器编著的《MySQL从入门到精通》一书的操作实践。 一、创建数据表 数据表属于数据库,在创建数据表之前,应该使用语句 USE 数据库名 指定操作是在那个数据库中进行。 创建数据表的语句为CREATE TABLE ,语法规则如下: 1 CREATE TABLE 表名 2 ( //为括号 3 字段名1 数据类型 [列级别约束条件] [默认值], 4 字段名1 数据类型 [列级别约束条件] [默认值], 5 ...... 6 [表级约束条件] 7 ); //要有分号 使用CREATE TABLE 创建表时,要注意一下几点: (1)要创建表名,不区分大小写,不能使用SQL语言中的关键字,如DROP、ALTER等; (2)数据表中每一个字段的名称和数据类型,如果要创建多个,要用逗号隔开。 1、主键约束 主键,又称主码,是表中一列或者多列的组合。主键约束(Primary Key Constraint)要求主键列的数据唯一,并且不允许为空。主键能够唯一标识表中的一条记录,可以结合外键来定义不同数据表之间的关系,并且可以加快数据库查询的速度。主键和记录之间的关系如同身份证和人之间的关系,它们之间一一对应。主键分为两种类型:单字段主键和多字段联合主键。 (1)单字段主键 a)在定义列的同时指定主键,语法规则如下: 字段名 数据类型 PRIMARY KEY [默认值]

mysql外键

两盒软妹~` 提交于 2019-12-19 06:29:28
MySQL 外键约束(FOREIGN KEY)用来在两个表的数据之间建立链接,它可以是一列或者多列。一个表可以有一个或多个外键。 外键对应的是参照完整性,一个表的外键可以为空值,若不为空值,则每一个外键的值必须等于另一个表中主键的某个值。 外键是表的一个字段,不是本表的主键,但对应另一个表的主键。定义外键后,不允许删除另一个表中具有关联关系的行。 外键的主要作用是保持数据的一致性、完整性。例如,部门表 tb_dept 的主键是 id,在员工表 tb_emp5 中有一个键 deptId 与这个 id 关联。 主表(父表):对于两个具有关联关系的表而言,相关联字段中主键所在的表就是主表。 从表(子表):对于两个具有关联关系的表而言,相关联字段中外键所在的表就是从表。 在table2中字段typeid为数据库testdb的表table1的外键,关联其主键id。 constraint设置索引名(外键名)。 来源: https://www.cnblogs.com/1016391912pm/p/12065676.html

Hibernate学习---第三节:映射配置文件详解

拟墨画扇 提交于 2019-12-18 05:30:43
1、映射文件,代码如下: <?xml version="1.0"?> <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd"> <!-- 持久化映射文件(将java对象映射到数据库表) default-access="property" 对象属性状态操作方式设置 property 表示属性需要通过 getter / setter 方法操作(默认) field 表示可以不需要通过 getter / setter 方法就可以通过反射的方式操作属性 package 指定持久化配置文件的中 class 的包路径 default-lazy="true" 指定持久化配置文件的中 class 延迟加载策略 default-cascade="none" 指定持久化配置文件的中 class 级联操作策略 --> <hibernate-mapping package="learn.hibernate.bean" default-access="property" default-cascade="none"> <!-- 1、name (可选): 持久化类(或者接口)的Java全限定名。

MySQL入门

大城市里の小女人 提交于 2019-12-17 22:37:23
目录 1. 数据库的介绍 2. 数据库的类型 关系型数据库核心元素 3. MySQL的基本介绍 4. 常用入门的操作命令 SQL DQL数据查询语言 DML DDL 5 DDL 创建表 显示建表语句 6 数据类型 数值类型(常用) 小数类型 字符串 日期时间类型 7 数据库设计 约束规则 实体 8 三范式 9 E-R模型 10 备份和恢复 备份 恢复 11 消除重复行 12 where条件的运算符进阶 空判断 运算符优先级 13 连接查询[连表查询、多表查询] 内连接查询(inner join) 右连接查询(right join) 左连接查询(left join) 多表关联 14 单表的连表查询[自关联查询] 15 子查询 主查询 主查询和子查询的关系 16 having 17 select查询语句的完整格式 18 Python操作mysql 安装pymysql模块 使用pymysql模块操作数据库 1. 数据库的介绍 数据库就是一个以某种有组织的方式存储的数据集合。 简单的说,数据库(database)就是一个存放数据的仓库,这个仓库是按照一定的数据结构(数据结构是指数据的组织形式或数据之间的联系)来组织、存储的,我们可以通过数据提供的多种方法来管理数据库里的数据。 好处 : 持久化存储 读写速度极高 保证数据的有效性 对程序支持性非常好,容易扩展 我们可以理解为

第四十天笔记

只谈情不闲聊 提交于 2019-12-17 05:21:11
约束 什么是约束 除了数据类型以外额外添加的约束 为什么要使用约束 为了保证数据的合法性 完整性 分类: not null 非空约束 数据不能为空 学生表的姓名字段 create table student (id int,name char(10) not null); default 默认值约束 可以指定字段的默认值 create table user (id ind,name char(10) not null,sex char(1) default "woman"); 美柚的性别字段 默认为女 游戏 注册成功 送一万金币 unique 唯一性约束 该字段的值不能重复 身份证 手机号 学号 unique其实是一种索引 索引是一种数据结构 用于提高查询效率 可以为空 一张表中可以有多个唯一约束 单列唯一约束 create table t5(idcard char(18) unique); 多列联合唯一约束 create table t6(idcard char(18),phonenumber char(11),unique(idcard,phonenumber)); 意思: 身份证相同 并且 手机号相同 那就叫相同 primary key ****** 称之为主键约束 用于唯一标识表中一条记录 如何能做到唯一标识 该字段 只要是惟一的 并且不为空 即可 也就是说

MySQL基础

五迷三道 提交于 2019-12-17 00:31:05
一、MySQL概述 1、什么是数据库 ?  答:数据的仓库,如:在ATM的示例中我们创建了一个 db 目录,称其为数据库 2、什么是 MySQL、Oracle、SQLite、Access、MS SQL Server等 ?  答:他们均是一个软件,都有两个主要的功能: a. 将数据保存到文件或内存 b. 接收特定的命令,然后对文件进行相应的操作 3、什么是SQL ?   答:MySQL等软件可以接受命令,并做出相应的操作,由于命令中可以包含删除文件、获取文件内容等众多操作,对于编写的命令就是是SQL语句。 二、MySQL安装 MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,目前属于 Oracle 旗下公司。MySQL 最流行的关系型数据库管理系统,在 WEB 应用方面MySQL是最好的 RDBMS (Relational Database Management System,关系数据库管理系统) 应用软件之一。 想要使用MySQL来存储并操作数据,则需要做几件事情:   a. 安装MySQL服务端   b. 安装MySQL客户端   b. 【客户端】连接【服务端】   c. 【客户端】发送命令给【服务端MySQL】服务的接受命令并执行相应操作(增删改查等) 下载 http://dev.mysql.com/downloads/mysql/ 安装 windows:

Oracle 数据库(一)—— Oracle 数据库介绍

一笑奈何 提交于 2019-12-16 01:42:08
文章目录 一、Oracle 数据库概述 1、Oracle 概述 二、关系型数据库 1、数据库管理系统 2、数据库设计范式 三、Oracle 11g 的新功能 一、Oracle 数据库概述 1、Oracle 概述 Oracle Database,又名Oracle RDBMS,或简称Oracle。是甲骨文公司的一款关系数据库管理系统。它是在数据库领域一直处于领先地位的产品。可以说Oracle数据库系统是目前世界上流行的关系数据库管理系统,系统可移植性好、使用方便、功能强,适用于各类大、中、小、微机环境。它是一种高效率、可靠性好的、适应高吞吐量的数据库方案。 二、关系型数据库 1、数据库管理系统 在数据库系统中,数据模型主要有层次模型、网状模型和关系模型三种(另外-种面向对象模型还处在探索研究中),目前理论成熟、使用普及的模型就是关系模型一关系型数据库的理论基础。 (1)关系型数据库与数据库管理系统 关系型数据库是建立在关系模型基础上的数据库,借助于集合代数等数学概念和方法来处理数据库中的数据,现实世界中的各种实体以及实体之间的各种联系均用关系模型来表示。 关系模型以二维表来描述数据。在关系模型中,每个表有多个字段列和记录行,每个字段列有固定的类型属性(如数字、字符、日期等类型)。关系模型数据结构简单、清晰、具有很高的数据独立性,因此是目前主流的数据库数据模型。 在关系数据模型中

Mysql基础02-约束

≡放荡痞女 提交于 2019-12-14 19:00:47
约束与索引 概念 1、数据完整性(Data Integrity)是指数据的精确性(Accuracy)和可靠性(Reliability)。 实体完整性(Entity Integrity):例如,同一个表中,不能存在两条完全相同无法区分的记录 域完整性(Domain Integrity):例如:年龄范围0-120,性别范围“男/女” 引用完整性(Referential Integrity):例如:员工所在部门,在部门表中要能找到这个部门 用户自定义完整性(User-defined Integrity):例如:用户名唯一、密码不能为空等 2、约束 键约束:主键约束、外键约束、唯一键约束 Not NULL约束:非空约束 Check约束:检查约束 Default约束:默认值约束 自增约束 3、约束(CONSTRAINTS)与索引(INDEX) 约束是用来对数据业务规则和数据完整性进行实施、维护。约束的作用范围仅限在当前数据库,是逻辑约束,不会因为设置约束而额外占用空间。 索引 是一个单独、物理的存储在数据页上的数据库结构,它是表中 一列或若干列值的集合 和相应的指向表中数据值的物理标识数据页的 逻辑指针清单 (类似于新华字典的目录索引页)。 可以大大提高查询速度。应该在键列、或其他经常要查询、排序、按范围查找的列上建立索引。 Mysql会在主键、唯一键、外键列上自动创建索引

MySQL 表的约束条件

ぃ、小莉子 提交于 2019-12-14 07:03:40
1.主键约束 主键约束要求主键列的数据 非空且唯一 1. 在定义列时指定主键,语法规则如下 字段名 数据类型 primary key create table book ( bno Varchar(6) primary key, //主键 bname Varchar(70), press Varchar(30), price Decimal(8,2), author varchar(30) ) 2. 在定义完所有列之后指定主键。 constraint 约束名 primary key (字段名); 如: create table book ( bno Varchar(6), bname Varchar(70), press Varchar(30), price Decimal(8,2), author varchar(30), //括号里可以输入多个字段,用逗号隔开,约束名随意 constraint pk primary key(bno) ) 3.在创建表之后添加与删除主键 alter table 表名 modify 字段名 数据类型 primary key; //添加 alter table 表名 drop primary key; //删除 添加主键 alter table book modify bno varchar ( 6 ) primary key ; 删除主键