ホームページ >データベース >mysql チュートリアル >mysqlデータテーブルの操作例を詳しく解説

mysqlデータテーブルの操作例を詳しく解説

小云云
小云云オリジナル
2018-03-15 10:49:261791ブラウズ

この記事では主に mysql データテーブルの操作例について詳しく説明します。まずは、データテーブルの作成方法を見てみましょう。

テーブルの作成

  • 基本構文形式:

create table 【if not exists】 表名 (字段列表 【,索引或约束列表】) 【表选项列表】;

  • フィールド設定形式:

フィールド名 型 [フィールド属性] 1 フィールド属性 2 ….. 】

手順:
1. フィールド名は自分で選択できます。
2. 型は、以前に学習したデータ型です: int、tinyint、float、double、char(6)、varchar(25)、text、datetime。
3. (特定のニーズに応じて) スペースで直接区切られた複数のフィールド属性が存在する場合があります。主な属性は次のとおりです:

auto_increment: のみ使用整数型の場合、このフィールドの値が自動的に増分値を取得できるようになります。通常、テーブルの最初のフィールドを設定するために使用され、通常は主キーとして使用されます。 このとき、フィールドを主キーとして設定するために使用されます。フィールドは「一意」のデータ行にすることができます一意のキー: フィールドを「一意」に、つまり重複しないように設定します。 not null: は、フィールドが null (null) にならないことを設定するために使用されます。設定されていない場合、デフォルトで null 可能になります。 コメント:フィールド説明テキスト
属性名 意味
インデックス
インデックスは、システム内で自動的に維持される隠された「データテーブル」であり、その機能はデータ検索を大幅に高速化することです。

  • この隠しデータテーブルでは、データが自動的に並べ替えられ、検索速度はこれに基づいています。

  • フォームは:

    索引类型(要建立索引的字段名)

インデックスタイプ

フォーム意味通常のインデックスキー(フィールド名)インデックスですが、他の機能はありません、検索速度を高速化することしかできません一意のインデックス一意のキー(フィールド名)はインデックスであり、そのフィールドの値を重複しないように設定することもできます(一意性)プライマリkey インデックス主キー(フィールド名) ) はインデックスであり、テーブル内のデータの任意の行を区別する機能もあります (実際には一意のインデックスよりも少し機能が豊富です)。 : 一意性は空にすることができますが、主キーは空にすることはできません。その他のテーブル (他のテーブルのフィールド名に対応)

索引创建语法:

mysqlデータテーブルの操作例を詳しく解説

外键索引:

foreign  key (字段名) references  其他表(对应其他表中的字段名);

外键:表中的一个字段不是本表的主键或候选键,而是另一个表的主键或候选键。
 候选键或候选键:如果一个表中具有能够唯一标识的一个行的属性,则称为候选键,候选键中任选一个为主键。

mysqlデータテーブルの操作例を詳しく解説

示例:
mysqlデータテーブルの操作例を詳しく解説

注意: 插入xuesheng表中的数据时,banji_id字段的值,就不可以随便插入了,而是必须是banji表中的id字段所已经有的数据值,才可以插入。

全文索引:仅做了解,因为对中文还不够友好

一、概述
       MySQL中的全文检索是利用查询关键字和查询列内容之间的相关度进行检索,可以利用全文索引来提高匹配的速度。
 二、语法
MATCH (col1,col2,...) AGAINST (expr [search_modifier])
search_modifier: { IN BOOLEAN MODE | WITH QUERY EXPANSION }
       例如:SELECT * FROM tab_name WHERE MATCH (col1,col2) AGAINST (search_word);
       这里的table需要是MyISAM类型的表,col1、col2需要是char、varchar或text类型,在查询之前需要在col1和col2上建立一个全文索引。


约束

约束,就是要求数据需要满足什么条件的一种“规定”。

约束类型 形式 含义
主键约束 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个大的层面来设计存储机制:

  • 尽可能快的速度;

  • 尽可能多的功能;

选择不同的存储引擎,就是上述性能和功能的“权衡”。

大体如下:
mysqlデータテーブルの操作例を詳しく解説

演示:
mysqlデータテーブルの操作例を詳しく解説


修改表

几点说明:

  • 修改表,是指修改表的结构——正如创建表也是设定表的结构。

  • 创建表能做的事,修改表几乎都能做——但很不推荐去修改表,而是应该在创建表的时候就基本确定表的结构。

  • 大体来说:
    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,显示表创建语句

mysqlデータテーブルの操作例を詳しく解説

  • 将tab_int复制给tab_int_bak,显示tab_int_bak表创建语句,与tab_int一致
    mysqlデータテーブルの操作例を詳しく解説

相关推荐:

查看MySQL数据表的索引方法

MySQL数据表的创建、查看、插入实例详解

关于MySQL数据表操作的详解

以上がmysqlデータテーブルの操作例を詳しく解説の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。