本文重要和人人分享mysql数据表操纵实例详解,希望能协助到人人,起首我们先来看一下怎样竖立数据表。
竖立表
基础语法情势:
create table 【if not exists】 表名 (字段列表 【,索引或束缚列表】) 【表选项列表】;
字段设定情势:
字段名 范例 【字段属性1 字段属性2 …..】
申明:
1. 字段名可以本身取;
2. 范例就是前面所学的数据范例:int, tinyint, float, double, char(6), varchar(25), text, datetime。
3. 字段属性可以有多个(依据细致的须要),相互之间直接空格离隔;重要以下几个:
属性称号 | 寄义 |
---|---|
auto_increment: | 只用于整数范例,让该字段的值自动取得一个增进值。一般用于做一个表的第一个字段的设定,而且一般还当作主键(primary key) |
primary key: | 用于设定该字段为主键,此时该字段的值就可以“唯一肯定”一行数据 |
unique key: | 设定该字段是“唯一的”,也就是不反复的。 |
not null: | 用于设定该字段不能为空(null),假如没有设定,则默许是可为空的。 |
comment : | 字段申明笔墨 |
索引
索引是体系内部自动保护的隐蔽的“数据表”,它的作用是,可以极大地加速数据的查找速率!
这个隐蔽的数据表,个中的数据是自动排好序的,其查找速率就是竖立在这个基础上。
情势为:
索引范例(要竖立索引的字段名)
索引范例 | 情势 | 寄义 |
---|---|---|
一般索引 | key(字段名) | 就是一个索引罢了,没有其他作用,只能加速查找速率 |
唯一索引 | unique key(字段名) | 是一个索引,而且还可以设定其字段的值不能反复(唯一性) |
主键索引 | primary key (字段名) | 是一个索引,而且,还具有辨别该表中的任何一行数据的作用(实在也是唯一性),它实在比唯一性索引多一点功用:唯一性可以为空null,而主键不能为空 |
全文索引 | fulltext (字段名) | |
外键索引 | foreign key (字段名) | references 其他表(对应其他表中的字段名) |
索引竖立语法:
外键索引:
foreign key (字段名) references 其他表(对应其他表中的字段名);
外键:表中的一个字段不是本表的主键或候选键,而是另一个表的主键或候选键。
候选键或候选键:假如一个表中具有可以唯一标识的一个行的属性,则称为候选键,候选键中任选一个为主键。
注重: 插进去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个大的层面来设想存储机制:
尽量快的速率;
尽量多的功用;
挑选差别的存储引擎,就是上述机能和功用的“衡量”。
修正表
几点申明:
修正表,是指修正表的构造——正如竖立表也是设定表的构造。
竖立表能做的事,修正表险些都能做——但很不引荐去修正表,而是应该在竖立表的时刻就基础肯定表的构造。
大致来讲:
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数据表的索引要领
MySQL数据表的竖立、检察、插进去实例详解
关于MySQL数据表操纵的详解
以上就是mysql数据表操纵实例详解的细致内容,更多请关注ki4网别的相干文章!