搜索
首页数据库mysql教程mysql数据表操作实例详解

mysql数据表操作实例详解

Mar 15, 2018 am 10:49 AM
mysql数据表详解

本文主要和大家分享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,显示表创建语句

这里写图片描述

  • 将tab_int复制给tab_int_bak,显示tab_int_bak表创建语句,与tab_int一致
    这里写图片描述

相关推荐:

查看MySQL数据表的索引方法

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

关于MySQL数据表操作的详解

以上是mysql数据表操作实例详解的详细内容。更多信息请关注PHP中文网其他相关文章!

声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
您如何在MySQL中创建和管理用户帐户?您如何在MySQL中创建和管理用户帐户?Apr 22, 2025 pm 06:05 PM

在MySQL中创建和管理用户账户的步骤如下:1.创建用户:使用CREATEUSER'newuser'@'localhost'IDENTIFIEDBY'password';2.分配权限:使用GRANTSELECT,INSERT,UPDATEONmydatabase.TO'newuser'@'localhost';3.修正权限错误:使用REVOKEALLPRIVILEGESONmydatabase.FROM'newuser'@'localhost';然后重新分配权限;4.优化权限:使用SHOWGRA

MySQL与Oracle有何不同?MySQL与Oracle有何不同?Apr 22, 2025 pm 05:57 PM

MySQL适合快速开发和中小型应用,Oracle适合大型企业和高可用性需求。1)MySQL开源、易用,适用于Web应用和中小型企业。2)Oracle功能强大,适合大型企业和政府机构。3)MySQL支持多种存储引擎,Oracle提供丰富的企业级功能。

与其他关系数据库相比,使用MySQL的缺点是什么?与其他关系数据库相比,使用MySQL的缺点是什么?Apr 22, 2025 pm 05:49 PM

MySQL相比其他关系型数据库的劣势包括:1.性能问题:在处理大规模数据时可能遇到瓶颈,PostgreSQL在复杂查询和大数据处理上表现更优。2.扩展性:水平扩展能力不如GoogleSpanner和AmazonAurora。3.功能限制:在高级功能上不如PostgreSQL和Oracle,某些功能需要更多自定义代码和维护。

您如何在MySQL中执行加入操作?您如何在MySQL中执行加入操作?Apr 22, 2025 pm 05:41 PM

MySQL支持四种JOIN类型:INNERJOIN、LEFTJOIN、RIGHTJOIN和FULLOUTERJOIN。1.INNERJOIN用于匹配两个表中的行并返回符合条件的结果。2.LEFTJOIN返回左表的所有行,即使右表没有匹配。3.RIGHTJOIN与LEFTJOIN相反,返回右表的所有行。4.FULLOUTERJOIN返回两表中所有符合或不符合条件的行。

MySQL的性能与高负载下的其他RDBM相比如何?MySQL的性能与高负载下的其他RDBM相比如何?Apr 22, 2025 pm 05:37 PM

MySQL在高负载下的性能与其他RDBMS相比各有优劣。1)MySQL通过InnoDB引擎和优化策略如索引、查询缓存和分区表在高负载下表现良好。2)PostgreSQL通过MVCC机制提供高效并发读写,Oracle和MicrosoftSQLServer则通过各自的优化策略提升性能。通过合理的配置和优化,MySQL可以在高负载环境中表现出色。

解释InnoDB缓冲池及其对性能的重要性。解释InnoDB缓冲池及其对性能的重要性。Apr 19, 2025 am 12:24 AM

InnoDBBufferPool通过缓存数据和索引页来减少磁盘I/O,提升数据库性能。其工作原理包括:1.数据读取:从BufferPool中读取数据;2.数据写入:修改数据后写入BufferPool并定期刷新到磁盘;3.缓存管理:使用LRU算法管理缓存页;4.预读机制:提前加载相邻数据页。通过调整BufferPool大小和使用多个实例,可以优化数据库性能。

MySQL与其他编程语言:一种比较MySQL与其他编程语言:一种比较Apr 19, 2025 am 12:22 AM

MySQL与其他编程语言相比,主要用于存储和管理数据,而其他语言如Python、Java、C 则用于逻辑处理和应用开发。 MySQL以其高性能、可扩展性和跨平台支持着称,适合数据管理需求,而其他语言在各自领域如数据分析、企业应用和系统编程中各有优势。

学习MySQL:新用户的分步指南学习MySQL:新用户的分步指南Apr 19, 2025 am 12:19 AM

MySQL值得学习,因为它是强大的开源数据库管理系统,适用于数据存储、管理和分析。1)MySQL是关系型数据库,使用SQL操作数据,适合结构化数据管理。2)SQL语言是与MySQL交互的关键,支持CRUD操作。3)MySQL的工作原理包括客户端/服务器架构、存储引擎和查询优化器。4)基本用法包括创建数据库和表,高级用法涉及使用JOIN连接表。5)常见错误包括语法错误和权限问题,调试技巧包括检查语法和使用EXPLAIN命令。6)性能优化涉及使用索引、优化SQL语句和定期维护数据库。

See all articles

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

Video Face Swap

Video Face Swap

使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热工具

PhpStorm Mac 版本

PhpStorm Mac 版本

最新(2018.2.1 )专业的PHP集成开发工具

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

功能强大的PHP集成开发环境

WebStorm Mac版

WebStorm Mac版

好用的JavaScript开发工具

安全考试浏览器

安全考试浏览器

Safe Exam Browser是一个安全的浏览器环境,用于安全地进行在线考试。该软件将任何计算机变成一个安全的工作站。它控制对任何实用工具的访问,并防止学生使用未经授权的资源。

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器