Dieser Artikel zeigt Ihnen hauptsächlich detaillierte Beispiele für den Betrieb von MySQL-Datentabellen. Schauen wir uns zunächst an, wie Sie eine Datentabelle erstellen.
Grundlegende Syntaxform:
create table 【if not exists】 表名 (字段列表 【,索引或约束列表】) 【表选项列表】;
Feldeinstellungsformat:
Feldname Typ [Feldattribut 1 Feldattribut 2 …..]
Anweisungen:
1. Sie können den Feldnamen selbst wählen
2. Der Typ ist der zuvor gelernte Datentyp: int, tinyint, float, double, char(6), varchar(25), text , Datum/Uhrzeit.
3. Es können mehrere Feldattribute vorhanden sein (je nach spezifischen Anforderungen), die direkt durch Leerzeichen getrennt sind:
属性名称 | 含义 |
---|---|
auto_increment: | 只用于整数类型,让该字段的值自动获得一个增长值。通常用于做一个表的第一个字段的设定,并且通常还当做主键(primary key) |
primary key: | 用于设定该字段为主键,此时该字段的值就可以“唯一确定”一行数据 |
unique key: | 设定该字段是“唯一的”,也就是不重复的。 |
not null: | 用于设定该字段不能为空(null),如果没有设定,则默认是可为空的。 |
comment : | 字段说明文字 |
Der Index ist eine versteckte „Datentabelle“, die automatisch im System verwaltet wird. Seine Funktion besteht darin, die Datensuche erheblich zu beschleunigen!
Die Daten in dieser versteckten Datentabelle werden automatisch sortiert und die Suchgeschwindigkeit basiert darauf.
Die Form ist:
索引类型(要建立索引的字段名)
Indextyp | Form | Bedeutung | ||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Gewöhnlicher Index | Schlüssel (Feldname) | ist a Es ist nur ein Index. Es hat keine andere Wirkung. Es kann nur die Suche beschleunigen. | ||||||||||||||||||
Eindeutiger Index | Eindeutiger Schlüssel (Feldname) | Es ist ein Index, und Sie können den Wert seines Felds auch so einstellen, dass er nicht wiederholt wird (Eindeutigkeit) | ||||||||||||||||||
Primärschlüsselindex | Primärschlüssel (Feldname)ist ein Index und hat auch die Funktion, jede Datenzeile in der Tabelle zu unterscheiden (tatsächlich ist er auch eindeutig). Es hat tatsächlich etwas mehr Funktionen als der eindeutige Index: Die Eindeutigkeit kann leer sein, aber der Primärschlüssel darf nicht leer sein | |||||||||||||||||||
Volltextindex | Volltext (Feldname) |
|
||||||||||||||||||
Fremdschlüssel (Feldname) | referenziert andere Tabellen ( entsprechend Feldnamen in anderen Tabellen) |
约束类型 | 形式 | 含义 |
---|---|---|
主键约束 | primary key ( 字段名) | 使该设定字段的值可以用于“唯一确定一行数据”,其实就是“主键”的意思。 |
唯一约束 | unique key ( 字段名) | 使该设定字段的值具有“唯一性”,自然也是可区分的。 |
外键约束 | foreign key ( 字段名) references 其他表名(对应其他表中的字段名) | 使该设定字段的值,必须在其谁定的对应表中的对应字段中已经有该值了。 |
非空约束 | not null | 其实就是设定一个字段时写的那个“not null”属性。这个约束只能写在字段属性上 |
默认约束 | default XX值 | 其实就是设定一个字段时写的那个“default 默认值”属性,这个约束只能写在字段属性上。 |
检查约束 | check(某种判断语句) |
比如:
create table tab1 ( age tinyint,check (age>=0 and age <100) /*这就是检查约束*/ )#目前相关版本还不支持,就是说只分析,但会被忽略。
其实,主键约束,唯一约束,外键约束,只是“同一件事情的2个不同角度的说法”,他们同时也称为“主键索引”,“唯一索引”,“外键索引”。
表选项就是,创建一个表的时候,对该表的整体设定,主要有如下几个:
1、 charset = 要使用的字符编码,
2、 engine = 要使用的存储引擎(也叫表类型),
3、auto_increment = 设定当前表的自增长字段的初始值,默认是1
4、comment =‘该表的一些说明文字’
说明:
1,设定的字符编码是为了跟数据库设定的不一样。如果一样,就不需要设定了:因为其会自动使用数据库级别的设定;
2,engine(存储引擎)在代码层面,就是一个名词:InnoDB, MyIsam, BDB, archive, Memory。默认是InnoDB。
存储引擎是将数据存储到硬盘的“机制”。
不同的存储引擎,其实主要是从2个大的层面来设计存储机制:
尽可能快的速度;
尽可能多的功能;
选择不同的存储引擎,就是上述性能和功能的“权衡”。
大体如下:
演示:
几点说明:
修改表,是指修改表的结构——正如创建表也是设定表的结构。
创建表能做的事,修改表几乎都能做——但很不推荐去修改表,而是应该在创建表的时候就基本确定表的结构。
大体来说:
1:可以对字段进行:添加,删除,修改;
2:可以对索引进行:添加,删除
表的选项,通常“都是修改”,即使不写任何表选项,他们都有其默认值。
常见几个:
操作类型 | 表达式 |
---|---|
添加字段 | alter table 表名 add [column] 新字段名 字段类型 [字段属性列表] |
修改字段(并可改名) | alter table 表名 change [column] 旧字段名 新字段名 新字段类型 [新字段属性列表] |
删除字段 | alter table 表名 drop [column] 字段名 |
添加普通索引 | alter table 表名 add key [索引名] (字段名1[,字段名2,…]) |
添加唯一索引(约束) | alter table 表名 add unique key (字段名1[,字段名2,…]) |
添加主键索引(约束) | alter table 表名 add primary key (字段名1[,字段名2,…]) |
修改表名 | alter table 旧表名 rename [to] 新表名 |
删除表 | drop table 【if exists】 表名 |
其他表的相关语句:
操作类型 | 表达式 |
---|---|
显示当前数据库中的所有表 | show tables |
显示某表的结构 | desc 表名; 或:describe 表名 |
显示某表的创建语句 | show create table 表名 |
重命名表 | rename table 旧表名 to 新表名 |
从已有表复制表结构 | create table [if not exists] 新表名 like 原表名 |
演示复制表结构:
创建表tab_int,显示表创建语句
将tab_int复制给tab_int_bak,显示tab_int_bak表创建语句,与tab_int一致
相关推荐:
Das obige ist der detaillierte Inhalt vonAusführliche Erläuterung der Beispiele für MySQL-Datentabellenoperationen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!