热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

MySQL数据表的增删改查

数据库中的数据是存储在基本表中的,所以需要先创建数据表再插入数据。创建表创建表的同时须指定表名、字段名和数据类型。语法:createtable

数据库中的数据是存储在基本表中的,所以需要先创建数据表再插入数据。
在这里插入图片描述

创建表

创建表的同时须指定表名、字段名和数据类型。
语法:

create table <表名>(
<字段名1> <数据类型1>[,
<字段名2> <数据类型2>,
...
<字段名n> <数据类型n>]);

  • <表名>&#xff1a;表名不可与SQL关键字相同&#xff0c;同一个数据库中的表名不可重复。
  • <字段名>&#xff1a;字段名不可与SQL关键字相同&#xff0c;同一个表中的字段名不可重复。

示例&#xff1a;创建employee员工信息表
在这里插入图片描述

mysql> create table employee(-> e_id varchar(5),-> e_name varchar(5),-> e_age int,-> d_id varchar(5));

查看表

在当前数据库中可以查看创建好的数据表。
语法&#xff1a;

show tables [like &#39;表名&#39;];

  • like 子句是可选项&#xff0c;用于匹配指定的表名&#xff0c;可以模糊匹配&#xff0c;也可以精确匹配。

示例1&#xff1a;查看当前数据库内的所有表

mysql> show tables;
&#43;----------------&#43;
| Tables_in_test |
&#43;----------------&#43;
| employee |
| emp7 |
&#43;----------------&#43;

示例2&#xff1a;使用like子句查看以’emp’开头的表

mysql> show tables like &#39;emp%&#39;;
&#43;------------------------&#43;
| Tables_in_test (emp%) |
&#43;------------------------&#43;
| employee |
| emp7 |
&#43;------------------------&#43;

示例3&#xff1a;查看employee表的定义声明

mysql> show create table employee\G;
*************************** 1. row ***************************Table: employee
Create Table: CREATE TABLE &#96;employee&#96; (&#96;e_id&#96; varchar(5) DEFAULT NULL,&#96;e_name&#96; varchar(5) DEFAULT NULL,&#96;e_age&#96; int(11) DEFAULT NULL,&#96;d_id&#96; varchar(5) DEFAULT NULL
) ENGINE&#61;InnoDB DEFAULT CHARSET&#61;utf8

使用 SHOW CREATE TABLE 语句不仅可以查看创建表时的详细语句&#xff0c;而且可以查看存储引擎和字符编码。如果不加“\G”参数&#xff0c;显示的结果可能非常混乱&#xff0c;加上“\G”参数之后&#xff0c;可使显示的结果更加直观&#xff0c;易于查看。

创建好数据表之后&#xff0c;可以查看表结构。
语法&#xff1a;

describe <表名>; 或 desc <表名>;

示例&#xff1a;查看employee表的结构定义

mysql> desc dep;
&#43;--------&#43;------------&#43;------&#43;-----&#43;---------&#43;-------&#43;
| Field | Type | Null | Key | Default | Extra |
&#43;--------&#43;------------&#43;------&#43;-----&#43;---------&#43;-------&#43;
| e_id | varchar(5) | YES | | NULL | |
| e_name | char(5) | YES | | NULL | |
| e_age | int(11) | YES | | NULL | |
| d_id | varchar(5) | YES | | NULL | |
&#43;--------&#43;------------&#43;------&#43;-----&#43;---------&#43;-------&#43;

  • Null&#xff1a;表示该字段是否可以存储 NULL 值。
  • Key&#xff1a;表示该字段是否已编制索引。PRI 表示主键&#xff0c;UNI 表示 UNIQUE 唯一索引&#xff0c;MUL 表示某个给定值允许出现多次。
  • Default&#xff1a;表示该字段是否有默认值&#xff0c;如果有&#xff0c;值是什么。
  • Extra&#xff1a;表示可以获取的附加信息&#xff0c;如 AUTO_INCREMENT 等。

修改表

为实现数据库中表规范化设计&#xff0c;有时候需要对已经创建的表进行结构修改或调整。
语法&#xff1a;修改表名

alter table <原表名> rename <新表名>;

示例&#xff1a;将employee表名改为emp

mysql> alter table employee rename emp;

语法&#xff1a;添加新字段

alter table <表名> add <新字段名> <数据类型> [约束条件] [first|after 参照字段名];

  • 约束条件和字段位置可以不指定&#xff0c;默认无约束&#xff0c;在表中最后一列显示。

示例&#xff1a;在emp表中添加新字段location

mysql> alter table emp add location varchar(5);

语法&#xff1a;修改字段名

alter table <表名> change <原字段名> <新字段名> <新数据类型>;

示例&#xff1a;修改字段名location为loc

mysql> alter table emp change location loc varchar(5);

语法&#xff1a;修改字段类型

alter table <表名> modify <字段名> <新数据类型>;

