iis服务器助手广告广告
返回顶部
首页 > 资讯 > 数据库 >mysql-表的操作
  • 716
分享到

mysql-表的操作

操作mysql 2023-01-30 22:01:49 716人浏览 安东尼
摘要

mysql支持的存储引擎数据库中的表也应该有不同的类型,表的类型不同,会对应mysql不同的存取机制,表类型又称为存储引擎1、InnoDB 存储引擎支持事务,其设计目标主要面向联机事务处理(OLTP)的应用。其特点是行锁设计、支持外键,并支

mysql支持的存储引擎

数据库中的表也应该有不同的类型,表的类型不同,会对应mysql不同的存取机制,表类型又称为存储引擎

1、InnoDB 存储引擎

支持事务,其设计目标主要面向联机事务处理(OLTP)的应用。其特点是行设计、支持外键,并支持类似 oracle 的非锁定读,即默认读取操作不会产生锁。 从 Mysql 5.5.8 版本开始是默认的存储引擎


2、MyISAM 存储引擎

不支持事务、表锁设计、支持全文索引,主要面向一些 OLAP 数 据库应用,在 mysql 5.5.8 版本之前是默认的存储引擎(除 windows 版本外)


3、NDB 存储引擎

NDB 存储引擎是高可用、 高性能、高可扩展性的数据库集群系统,其面向的也是 OLTP 的数据库应用类型


4、Memory 存储引擎

Memory 存储引擎中的数据都存放在内存中,数据库重 启或发生崩溃,表中的数据都将消失


5、Infobright 存储引擎

第三方的存储引擎。其特点是存储是按照列而非行的,因此非常 适合 OLAP 的数据库应用


6、NTSE 存储引擎

网易公司开发的面向其内部使用的存储引擎。目前的版本不支持事务, 但提供压缩、行级缓存等特性,不久的将来会实现面向内存的事务支持


7、BLACKHOLE

黑洞存储引擎,可以应用于主备复制中的分发主库

Mysql 数据库还有很多其他存储引擎,上述只是列举了最为常用的一些引擎。



指定表类型/存储引擎

mysql> create database db1 charset utf8;   # 创建db1数据库设置字符编码为utf8

Query OK, 1 row affected (0.00 sec)


mysql> use db1;  # 选择db1数据库

Database changed


mysql> create table t1(id int)engine=innodb;  # 创建t1表,设置字段id为int类型,并指定引擎为innodb

Query OK, 0 rows affected (0.11 sec)


练习:

创建四张表,分别使用innodb,myisam,memory,blackhole存储引擎

mysql> create table t2(id int)engine=innodb;  

Query OK, 0 rows affected (0.09 sec)


mysql> create table t3(id int)engine=myisam;

Query OK, 0 rows affected (0.01 sec)


mysql> create table t4(id int)engine=memory;

Query OK, 0 rows affected (0.01 sec)


mysql> create table t5(id int)engine=blackhole;

Query OK, 0 rows affected (0.00 sec)


查看db1数据库中的文件:

[root@Centos6 db1]# tree -N /data/3306/data/db1

/data/3306/data/db1

├── db.opt

├── t1.frm

├── t1.ibd

├── t2.frm

├── t2.ibd

├── t3.frm

├── t3.MYD

├── t3.MYI

├── t4.frm

└── t5.frm


#.frm是存储数据表的框架结构

# .ibd是mysql数据文件 

#.MYD是MyISAM表的数据文件的扩展名

#.MYI是MyISAM表的索引的扩展名

# 发现后两种存储引擎只有表结构,无数据

# memory,在重启mysql或者重启机器后,表内数据清空

# blackhole,往表内插入任何数据,都相当于丢入黑洞,表内永远不存记录



创建表

语法:

create table 表名(
字段名1 类型[(宽度) 约束条件],
字段名2 类型[(宽度) 约束条件],
字段名3 类型[(宽度) 约束条件]
);

#注意:
1. 在同一张表中,字段名是不能相同
2. 宽度和约束条件可选
3. 字段名和类型是必须的


1 创建数据库

mysql> create database db1 charset utf8;

Query OK, 1 row affected (0.00 sec)


2 选择数据库

mysql> use db1;

Database changed


3 创建a1表

mysql> create table a1(id int, name varchar(20), age int(3));

Query OK, 0 rows affected (0.39 sec)


4 插入表数据(记录)

mysql> insert into a1 values (1,'张三',18),(2,'李四',19),(3,'王五',20);

Query OK, 3 rows affected (0.01 sec)

Records: 3  Duplicates: 0  Warnings: 0


5 查询表的数据和结构

(1) 查询a1表中的存储数据

mysql> select * from a1;

+------+--------+------+

| id   | name   | age  |

+------+--------+------+

|    1 | 张三   |   18 |

|    2 | 李四   |   19 |

|    3 | 王五   |   20 |

+------+--------+------+

