创建MySQL表时PRIMARY,UNIQUE,INDEX和FULLTEXT之间有什么区别?
我该如何使用它们?
我有一个我想要独特的电子邮件专栏.但我也希望它接受空值.我的数据库可以通过这种方式发送2封空邮件吗?
我知道如何使用INDEX,如下面的代码.我知道如何使用外键和主键.
CREATE TABLE tasks (
task_id INT UNSIGNED NOT NULL AUTO_INCREMENT,
parent_id INT UNSIGNED NOT NULL DEFAULT 0,
task VARCHAR(100) NOT NULL,
date_added TIMESTAMP NOT NULL,
date_completed TIMESTAMP,
PRIMARY KEY (task_id),
INDEX parent (parent_id),
....
Run Code Online (Sandbox Code Playgroud)
但是我发现使用KEY而不是INDEX的代码如下.
...
KEY order_date (order_date)
...
Run Code Online (Sandbox Code Playgroud)
我无法在MySQL官方页面中找到任何文档.
谁能告诉我KEY和INDEX之间有什么区别?我可以看到的不同之处在于,当我使用KEY ...时,我需要重复这个词,例如KEY order_date(order_date).
我有一个序列号.列是自动增量,但我想要注册ID.成为主键,MySQL只是不允许我这样做.有没有办法做到这一点?
抱歉新手问题。我用以下方式定义了一个表
CREATE TABLE `class1` (
`name` varchar(20) NOT NULL,
`familyname` varchar(20) NOT NULL,
`id` int(11) DEFAULT NULL,
KEY `class1` (`name`,`familyname`));
Run Code Online (Sandbox Code Playgroud)
你能解释一下这里有什么区别吗?我这里有一个名字和姓氏作为关键。
我必须在表中输入值并运行查询,但我无法理解它给了我什么?如果我没有将姓名定义为键,我会得到相同的结果。
INSERT INTO ON DUPLICATE KEY UPDATE和UPDATE之间是否存在性能差异?
如果我知道可以更新的值 - 我应该使用UPDATE还是真的不重要?
我正在学习Mysql,并且正在创建数据库。因此,在查看了几个网站之后,主键的定义为:
PRIMARY KEY约束唯一地标识数据库表中的每个记录。
和这样使用:
CREATE TABLE Persons
(
P_Id int NOT NULL,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255),
PRIMARY KEY (P_Id) //primary key is on this line
)
Run Code Online (Sandbox Code Playgroud)
但是,我仍然不知道它的用途以及我们为什么需要它。所以我的问题是。
有人可以向我解释一下主键是什么(用基本的英语),为什么我们需要一个主键,它的作用是什么?
谢谢。