精华内容
下载资源
问答
  • 数据库——创建数据库表 用代码创建 -- 注意点;英文括号() 表的名称和字段尽量用`` -- AUTO_INCREMENT 自增 一个表只能有一个自增键,而且必须是主键 -- 字符串用单引号括起来 -- 所有的语句后面,(英文的) 最后...

    数据库——创建数据库表

    用代码创建

    -- 注意点;英文括号()   表的名称和字段尽量用``
    -- AUTO_INCREMENT 自增 一个表只能有一个自增键,而且必须是主键
    -- 字符串用单引号括起来
    -- 所有的语句后面加,(英文的)  最后一个不用加
    -- PRIMARY KEY 设置主键,一个表一般只有唯一的主键
    CREATE TABLE IF NOT EXISTS `student`(
    `id` INT(4) NOT NULL AUTO_INCREMENT COMMENT '学号',
    `name` VARCHAR(30) NOT NULL DEFAULT '匿名' COMMENT '姓名',
    `pwd` VARCHAR(20) NOT NULL DEFAULT '123456' COMMENT '密码',
    `sex` VARCHAR(2) NOT NULL DEFAULT '男' COMMENT '性别',
    `birthday` DATETIME DEFAULT NULL COMMENT '出生日期',
    `address` VARCHAR(100) DEFAULT NULL COMMENT '家庭住址',
    `email` VARCHAR (50) DEFAULT NULL COMMENT '邮箱',
    PRIMARY KEY(`id`)
    )ENGINE=INNODB DEFAULT CHARSET=utf8
    -- 拓展
    SHOW CREATE DATABASE school -- 查看数据库的语句
    SHOW CREATE TABLE student -- 查看表的语句 
    DESC student  -- 显示表的结构
    

    在这里插入图片描述

    展开全文
  • 创建数据库表

    2020-07-28 23:55:48
    目标:创建一个school数据库 创建学生(列,字段) 使用SQL 创建 ...注意点: 使用英文 () ,的名称 和 字段 尽量使用 ·· 括起来 ...PRIMARY KEY 主键,一般一个只有一个唯一的主键! CREATE TABLE I

    目标:创建一个school数据库
    创建学生表(列,字段) 使用SQL 创建
    学号 int 登录密码 varchar(20), 姓名,性别varchar(2)出生日期(dataime)家庭住址,Email

    注意点: 使用英文 () ,表的名称 和 字段 尽量使用 ·· 括起来
    AUTO_INCREMENT 代表自增
    字符串使用 单引号括起来!
    所有的语句后面加 ,(英文的) ,最好一个不用加
    PRIMARY KEY 主键,一般一个表只有一个唯一的主键!

    CREATE TABLE IF NOT EXISTS tehels(
    id INT (4) NOT NULL AUTO_INCREMENT COMMENT’学号’,
    name VARCHAR (30) NOT NULL DEFAULT ‘明明’ COMMENT ‘姓名’,
    pwd VARCHAR(20) NOT NULL DEFAULT ‘123456’ COMMENT ‘密码’,
    sex VARCHAR(2) NOT NULL DEFAULT ‘女’ COMMENT ‘性别’,
    birthday DATETIME DEFAULT NULL COMMENT ‘出生日期’,
    address VARCHAR (50) DEFAULT NULL COMMENT’家庭住址’,
    emil VARCHAR(20) DEFAULT NULL COMMENT’邮箱’,
    PRIMARY KEY (id)
    )ENGINE=INNODB DEFAULT CHARSET=utf8

    格式:
    1:CREATE TABLE [IF NOT EXISTS] 表明 (
    字段名 列类型 [属性] , [索引] ,[注释]
    字段名 列类型 [属性] , [索引] ,[注释]

    字段名 列类型 [属性] , [索引] ,[注释]
    )[表类型],[字符串设置],[注释]

    常用命令
    SHOW CREATE DATABASE school – 查看创建数据库的语句CREATE DATABASE school /*!40100 DEFAULT CHARACTER SET utf8 */
    SHOW CREATE TABLE student --查看student数据表的定义语句
    DESC student --显示表的结构

    数据表的类型:
    关于数据引擎
    /*

                                             MYISAM                                                     INNODB
    

    事务支持 不支持 支持
    数据行锁定 不支持 支持
    外键 不支持 支持
    全文索引 支持 不支持
    表空间大小 较小 较大,约2倍
    */
    常规使用操作:
    1 MYISAM 节约空间,速度较快
    2 INNODB 安全性高,事务的处理,多表多用户操作

    在物理空间处在的位置
    所有的数据库文件都存在data目录下一个文件夹就对应一个数据库
    本质还是文件的存储

    MySQL引擎在物理文件上的区别
    INNODB 在数据库表中只有一个*.frm 文件,以及上级目录下的 ibdata1 文件

    MYISAM 对应的文件
    *.frm - 表结构的定义文件
    *.MYD 数据文件 (data)
    *.MYI 索引文件(index)

    设置数据库表的字符集编码 : CHARSET=utf8
    不设置会是MySQL默认的字符集编码 (不支持中文!)

    在my.ini 中配置默认的编码 : character-srt-server=utf8

    展开全文
  • 数据库表与表之间通过主外键来建立联系。如果为表指定了主键约束, 数据库引擎将通过为主键列自动创建唯一索引来强制数据的唯一性;而外键是用于在两个表中的数据之间建立和加强链接的一列或多列的组合,可控制可...

    数据库表与表之间通过主外键来建立联系。如果为表指定了主键约束, 数据库引擎将通过为主键列自动创建唯一索引来强制数据的唯一性;而外键是用于在两个表中的数据之间建立和加强链接的一列或多列的组合,可控制可在外键表中存储的数据。

    324e8a4849177d749aef9ddaf0bd2a62.png

    本教程操作环境:windows7系统、mysql5.8版、Dell G3电脑。

    数据库表与表之间通过主外键来建立联系。

    主键约束

    表通常具有包含唯一标识表中每一行的值的一列或一组列。 这样的一列或多列称为表的主键 (PK),用于强制表的实体完整性。 由于主键约束可保证数据的唯一性,因此经常对标识列定义这种约束。

    如果为表指定了主键约束, 数据库引擎 将通过为主键列自动创建唯一索引来强制数据的唯一性。 当在查询中使用主键时,此索引还允许对数据进行快速访问。 如果对多列定义了主键约束,则一列中的值可能会重复,但来自主键约束定义中所有列的值的任何组合必须唯一。

    如下图所示, Purchasing.ProductVendor 表中的 ProductID 和 VendorID 列构成了针对此表的复合主键约束。 这确保了 ProductVendor 表中的每个行都具有 ProductID 和 VendorID 的一个唯一组合。 这样可以防止插入重复的行。

    ff055ba5295d231f96124dbbf6b63bbc.gif一个表只能包含一个主键约束。

    主键不能超过 16 列且总密钥长度不能超过 900 个字节。

    由主键约束生成的索引不会使表中的索引数超过 999 个非聚集索引和 1 个聚集索引。

    如果没有为主键约束指定聚集或非聚集索引,并且表中没有聚集索引,则使用聚集索引。

    在主键约束中定义的所有列都必须定义为不为 Null。 如果没有指定为 Null 性,则参与主键约束的所有列的为 Null 性都将设置为不为 Null。

    如果在 CLR 用户定义类型的列中定义主键,则该类型的实现必须支持二进制排序。

    外键约束

    外键 (FK) 是用于在两个表中的数据之间建立和加强链接的一列或多列的组合,可控制可在外键表中存储的数据。 在外键引用中,当包含一个表的主键值的一个或多个列被另一个表中的一个或多个列引用时,就在这两个表之间创建了链接。 这个列就成为第二个表的外键。

    例如,因为销售订单和销售人员之间存在一种逻辑关系,所以 Sales.SalesOrderHeader 表含有一个指向 Sales.SalesPerson 表的外键链接。 SalesOrderHeader 表中的 SalesPersonID 列与 SalesPerson 表中的主键列相对应。 SalesOrderHeader 表中的 SalesPersonID 列是指向 SalesPerson 表的外键。 通过创建此外键关系,如果 SalesPerson 表的主键中不存在 SalesPersonID 的值,则 SalesPersonID 的值将无法插入到 SalesOrderHeader 表。

    表最多可以将 253 个其他表和列作为外键引用(传出引用)。 SQL Server 2016 (13.x) 将可在单独的表中引用的其他表和列(传入引用)的数量限制从 253 提高至 10,000。 (兼容性级别至少必须为 130。)数量限制的提高带来了下列约束:只有 DELETE DML 操作才支持超过 253 个外键引用。 不支持 UPDATE 和 MERGE 操作。

    对自身进行外键引用的表仍只能进行 253 个外键引用。

    列存储索引、内存优化表、Stretch Database 或已分区外键表暂不支持进行超过 253 个外键引用。

    外键约束的索引

    与主键约束不同,创建外键约束不会自动创建对应的索引。 但是由于以下原因,对外键手动创建索引通常是有用的:当在查询中组合相关表中的数据时,经常在联接条件中使用外键列,方法是将一个表的外键约束中的一列或多列与另一个表中的主键列或唯一键列匹配。 索引使 数据库引擎 可以在外键表中快速查找相关数据。 但是,创建此索引并不是必需的。 即使没有对两个相关表定义主键或外键约束,也可以对来自这两个表中的数据进行组合,但两个表间的外键关系说明已用其键作为条件对其进行了优化,以便组合到查询中。

    对主键约束的更改可由相关表中的外键约束检查。

    更多编程相关知识,请访问:编程视频!!

    展开全文
  • 先查看下已经创建好的,若不会创建请看上期视频!!为message:mysql> show columns from message;// 命令+-----------+--------------+------+-----+---------+-------+| Field | Type | Null | Key | ...

    先查看下已经创建好的表,若不会创建请看上期视频!!

    为message表:

    mysql> show columns from message;// 命令

    +-----------+--------------+------+-----+---------+-------+

    | Field | Type | Null | Key | Default | Extra |

    +-----------+--------------+------+-----+---------+-------+

    | m_id | int(11) | YES | | NULL | |

    | m_name | varchar(60) | YES | | NULL | |

    | m_sex | varchar(16) | YES | | NULL | |

    | m_brith | date | YES | | NULL | |

    | m_address | varchar(250) | YES | | NULL | |

    +-----------+--------------+------+-----+---------+-------+

    可以看到表中字段没有加约束条件,下来我们来加一下吧!

    1.给m_id字段加主键约束primary key条件!

    mysql> alter table message add primary key(m_id);//命令

    Query OK, 0 rows affected (0.99 sec)//出现这,表示已成功!

    下来来看下表的结构吧!

    mysql> show columns from message;//命令

    +-----------+--------------+------+-----+---------+-------+

    | Field | Type | Null | Key | Default | Extra |

    +-----------+--------------+------+-----+---------+-------+

    | m_id | int(11) | NO | PRI | NULL | |

    | m_name | varchar(60) | YES | | NULL | |

    | m_sex | varchar(16) | YES | | NULL | |

    | m_brith | date | YES | | NULL | |

    | m_address | varchar(250) | YES | | NULL | |

    +-----------+--------------+------+-----+---------+-------+

    可以看到主键加入成功!

    2.给m_id字段加自动编号auto_increment

    mysql> alter table message modify m_id int auto_increment;//命令

    Query OK, 0 rows affected (1.19 sec)//自动编号加入成功!

    同样来看下表的结构吧!

    mysql> show columns from message;//命令

    +-----------+--------------+------+-----+---------+----------------+

    | Field | Type | Null | Key | Default | Extra |

    +-----------+--------------+------+-----+---------+----------------+

    | m_id | int(11) | NO | PRI | NULL | auto_increment |

    | m_name | varchar(60) | YES | | NULL | |

    | m_sex | varchar(16) | YES | | NULL | |

    | m_brith | date | YES | | NULL | |

    | m_address | varchar(250) | YES | | NULL | |

    +-----------+--------------+------+-----+---------+------------

    可以看到自动编号加入成功!

    3.给表m_name字段加唯一约束unique

    alter table message add unique(m_name);//命令

    Query OK, 0 rows affected (0.66 sec)//表示成功!

    下来看一下表的结构吧!

    mysql> show columns from message;//命令

    +-----------+--------------+------+-----+---------+----------------+

    | Field | Type | Null | Key | Default | Extra |

    +-----------+--------------+------+-----+---------+----------------+

    | m_id | int(11) | NO | PRI | NULL | auto_increment |

    | m_name | varchar(60) | YES | UNI | NULL | |

    | m_sex | varchar(16) | YES | | NULL | |

    | m_brith | date | YES | | NULL | |

    | m_address | varchar(250) | YES | | NULL | |

    +-----------+--------------+------+-----+---------+----------------+

    5 rows in set (0.00 sec)

    可以看到加入成功!

    4.给表m_sex加非空约束not null

    mysql> alter table message modify m_sex varchar(16) not null;//命令

    Query OK, 0 rows affected (1.01 sec)//成功!

    查看下表的结构

    mysql> show columns from message;//命令

    +-----------+--------------+------+-----+---------+----------------+

    | Field | Type | Null | Key | Default | Extra |

    +-----------+--------------+------+-----+---------+----------------+

    | m_id | int(11) | NO | PRI | NULL | auto_increment |

    | m_name | varchar(60) | YES | UNI | NULL | |

    | m_sex | varchar(16) | NO | | NULL | |

    | m_brith | date | YES | | NULL | |

    | m_address | varchar(250) | YES | | NULL | |

    +-----------+--------------+------+-----+---------+----------------+

    5.给表m_sex加默认约束default,默认为女吧!!

    mysql> alter table message modify m_sex varchar(16) default '女';//命令

    Query OK, 0 rows affected (0.47 sec)//成功!

    查看下表的结构!

    mysql> show columns from message;//命令

    +-----------+--------------+------+-----+---------+----------------+

    | Field | Type | Null | Key | Default | Extra |

    +-----------+--------------+------+-----+---------+----------------+

    | m_id | int(11) | NO | PRI | NULL | auto_increment |

    | m_name | varchar(60) | YES | UNI | NULL | |

    | m_sex | varchar(16) | YES | | 女 | |

    | m_brith | date | YES | | NULL | |

    | m_address | varchar(250) | YES | | NULL | |

    +-----------+--------------+------+-----+---------+----------------+

    可以看到加入成功!

    6.给表m_id 加检查约束check

    mysql> alter table message add constraint m_id check(m_id>10);//命令

    Query OK, 0 rows affected (0.62 sec)//成功

    查看下表的结构!

    mysql> show columns from message;//命令

    +-----------+--------------+------+-----+---------+----------------+

    | Field | Type | Null | Key | Default | Extra |

    +-----------+--------------+------+-----+---------+----------------+

    | m_id | int(11) | NO | PRI | NULL | auto_increment |

    | m_name | varchar(60) | YES | UNI | NULL | |

    | m_sex | varchar(16) | YES | | 女 | |

    | m_brith | date | YES | | NULL | |

    | m_address | varchar(250) | YES | | NULL | |

    +-----------+--------------+------+-----+---------+----------------+

    5 rows in set (0.00 sec)

    咱们下期来说外键约束吧,

    关注我持续为你更新!!

    标签:约束条件,varchar,给表加,mysql,id,MYSQL,YES,NULL,message

    来源: https://blog.csdn.net/xue3236522091/article/details/105806308

    展开全文
  • @[toc](MySQL数据库唯一性设置(unique index)) 在数据库设计中设置主键的字段是不会重复的、唯一的,如果有其他字段也需要保持唯一性应该如何设置呢?比如一个保存用户信息的表里要保证每条记录的手机号都不同。这...
  • 问题描述:使用JPA创建,在实体类上如下注解,在mysql中创建并创建唯一约束条件,但是在Oracle中创建唯一约束条件却创建不了。 @Table(name="ABCD_ORGMAP", uniqueConstraints = { @...
  • 2-数据库学习-约束、查询、存储过程 procedure、触发器 Trigger、函数、数据库的权限、数据库表设计 1.约束 作用: 为了保证数据的有效性和完整性 mysql中常用的约束: 主键约束(primary key) 自增长约束 ...
  • -- PRIMARY KEY 主键,一般一个只有一个唯一的主键 CREATE TABLE IF NOT EXISTS `student`( `id` INT(4) NOT NULL AUTO_INCREMENT COMMENT '学号', `name` VARCHAR(30) NOT NULL DEFAULT '匿名.
  • Res_idcard Varchar(19) not null, --身份证号 唯一索引 只有18位数字或18位数字X Res_sex bit not null, --性别 默认1 男 只有男和女两种 Res_bornDate datetime not null, --出生年月 Res_nativeplace ...
  • 查看索引 show index from 数据库表名alter table 数据库add index 索引名称(数据库字段名称)PRIMARY KEY(主键索引)ALTER TABLE `table_name` ADD PRIMARY KEY ( `column` )UNIQUE(唯一索引)ALTER TABLE `table_name...
  • Android Sqlite数据库联合查询

    千次阅读 2018-06-11 00:41:36
    工作上用数据库存储文件还是很便利的,所以有时候发现一张存储数据感觉数据结构不是很清晰的时候,就需要新第二张表或者多张表来进行联合查询对象信,一般是用键将彼此联系起来,在中,每个主键的值都是唯一的...
  • 一对多一对多,两张表,多的表加外键多对多多对多,三张表,关系表两个外键表删除数据先删除子表(外键),再删除父表(主键) 视频 https://www.bilibili.com/video/BV1Vy4y1z7EX?p=130 表设计 一对一 一对一,外键...
  • 创建数据库

    2021-04-12 11:14:15
    CREATE DATABASE IF NOT EXISTS school ...-- primary key 主键,一般一个只有一个唯一的主键 CREATE TABLE IF NOT EXISTS ‘student‘( ‘id‘ INT(4) NOT NULL AUTO_INCREMENT COMMENT '学号', ‘name
  • 这个关系想得到唯一的数据,只能pid,uid和time作为联合主键 那么画er图的时候,收藏关系画好之后,time属性下横线?或者应该怎么画这个关系? 或者把收藏变成一个实体集,然后两个关系把图片...
  • 数据库

    2020-10-13 10:51:50
    主关键字(primary key ): 是中的一个或多个字段,它的值用于唯一地标识中的某一条记录。 外关键字(foreign key) : 是用于建立或加强两个数据之间的链接的一列或多列。 如果公共关键字在一个关系中是主关键字,...
  • 外键:引用另一个中的一列或多列,被引用的列应有主键约束,或者唯一性约束。外键用于加强两个之间的链接。(表示之间的参照关系,使数据库帮助维护种关系,这种键就是之间的外键。若在后续增删改...
  •  什么是外键:外键是指引用另一个中的一列或多列,被引用的列应具有主键约束或唯一性约束。外键用于建立和加强两个数据之间的连接。 Student中的gid是学生所在班级id,是引入了grade中的主键id。那么gid就...
  • 问题导读: 一、自由查询形式导入  Sqoop还支持将任意的查询结果集导入,不使用--...如果使用where子句, 后面还必须个$CONDITIONS,使Sqoop进程替代为一个唯一的条件表达式达到条件查询效果。如下: [hadoopUse
  • 目 录04-如何创建 数据库、数据?0、MySQL注释的3种写法(-- ...、#...、/*...*/)“-- ” 这种注释后面,要一个空格!!! 1、如何在数据库服务器中创建自己的数据库? (create database 数据库名;)create ...
  • 建表同时四个约束 create table test_name ( number char(10) not null, name char(20) not null, sex char(2) constraint def_cst default '男', //默认约束 phone char(11) constraint uq_cst unique, //...
  • 数据库资料

    2018-04-01 22:00:33
    SQL Server中存在五种约束,分别是:主键约束、外键约束、检查约束、默认约束和唯一性约束(唯一性约束将在后续课程中使用SQL语句实现)总结创建数据库表需要:确定表的列名、数据类型、是否允许为空,还需要确定...
  • 数据库索引

    2018-09-24 11:42:32
    数据库索引:是数据库管理系统中一个排序的数据结构,以协助快速查询、更新数据库表中数据。索引的实现通常使用B树及其变种B+树。...(1)通过创建唯一性索引,可以保证数据库表中每一行数据的唯一性。 (2)...
  •  关系:一对多:多端外键,一端主键  多对多:添加一个关系,变为一对多的关系  一对一:外键唯一  E-R图:实体-->  属性-->列  元组-->行  主键列:唯一仅有的  外键列:用来约束主键列关联项的...
  • − 外键是指引用另一个中的一列或多列,被引用的列应该具有主键约束或唯一性约束。 − 外键用于建立和加强两个数据之间的链接。 使用外键的目的:保证数据的完整性。 注意事项: 从外键不能添加主...
  • --PRIMARY KEY 主键一般一个是由唯一的一个主键 CREATE TABLE IF NOT EXISTS `student`( `id` INT(4) NOT NULL AUTO_INCREMENT COMMENT '学号', `name` VARCHAR(30) NOT NULL DEFAULT '匿名' COMMENT '姓
  • mysql数据库在高并发场景下重复插入如何保证唯一性解决方案高并发场景简单粗暴前后端都做防重复操作mysql表加唯一索引使用redis缓存 高并发场景 在高并发场景中,经常会遇到并发重复数据插入,没有唯一索引(比如有...
  • 数据库中字段适合添加索引的有中某个字段值离散度越高越适合,占用存储空间少的字段,存储空间固定的字段,where子句中经常用到的字段等1、的某个字段值得离散度越高,该字段越适合选作索引的关键字。...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 722
精华内容 288
关键字:

数据库表加唯一