每张表都有一个什么索引,并且只有一个,一般都是在创建表时,为表创建主键时自主创建?

每张表都有一个什么索引,并且只有一个,一般都是在创建表时,为表创建主键时自主创建?,第1张

在MySQL数据库中,每张表都有一个主键,它是一种特殊的索引,用于唯一标识表中的每一行数据。通常,在创建表时,您会为表创建主键,并设置为自动递增,这样就能为每一行数据分配一个唯一的标识符。

主键不仅能用于唯一标识表中的每一行数据,还能提高查询效率。当你执行一条查询语句时,MySQL会使用主键索引来快速查找数据,从而提高查询效率。

除了主键,MySQL还支持其他类型的索引,包括普通索引、唯一索引和全文索引。普通索引用于提高查询效率,唯一索引用于保证表中每一行数据的唯一性,全文索引用于全文搜索。

索引主要用于提高查询效率,它能帮助MySQL快速查找数据,避免扫描整张表。使用索引时,需要注意,索引会增加表的大小,同时也会增加插入、更新和删除 *** 作的时间,因此需要合理使用索引。

1.主键语法

①创建时:create table sc (

studentnoint,

courseidint,

scoreint,

primary key (studentno) )

②修改时:ALTER TABLE table_name ADD CONSTRAINT pk_name PRIMARY KEY(列名)

前提是原先没有设置主键。

2.外键语法

①创建时:create table sc (

studentnoint,

courseidint,

scoreint,

foreign key (courseid) )

②修改时:

ALTER TABLE news_info[子表名] ADD CONSTRAINT FK_news_info_news_type[约束名] FOREIGN KEY (info_id)[子表列] REFERENCES news_type[主表名] (id)[主表列]

3.使用组合主键

如果一列不能唯一区分一个表里的记录时,可以考虑多个列组合起来达到区分表记录的唯一性,形式

①创建时:create table sc (

studentnoint,

courseidint,

scoreint,

primary key (studentno,courseid) )

②修改时:alter table tb_name add primary key (字段1,字段2,字段3)

前提是原来表中没有设置主键,若原先已有主键则会报错。

mysql设置UUID为主键需要先将数据类型设置为VARCHAR(36),然后插入数据的时候用UUID函数插入UUID。下面我用win10系统下的CMD命令行具体演示一下:

1、打开CMD,输入mysql -uroot -p命令连接mysql,如下图所示

2、通过create创建表,指定ID为varchar(36),并设置为主键,如下图所示

3、在插入数据的时候,调用uuid()函数往主键字段里插入uuid值,如下图所示

4、最后查询插入的数据就可以看到id主键列存放的是uuid类型了,如下图所示


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9976977.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-03
下一篇 2023-05-03

发表评论

登录后才能评论

评论列表(0条)

保存