3 rows in set (0.00 sec)


(2) 查看a1表的结构

mysql> desc a1;

+-------+-------------+------+-----+---------+-------+

| Field | Type        | Null | Key | Default | Extra |

+-------+-------------+------+-----+---------+-------+

| id    | int(11)     | YES  |     | NULL    |       |

| name  | varchar(20) | YES  |     | NULL    |       |

| age   | int(3)      | YES  |     | NULL    |       |

+-------+-------------+------+-----+---------+-------+

3 rows in set (0.00 sec)


(3) 查看表的详细结构

mysql> show create table a1\G

*************************** 1. row ***************************

       Table: a1

Create Table: CREATE TABLE `a1` (

  `id` int(11) DEFAULT NULL,

  `name` varchar(20) DEFAULT NULL,

  `age` int(3) DEFAULT NULL

) ENGINE=InnoDB DEFAULT CHARSET=utf8

1 row in set (0.00 sec)


6 复制表

(1) 新创建一个数据库db2

mysql> create database db2;

Query OK, 1 row affected (0.00 sec)


(2) 选择db2数据库

mysql> use db2;

Database changed


(3) 复制db1.a1的表结构和数据(记录)

mysql> create table b1 select * from db1.a1;

Query OK, 3 rows affected (0.10 sec)

Records: 3  Duplicates: 0  Warnings: 0


(4) 查看db2.b1表中的数据和表结构

mysql> select * from b1;

+------+--------+------+

| id   | name   | age  |

+------+--------+------+

|    1 | 张三   |   18 |

|    2 | 李四   |   19 |

|    3 | 王五   |   20 |

+------+--------+------+

3 rows in set (0.00 sec)


如果只复制表结构,不要数据

在db2数据库下新创建一个b2表,给一个where条件,条件要求不成立,条件为false,只拷贝表结构,1>5为False

mysql> create table b2 select * from db1.a1 where 1>5;

Query OK, 0 rows affected (0.05 sec)

Records: 0  Duplicates: 0  Warnings: 0


查看表结构:

mysql> desc b2;

+-------+-------------+------+-----+---------+-------+

| Field | Type        | Null | Key | Default | Extra |

+-------+-------------+------+-----+---------+-------+

| id    | int(11)     | YES  |     | NULL    |       |

| name  | varchar(20) | YES  |     | NULL    |       |

| age   | int(3)      | YES  |     | NULL    |       |

+-------+-------------+------+-----+---------+-------+

3 rows in set (0.00 sec)


查看表结构中的数据,发现没有数据,只复制表结构成功

mysql> select * from b2;

Empty set (0.00 sec)


还有一种写法,使用like(只拷贝表结构,不拷贝数据(记录))

mysql> create table b3 like db1.a1;  # 拷贝db1中的a1表结构

Query OK, 0 rows affected (0.09 sec)


mysql> desc b3;   # 查看b3表结构

+-------+-------------+------+-----+---------+-------+

| Field | Type        | Null | Key | Default | Extra |

+-------+-------------+------+-----+---------+-------+

| id    | int(11)     | YES  |     | NULL    |       |

| name  | varchar(20) | YES  |     | NULL    |       |

| age   | int(3)      | YES  |     | NULL    |       |

+-------+-------------+------+-----+---------+-------+

3 rows in set (0.00 sec)


mysql> select * from b3;  # 查询b3表数据

Empty set (0.01 sec)


7 删除表

mysql> drop table b3,b2;  # 删除b3,b2表

Query OK, 0 rows affected (0.03 sec)


mysql> show tables;  # 查看所有表

+---------------+

| Tables_in_db2 |

+---------------+

| b1            |

+---------------+

1 row in set (0.00 sec)


PS:以;作为mysql的结束语(分号)



您可能感兴趣的文档:

--结束END--

本文标题: mysql-表的操作