示例&#xff1a;修改loc的字段类型为varchar(10)

mysql> alter table emp modify loc varchar(10);

语法&#xff1a;修改字段的排列位置

alter table <表名> modify <字段名> <数据类型> first|after 参照字段名;

示例&#xff1a;修改字段loc的排列位置

mysql> alter table emp modify loc varchar(10) after d_id;

语法&#xff1a;删除字段

alter table <表名> drop <字段名>;

示例&#xff1a;删除字段loc

mysql> alter table emp drop loc;

删除表

删除表指删除表结构的同时删除表中数据&#xff0c;因此需谨慎使用。
语法&#xff1a;

drop table [if exists] <表名> [,<表名1>,<表名2>,...<表名n>];

  • 可删除多张表&#xff0c;if exists避免表不存在时报错。

示例1&#xff1a;删除emp表

mysql> drop table emp;

示例2&#xff1a;避免表不存在时报错

mysql> drop table if exists emp;


推荐阅读
  • 本文详细介绍如何使用Python进行配置文件的读写操作,涵盖常见的配置文件格式(如INI、JSON、TOML和YAML),并提供具体的代码示例。 ... [详细]
  • 深入理解 SQL 视图、存储过程与事务
    本文详细介绍了SQL中的视图、存储过程和事务的概念及应用。视图为用户提供了一种灵活的数据查询方式,存储过程则封装了复杂的SQL逻辑,而事务确保了数据库操作的完整性和一致性。 ... [详细]
  • 本文深入探讨 MyBatis 中动态 SQL 的使用方法,包括 if/where、trim 自定义字符串截取规则、choose 分支选择、封装查询和修改条件的 where/set 标签、批量处理的 foreach 标签以及内置参数和 bind 的用法。 ... [详细]
  • 本文详细介绍了如何通过多种编程语言(如PHP、JSP)实现网站与MySQL数据库的连接,包括创建数据库、表的基本操作,以及数据的读取和写入方法。 ... [详细]
  • 利用存储过程构建年度日历表的详细指南
    本文将介绍如何使用SQL存储过程创建一个完整的年度日历表。通过实例演示,帮助读者掌握存储过程的应用技巧,并提供详细的代码解析和执行步骤。 ... [详细]
  • MySQL缓存机制深度解析
    本文详细探讨了MySQL的缓存机制,包括主从复制、读写分离以及缓存同步策略等内容。通过理解这些概念和技术,读者可以更好地优化数据库性能。 ... [详细]
  • 优化ListView性能
    本文深入探讨了如何通过多种技术手段优化ListView的性能,包括视图复用、ViewHolder模式、分批加载数据、图片优化及内存管理等。这些方法能够显著提升应用的响应速度和用户体验。 ... [详细]
  • Windows服务与数据库交互问题解析
    本文探讨了在Windows 10(64位)环境下开发的Windows服务,旨在定期向本地MS SQL Server (v.11)插入记录。尽管服务已成功安装并运行,但记录并未正确插入。我们将详细分析可能的原因及解决方案。 ... [详细]
  • 本文介绍了一款用于自动化部署 Linux 服务的 Bash 脚本。该脚本不仅涵盖了基本的文件复制和目录创建,还处理了系统服务的配置和启动,确保在多种 Linux 发行版上都能顺利运行。 ... [详细]
  • 本文详细介绍了Java编程语言中的核心概念和常见面试问题,包括集合类、数据结构、线程处理、Java虚拟机(JVM)、HTTP协议以及Git操作等方面的内容。通过深入分析每个主题,帮助读者更好地理解Java的关键特性和最佳实践。 ... [详细]
  • UNP 第9章:主机名与地址转换
    本章探讨了用于在主机名和数值地址之间进行转换的函数,如gethostbyname和gethostbyaddr。此外,还介绍了getservbyname和getservbyport函数,用于在服务器名和端口号之间进行转换。 ... [详细]
  • 本文探讨了 Objective-C 中的一些重要语法特性,包括 goto 语句、块(block)的使用、访问修饰符以及属性管理等。通过实例代码和详细解释,帮助开发者更好地理解和应用这些特性。 ... [详细]
  • 本文介绍了如何通过 Maven 依赖引入 SQLiteJDBC 和 HikariCP 包,从而在 Java 应用中高效地连接和操作 SQLite 数据库。文章提供了详细的代码示例,并解释了每个步骤的实现细节。 ... [详细]
  • 本文介绍如何通过创建替代插入触发器,使对视图的插入操作能够正确更新相关的基本表。涉及的表包括:飞机(Aircraft)、员工(Employee)和认证(Certification)。 ... [详细]
  • SQLite 动态创建多个表的需求在网络上有不少讨论,但很少有详细的解决方案。本文将介绍如何在 Qt 环境中使用 QString 类轻松实现 SQLite 表的动态创建,并提供详细的步骤和示例代码。 ... [详细]
author-avatar
青大柠的小号_247
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有