精华内容
下载资源
问答
  • mysql一个表可以创建多个唯一索引

    千次阅读 2018-09-06 11:44:00
    可以多个 唯一索引 的。 如果能确定某个数据列将只包含彼此各不相同的值,在为这个数据列创建索引的时候就应该用关键字UNIQUE把它定义为一个 唯一索引 。 转载于:...

    mysql一个表是可以有多个唯一索引的。

    如果能确定某个数据列将只包含彼此各不相同的值,在为这个数据列创建索引的时候就应该用关键字UNIQUE把它定义为一个唯一索引

    转载于:https://my.oschina.net/zjllovecode/blog/1973479

    展开全文
  • 发现mysql一个表可以有几个唯一索引

    万次阅读 2018-04-26 09:07:44
    mysql一个表可以多个唯一索引。如果能确定某个数据列将只包含彼此各不相同的值,在为这个数据列创建索引的时候就应该用关键字UNIQUE把它定义为一个唯一索引。这么做的好处:一是简化了MySQL对这个索引的管理工作,...

    mysql一个表可以有多个唯一索引

    如果能确定某个数据列将只包含彼此各不相同的值,在为这个数据列创建索引的时候就应该用关键字UNIQUE把它定义为一个唯一索引

    这么做的好处:

    一是简化了MySQL对这个索引的管理工作,这个索引也因此而变得更有效率。

    二是MySQL会在有新记录插入数据表时,自动检查新记录的这个字段的值是否已经在某个记录的这个字段里出现过了;如果是,MySQL将拒绝插入那条新记录。

    也就是说,唯一索引可以保证数据记录的唯一性。事实上,在许多场合,人们创建唯一索引的目的往往不是为了提高访问速度,而只是为了避免数据出现重复。

    展开全文
  • MySQL创建数据库和创建数据

    万次阅读 多人点赞 2019-10-20 23:44:40
    MySQL 创建数据库和创建数据 MySQL 是最常用的数据库,在数据库操作中,基本都是增删改查操作,简称CRUD。 在这之前,需要先安装好 MySQL ,然后创建好数据库、数据、操作用户。 、数据库操作语言 数据库...

    MySQL 创建数据库和创建数据表

    MySQL 是最常用的数据库,在数据库操作中,基本都是增删改查操作,简称CRUD。

    在这之前,需要先安装好 MySQL ,然后创建好数据库、数据表、操作用户。

    一、数据库操作语言

    数据库在操作时,需要使用专门的数据库操作规则和语法,这个语法就是 SQL(Structured Query Language) 结构化查询语言。

    SQL 的主要功能是和数据库建立连接,进行增删改查的操作。SQL是关系型数据库管理系统的标准语言。

    SQL 语言的作用:

    1. 数据定义语言 DDL(Data Definition Language) 。用于创建数据库,数据表。

    2. 数据操作语言 DML(Data Manipulation Language) 。用于从数据表中插入、修改、删除数据。

    3. 数据查询语言 DQL(Data Query Language) 。用于从数据表中查询数据。

    4. 数据控制语言 DCL(Data Control Language) 。用来设置或修改数据库用户或角色的权限。

    使用 SQL 操作数据库时,所有的 SQL 语句都以分号结束。(切换数据库时可以不用分号)

    在 SQL 语句中,不区分大小写,编写 SQL 语句时可以根据情况用大小写的区别来增加可读性。

    二、创建数据库

    1. 连接 MySQL

    输入 mysql -u root -p 命令,回车,然后输入 MySQL 的密码(不要忘记了密码),再回车,就连接上 MySQL 了。

    mysql -u root -p

    最初,都是使用 root 用户登录,工作中如果一直用 root 用户登录,因为权限太大,风险是很大的,所以等创建好权限适合的用户后,就不要经常登录 root 用户了。

    2. 查看当前的数据库

    使用 show databases; 查看当前安装的 MySQL 中有哪些数据库。

    show databases;

    刚安装 MySQL 时,默认有四个数据库,information_schema,mysql,perfomance_schema,sys 。通常情况下,我们不会直接使用这四个数据库,但千万不要把这四个数据库删了,否则会带来很多不必要的麻烦。如果不小心删了,建议是重新安装 MySQL ,在重装之前把自己的数据迁移出来备份好,或者从其他服务器上迁移一个相同的数据库过来。

    3. 创建数据库

    使用 create database 数据库名; 创建数据库。

    create database MyDB_one;

    创建数据库成功后,数据库的数量变成了5个,多了刚才创建的 MyDB_one 。

    4. 创建数据库时设置字符编码

    使用 create database 数据库名 character set utf8; 创建数据库并设置数据库的字符编码。

    create database MyDB_two character set utf8;
    

    直接创建的数据库,数据库的编码方式是 MySQL 默认的编码方式 latin1 (单字节编码) ,通常我们会在数据库中存放中文数据,所以最好把数据库的编码方式设置成 utf-8 ,这样中文才能正常显示。

    create database MyDB_three charset utf8;

    character set 可以缩写成 charset ,效果是一样的。

    5. 查看和显示数据库的编码方式

    使用 show create database 数据库名; 显示数据库的创建信息。

    show create database MyDB_one;
    show create database MyDB_two;

    如果不知道一个数据库的编码方式是什么,可以使用 show create database 数据库名 来查看数据库的编码方式。可以看到刚才创建的 MyDB_one 的编码方式是 MySQL 的默认编码 latin1 ,MyDB_two 的编码方式是 utf-8 。

    当然,这种方式不能在创建的同时显示,只能查看一个已经存在的数据库的编码方式。

    6. 使用 alter database 数据库名 character set utf8; 修改数据库编码

    alter database MyDB_one character set utf8;

    如果一个数据库的编码方式不符合使用需求,可以进行修改。刚才创建的 MyDB_one 经过修改后,编码方式也变成了 utf-8 。

    7. 进入或切换数据库

    使用 use 数据库名 进入或切换数据库。

    use MyDB_one
    use MyDB_two;

    刚连接上 MySQL 时,没有处于任何一个数据库中,如果要使用某一个数据库,就需要进入到这个数据库中。

    use 数据库名 这个命令后面的分号可以省略,这是 SQL 语句中唯一可以省略分号的语句。

    8. 显示当前数据库 select database();

    select database();

    进入数据库中,可以使用 select database(); 来查看当前处于哪个数据库中。长时间操作数据库时,在很多数据库中来回切换后,查看当前的数据库,避免操作错了数据库。

    三、创建数据表

    1. 查看当前数据库中的表

    使用 show tables;查看当前数据库中有哪些表。

    show tables;
    

    在刚才创建的数据库 MyDB_one 中,还没有创建任何表,所以当前是空的。

    2. 创建表

    使用 create table 表名(字段1 字段类型,字段2 字段类型,字段3 字段类型,…); 来创建一张表。

    create table Phone_table(pid INT, name CHAR(20), price INT);

    在 MyDB_one 中创建了一个叫 Phone_table 的数据表,这张表有三个字段 pid,name,price 。为了增加 SQL 的可读性,字段名我用的是小写,字段类型用大写。

    3. 显示表信息

    用 show create table 表名; 来显示已创建的表的信息。

    show create table Phone_table;

    使用 show create table 表名;  可以显示表的字段信息, MySQL 的引擎,和默认的字符编码等信息。与显示数据库信息一样,show 只能显示已经创建了的数据表的信息,不能在创建的同时显示信息。

    如果想更好地展示表的字段信息,可以使用 desc 表名; 来显示表的字段信息。

    4. 给表增加字段

    使用 alter table 表名 add 字段名 数据类型; 为已存在的表添加一个新字段。

    alter table Phone_table add color CHAR(20);

    添加后,刚才的表中多了一个字段,新增成功。

    5. 删除表的字段

    使用 alter table 表名 drop 字段名; 删除一个表中已存在的字段。

    alter table Phone_table drop price;

    删除字段后,表中不再有该字段。

    6. 修改字段的数据类型

    使用 alter table 表名 modify 字段名 数据类型; 修改表中现有字段的数据类型。

    alter table Phone_table modify name VARCHAR(12);

    修改之后,该字段的数据类型发生改变。

    7. 修改字段的数据类型并且改名

    使用 alter table 表名 change 原字段名 新字段名 数据类型; 修改表中现有字段的字段名和类型。

    alter table Phone_table change name pname CHAR(18);

    现在,将表的 name 改成了 pname ,同时修改了 pname 的数据类型。

    四、MySQL 常用字段类型

    一个数据表是由若干个字段组成的,一个表十几个字段也很正常,每个字段表示不同的信息,需要使用不同类型的数据。

    所以在创建表的时候,要为每个字段指定适合的数据类型。

    MySQL 中常用的字段类型有以下这些:

    1. 整数类型

    数据类型数据范围
    TINYINT-128 -- 127
    SMALLINT-32768 -- 32767
    MEDIUMINT-2^23 -- 2^23-1
    INT-2^31 -- 2^31-1
    BIGINT-2^63 -- 2^63-1

    2. 字符串类型

    数据类型字节范围用途
    CHAR(n)0 -- 255字节定长字符串
    VARCHAR(n)0 -- 65535字节变长字符串
    TEXT0 -- 65535字节长文本数据
    LONGTEXT0 -- 2^32-1字节极大文本数据
    BLOB0 -- 65535字节二进制长文本数据
    LONGBLOB0 -- 2^32-1字节二进制极大文本数据

    3. 小数类型

    m 表示浮点数的总长度,n 表示小数点后有效位数。

    数据类型数据用法数据范围
    FloatFloat(m,n)7位有效数
    DoubleDouble(m,n)15位有效数
    DecimalDecimal(m,n)28位有效数

    4. 时间类型

    数据类型格式用途
    DATEYYYY-MM-DD日期
    TIMEHH:MM:SS时间
    YEARYYYY年份
    DATETIMEYYYY-MM-DD HH:MM:SS日期和时间
    TIMESTAMP10位或13位整数(秒数)时间戳

    5. 枚举类型

    enum(枚举值1,枚举值2,...)

    枚举类型只能在列出的值中选择一个,如性别。

     

     

    展开全文
  • 有时候我们业务情景需要字段组合唯一性,这里举例 Navicat 设置,如图所示。 Ps:但我们一般企业级开发,不推荐用物理约束死,推荐用逻辑来判断。 ...

    有时候我们业务情景需要多字段组合唯一性,这里举例 Navicat 设置,如图所示。

    Ps:但我们一般企业级开发,不推荐用物理约束死,推荐用逻辑来判断。

    展开全文
  • 在操作mysql数据库的时候 怎么同时给多个列各自添加一个唯一索引,注意不是添加多列索引,而是同时给多列各自添加一个唯一索引 用命令行来操作
  • 1、概念 1)、查看索引 show index from 数据库表名 2)、alter table 数据库 add index 索引名称(数据库表字段名称) 2、索引类型: 1)、PRIMARY KEY(主键索引...2)、UNIQUE(唯一索引) ALTER TABLE table...
  • 创建 唯一索引和非唯一索引

    千次阅读 2018-05-10 18:51:16
    2017年09月16日 13:03:10阅读数:2718 步骤如下:创建唯一索引:1、打开navicat premium ,打开准备创建索引的数据库的查询编辑器;2、输入命令:CREATE UNIQUE INDEX 索引名 on 表名(想要创建索引的列名) ...
  •  (每个表可以多个 UNIQUE 约束,但是每个只能有一个 PRIMARY KEY 约束) foreign key 也有两个作用,一是约束作用(constraint),规范数据的引用完整性,但同时也在这个key上建立了一个index; ...
  • 开发中有一张用户tb_device_user , 用来记录设备上的用户名和密码,由于底层设备的用户ID使用的是自增整数,而且是在各自的设备中保持唯一,通信时候服务器下发token到设备,作为全局唯一的设备识别码,因此至少两...
  • oracle中多个字段组成唯一索引约束

    千次阅读 2018-11-26 18:59:02
    已经验证!!!欢迎相互学习交流 --原来EXPENSE_ITEM_CODE, EXPENSE_TYPE_CODE, EXP_REPORT_TYPE_CODE这三唯一索引...注意事项(报错dupplicate keys found,若中要创建唯一索引约束的四字段在数据库该...
  • 使用 SQL Server 创建唯一索引

    千次阅读 2020-07-01 15:43:01
    使用设计器创建唯一索引 在“对象资源管理器”中,展开包含您要创建唯一索引的数据库。 展开“”文件夹。 右键单击你要创建唯一索引,然后选择“设计” 。 在“设计器” 菜单上,...
  • 今天正在吃饭,一个朋友提出了一个他面试中遇到的问题,MySQL允许在唯一索引字段中添加多个NULL值。 这个问题对于我一个非专业DBA来说,也没特地去验证过,所以正好借此机会验证一下,做个记录: 测试环境: ...
  • SQLServer之创建唯一聚集索引

    千次阅读 2018-09-18 23:48:28
    创建 PRIMARY KEY 约束时,如果不存在该的聚集索引且未指定唯一非聚集索引,则将自动对列或创建唯一聚集索引。 主键列不允许空值。 在创建 UNIQUE 约束时,默认情况下将创建唯一非聚集索引,以便强制 ...
  •  最近在一次面试中,讨论了一个这样的问题:主键和索引有什么区别?当时我的回答是这样的:“主键就是加了唯一性约束的聚集索引。” “你确定你所说的是对的?” 面试官反问到。 “应该是对的。” 我不加思索地回答...
  • mysql 给添加一个联合唯一索引

    千次阅读 2016-09-01 00:46:58
    项目中需要用到联合唯一索引...例如:user中有userID,userName两个字段,如果不希望有2条一模一样的记录,需要给user添加多个字段的联合唯一索引: alter table user add nuique index(user_id,user_name); 例如:
  • mysql中unique创建唯一索引

    万次阅读 2018-06-24 21:30:19
    情况下我们都会要求某些字段不可重复,如用户名、手机号等,我们可以在MySQL数据中设置指定的字段为 PRIMARY KEY(主键) 或者 UNIQUE(唯一...本人也目前也是小白一个,在网上查得有人建表时这样添加唯一索引...
  • SQLServer之创建唯一非聚集索引

    万次阅读 2018-09-19 16:16:16
    创建 PRIMARY KEY 约束时,如果不存在该的聚集索引且未指定唯一非聚集索引,则将自动对列或创建唯一聚集索引。 主键列不允许空值。 在创建 UNIQUE 约束时,默认情况下将创建唯一非聚集索引,以便强制 ...
  • 索引

    千次阅读 多人点赞 2018-09-07 23:27:20
    索引是一种对数据库中一列或列的值进行排序的一种数据存储结构。 需要占用磁盘空间。 类型:普通索引,唯一索引,主键索引,复合索引,聚族索引。...复合索引遵循最左原则,即创建复合索引时的第一个字段。...
  • MySQL——在创建数据创建索引

    万次阅读 2018-05-15 18:53:58
     在建立数据创建索引 在创建数据创建索引的基本语法结构: CREATE TABLE table_name( 属性名 数据类型[约束条件], …… 属性名 数据类型 [UNIQUE | FULLTEXT | SPATIAL ] INDEX | KEY ...
  • 数据库索引

    千次阅读 多人点赞 2019-08-20 22:49:54
    索引是对数据库列或列的值进行排序的种结构,使用索引可快速访问数据库中的特定信息。数据库索引好比是本书前面的目录,能加快数据库的查询速度。索引分为聚簇索引和非聚簇索引两种,聚簇索引是按照...
  • 如果在一个列上同时建唯一索引和普通索引的话,mysql会自动选择唯一索引。 -- 创建唯一索引 CREATE UNIQUE INDEX uk_users_name ON t_users(name); uk_users_name:自由定义的唯一索引名称 t_users:表格名称 name...
  • mysql唯一索引创建

    千次阅读 2016-08-09 11:20:20
    1.建表时加上唯一性约束   CREATE TABLE `t_user` ( `Id` int(11) NOT NULL AUTO_INCREMENT, `username` varchar(18) NOT NULL unique, `password` varchar(18) NOT NULL, PRIMARY KEY (`Id`) www.2cto.com ...
  • mysql字段唯一索引

    千次阅读 2018-07-27 16:58:00
    项目中需要用到联合...例如:user中有userID,userName两个字段,如果不希望有2条一模一样的记录,需要给user添加多个字段的联合唯一索引: alter table user add nuique index(user_id,user_name); 例如: alte...
  • MySQL如何添加唯一索引

    千次阅读 2020-06-29 08:25:36
    需求:在medicine中,将 id 设置为 主键, 为 药品名 和 药品编号 字段 添加 唯一索引。 ALTER TABLE medicine ADD UNIQUE unique_name (`药品名`,`药品编号`); 代码说明:medicine为表名; unique_name为...
  • Oracle分区及分区索引创建

    万次阅读 多人点赞 2018-07-08 11:21:22
    关于分区和分区索引(About Partitioned Tables and Indexes)对于10gR2而言,基本上可以分成几类:• Range(范围)分区• Hash(哈希)分区• List(列表)分区• 以及组合分区:Range-Hash,Range-List。 对于而...
  • 别踩坑!使用MySQL唯一索引请注意

    万次阅读 多人点赞 2019-01-28 21:33:14
    背景 在程序设计中了,我们往往需要...但是我们不能确保同时有两个人使用同一个手机号注册到我们的系统中,因此这里就需要在更深的层次去确保手机号的唯一性了。不同存储方案,解决方式不一样,这里以MySQL为例,我...
  • MySQL创建表的时候创建索引

    万次阅读 2018-04-08 11:31:29
    )[-]创建的时候创建索引创建普通索引创建唯一索引创建全文索引创建单列索引创建多索引创建空间索引要想使用索引提高数据的访问速度,首先,需要创建一个索引,创建索引的方式,有三种。创建的时候,创建...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 312,840
精华内容 125,136
关键字:

一个表可以创建多个唯一索引