本文链接: https://www.lsjlt.com/news/179121.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • MySQL表的操作
    MySQL表的操作 创建表查看表结构的详细信息修改表结构增加表结构属性删除表结构表结构的修改 删除表结构 创建表 语法: create table table_name( fiel...
    99+
    2023-09-01
    mysql android 数据库
  • mysql-表的操作
    mysql支持的存储引擎数据库中的表也应该有不同的类型,表的类型不同,会对应mysql不同的存取机制,表类型又称为存储引擎1、InnoDB 存储引擎支持事务,其设计目标主要面向联机事务处理(OLTP)的应用。其特点是行锁设计、支持外键,并支...
    99+
    2023-01-30
    操作 mysql
  • 『 MySQL篇 』:MySQL表的CURD操作
    📢 MySQL 系列专栏持续更新中 … MySQL专栏 ​ 目录 目录一、SQL语句- SQL通用语法- 注释- SQL语句分类 二、 基础表操作- 创建表- 查看库中的表- 查看表结构- 删除表- 重...
    99+
    2023-08-17
    mysql 数据库 sql
  • Mysql多表操作
    文章目录 1. 概述2. 内连接3. 外连接4. 自连接5. 联合查询-union,union all6. 子查询 1. 概述 在项目开发中,在进行数据库表结构设计是,...
    99+
    2023-09-05
    mysql
  • MySQL表的基本操作
    本篇内容主要讲解“MySQL表的基本操作”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“MySQL表的基本操作”吧! create table USER...
    99+
    2024-04-02
  • MySQL表数据的DML操作
    这篇文章主要介绍“MySQL表数据的DML操作”,在日常操作中,相信很多人在MySQL表数据的DML操作问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”MySQL表数据的DML...
    99+
    2024-04-02
  • MySQL中表数据的DML操作
    这篇文章主要介绍“MySQL中表数据的DML操作”,在日常操作中,相信很多人在MySQL中表数据的DML操作问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”MySQL中表数据的...
    99+
    2024-04-02
  • MySQL数据库的多表操作
    目录一、 数据库的多表操作二,操作一对一一对多一、 数据库的多表操作 数据库的多表关系: 一对一一对多多对一多对多 二,操作 一对一 建立数据表person和card,设置perso...
    99+
    2022-11-13
    MySQL数据库 MySQL多表操作
  • 【MySQL】数据库——表操作
    文章目录 1. 创建表2. 查看表3. 修改表修改表名add ——增加modify——修改drop——删除修改列名称 4. 删除表 1. 创建表 语法: create table ...
    99+
    2023-10-26
    数据库 mysql
  • Mysql表分区的操作方法
    这篇文章主要讲解了“Mysql表分区的操作方法”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Mysql表分区的操作方法”吧! M...
    99+
    2024-04-02
  • MySQL表的操作『增删改查』
    ✨个人主页: 北 海 🎉所属专栏: MySQL 学习 🎃操作环境: CentOS 7.6 阿里云远程服务器 🎁软件版本: MySQL 5.7.44 文章目录 1.创建表1.1...
    99+
    2023-12-22
    mysql 数据库
  • 【MySQL】数据库和表的操作
    数据库和表的操作 一、数据库的操作1. 创建数据库2. 字符集和校验规则(1)查看系统默认字符集以及校验规则(2)查看数据库支持的字符集(3)查看数据库支持的字符集校验规则(4)校验规则对数据库的影响 3. 操纵数据库(1)查...
    99+
    2023-12-22
    数据库 mysql oracle linux centos
  • 【MySQL学习】MySQL表的增删改查操作
    文章目录 前言一、Create操作1.1 单行数据全列插入1.2 多行数据指定列插入1.3 插入更新1.4 插入替换 二、Read操作2.1 SELECT 操作2.1.1 全列查询2.1....
    99+
    2023-09-21
    mysql 学习 数据库
  • MySQL数据表高级操作
    一、克隆/复制数据表二、清空表,删除表内的所有数据删除小结 三、创建临时表四、MySQL中6种常见的约束1、外键的定义2、创建外键约束作用3、创建主表test44、创建从表test55、为主表test4添加一个主键约束。主键...
    99+
    2023-08-17
    mysql android 数据库
  • MySQL怎么操作数据表
    本篇内容主要讲解“MySQL怎么操作数据表”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“MySQL怎么操作数据表”吧! MySQL操...
    99+
    2024-04-02
  • MySQL分区表和分桶表的操作详解
    目录1.创建分区表2.增删改查操作2.1 插入数据2.2 操作数据3. 二级分区表3.1 创建分区表3.2 插入数据4.动态分区5.分桶表5.1 新建分桶表5.2 插入数据5.3 既分区有分桶6 分区与分桶的区别1.创建...
    99+
    2023-05-12
    MySQL分区表和分桶表 MySQL分区表 MySQL分桶表
  • MySQL数据库和表的基本操作
    文章目录 一、数据库的基础知识背景知识数据库的基本操作 二、数据类型字符串类型数值类型日期类型 三、表的基本操作创建表查看表结构查看所有表删除表 一、数据库的基础知识 背景知...
    99+
    2023-09-08
    数据库 mysql 服务器
  • MySQL表的CURD操作方法有哪些
    这篇文章主要介绍“MySQL表的CURD操作方法有哪些”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“MySQL表的CURD操作方法有哪些”文章能帮助大家解决问题。一、SQL语句操作关系型数据库的编程...
    99+
    2023-07-05
  • MySQL日常大表的DDL操作介绍
    这篇文章主要讲解了“MySQL日常大表的DDL操作介绍”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“MySQL日常大表的DDL操作介绍”吧!大多数的alte...
    99+
    2024-04-02
  • Mysql表的操作方法详细介绍
    目录创建表查看表结构修改表删除表创建表 语法: CREATE TABLE table_name ( field1 datatype, field2 datatype, field3 ...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作