この記事では主に mysql データテーブルの操作例について詳しく説明します。まずは、データテーブルの作成方法を見てみましょう。
基本構文形式:
create table 【if not exists】 表名 (字段列表 【,索引或约束列表】) 【表选项列表】;
フィールド設定形式:
フィールド名 型 [フィールド属性] 1 フィールド属性 2 ….. 】
手順:
1. フィールド名は自分で選択できます。
2. 型は、以前に学習したデータ型です: int、tinyint、float、double、char(6)、varchar(25)、text、datetime。
3. (特定のニーズに応じて) スペースで直接区切られた複数のフィールド属性が存在する場合があります。主な属性は次のとおりです:
属性名 | 意味 |
---|---|
のみ使用整数型の場合、このフィールドの値が自動的に増分値を取得できるようになります。通常、テーブルの最初のフィールドを設定するために使用され、通常は主キーとして使用されます。 | このとき、フィールドを主キーとして設定するために使用されます。フィールドは「一意」のデータ行にすることができます |
一意のキー: | フィールドを「一意」に、つまり重複しないように設定します。 |
not null: | は、フィールドが null (null) にならないことを設定するために使用されます。設定されていない場合、デフォルトで null 可能になります。 |
コメント: | フィールド説明テキスト |
インデックス |
索引类型(要建立索引的字段名)
インデックスタイプ
通常のインデックス | ||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
一意のインデックス | 一意のキー(フィールド名) | |||||||||||||||||||||||||||||||||||||||||||||||||||
プライマリkey インデックス | 主キー(フィールド名) ) | |||||||||||||||||||||||||||||||||||||||||||||||||||
约束类型 | 形式 | 含义 |
---|---|---|
主键约束 | 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一致
相关推荐:
以上がmysqlデータテーブルの操作例を詳しく解説の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。