MySQL数据表的基本操作二:表结构查看、修改与表操作

一、查看数据表结构

1) 查看表基本结构语句 DESCRIBE

语法:DESCRIBE 表名;

示例:

mysql> DESCRIBE product;
+--------------+--------------+------+-----+---------+----------------+
| Field        | Type         | Null | Key | Default | Extra          |
+--------------+--------------+------+-----+---------+----------------+
| product_id   | int(11)      | NO   | PRI | NULL    | auto_increment |
| product_name | varchar(50)  | NO   |     | NULL    |                |
| description  | varchar(200) | YES  |     | NULL    |                |
+--------------+--------------+------+-----+---------+----------------+

语法:DESC 表名;

示例:

mysql> DESC product;
+--------------+--------------+------+-----+---------+----------------+
| Field        | Type         | Null | Key | Default | Extra          |
+--------------+--------------+------+-----+---------+----------------+
| product_id   | int(11)      | NO   | PRI | NULL    | auto_increment |
| product_name | varchar(50)  | NO   |     | NULL    |                |
| description  | varchar(200) | YES  |     | NULL    |                |
+--------------+--------------+------+-----+---------+----------------+

说明:

  • NULL: 表示该列是否可以存储NULL值;
  • Key: 表示该列是否已编制索引。PRI表示是表主键的一部分;UNI表示该列是UNIQUE索引一部分;MUL表示该列中某个给定值允许出现多次;
  • Default: 表示该列是否有默认值,如果有是多少;
  • Extra: 表示可以获取的与给定列有关的附加信息。例如AUTO_INCREMENT等;

2) 查看表详细结构语句 SHOW CREATE TABLE

功能说明:

用来显示创建表时的语句

语法:

SHOW CREATE TABLE <表名\G>;

提示:

  • 该语句可以用来查看创建表的详细语句;
  • 还可以用来查看存储引擎和字符编码;
  • 加上参数‘\G‘后,可使显示结果更加直观,易于查看;

示例:

mysql> show create table bm\G;
*************************** 1. row ***************************
       Table: bm
Create Table: CREATE TABLE `bm` (
  `id` int(11) NOT NULL,
  `name` varchar(22) DEFAULT NULL,
  `location` varchar(20) DEFAULT NULL,
  PRIMARY KEY (`id`),
  UNIQUE KEY `STH` (`name`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1
1 row in set (0.02 sec)

二、修改数据表

1) 修改表名

语法

ALTER TABLE <旧表名> RENAME [TO] <新表名>;

示例

ALTER TABLE bm RENAME department;

2) 修改字段的数据类型

语法

ALTER TABLE <表名> MODIFY <字段名> <数据类型>;

示例

ALTER TABLE department MODIFY id VARCHAR(11);

3) 修改字段名

语法

ALTER TABLE <表名> CHANGE <旧字段名><新字段名><新数据类型>;

示例

ALTER TABLE employees CHANGE location loc VARCHAR(350);//类型可以和原来保持一样,不用修改

4) 添加字段

语法

ALTER TABLE <表名> ADD <新字段名> <数据类型>  [约束条件]  [FIRST|AFTER已存在字段名];//默认添加到最后一列后面

示例

ALTER TABLE employees ADD manager_id INT(10);
ALTER TABLE employees ADD age INT(11) NOT NULL;//非空约束
ALTER TABLE employees ADD sal FLOAT FIRST;//在表的第一列添加
ALTER TABLE employees ADD hire_date DATE AFTER manager_id;//在指定列后添加

5) 删除字段

语法

ALTER TABLE <表名> DROP <字段名>;

示例

ALTER TABLE employees DROP manager_id;
ALTER TABLE employees DROP hire_date;

6) 修改字段的排列位置

语法

ALTER TABLE <表名> MODIFY <字段1><数据类型> FIRST|AFTER <字段2>;

示例

ALTER TABLE employees MODIFY name VARCHAR(22) FIRST;//把name移动到第一列
ALTER TABLE department MODIFY location VARCHAR(350) AFTER department_id;//把location列移到department_id列之后

7) 更改表的存储引擎

MySQL支持的主要存储引擎

引擎名 是否支持
FEDERATED
MRG_MYISAM
MyISAM
BLACKHOLE
CSV
MEMORY
ARCHIVE
InnoDB 默认
PERFORMANCE_SCHEMA

语法

ALTER TABLE <表名> ENGINE=<更改后的存储引擎名>;

示例

ALTER TABLE department ENGINE=MyISAM;

8) 删除表的外键约束

语法

ALTER TABLE <表名> DROP FOREIGN KEY <外键约束名>;

示例

ALTER TABLE employees DROP FOREIGN KEY fk_emp_dept;

三、删除数据表

1) 删除没有被关联的表

语法

DROP TABLE [IF EXISTS] 表1,表2,...表n;

示例

DROP TABLE IF EXISTS employees;

2) 删除被其他表关联的主表

说明:先要删除外键

示例

mysql> create database rm_tab;
Query OK, 1 row affected (0.00 sec)

mysql> use rm_tab;
Database changed
mysql> create table department
    -> (
    -> id int(11) primary key,
    -> name varchar(22),
    -> location varchar(200)
    -> );
Query OK, 0 rows affected (0.07 sec)

mysql> create table employee
    -> (
    -> id int(11) primary key,
    -> name varchar(25),
    -> department_id int(11),
    -> salary float,
    -> constraint fk_emp_dept foreign key(department_id) references department(id)
    -> );
Query OK, 0 rows affected (0.10 sec)

mysql> drop table department;
ERROR 1217 (23000): Cannot delete or update a parent row: a foreign key constraint fails
mysql> alter table employee drop foreign key fk_emp_dept;
Query OK, 0 rows affected (0.22 sec)
Records: 0  Duplicates: 0  Warnings: 0

mysql> drop table department;
Query OK, 0 rows affected (0.04 sec)

mysql> show tables;
+------------------+
| Tables_in_rm_tab |
+------------------+
| employee         |
+------------------+
1 row in set (0.00 sec)

如果您们在尝试的过程中遇到什么问题或者我的代码有错误的地方,请给予指正,非常感谢!

联系方式:[email protected]

版权@:转载请标明出处!

时间: 2024-11-06 15:08:29

MySQL数据表的基本操作二:表结构查看、修改与表操作的相关文章

(二)miller指导查看主控板寄存器操作

Welcome to Command Shell!Username:admin Password:***** ROS>en ROS# ROS# ROS# ROS# ROS#^ada ROS(ada)#[063-15:52:39:260]ADA CONNECTED ...,WELCOME! ROS(ada)#ROS(ada)# ROS(ada)#turnon 50 ROS(ada)#cmd 50 0 ROS(ada)#[064-15:53:15:570]------------------[065

MySQL 之 第二章: 库与表的基本操作; 数据类型; 完整性约束; 外键;

库与表的基本操作 数据类型 完整性约束 外键 库与表的基本操作 库的增删改查: 查看系统库语句: show databases; information_schema: 虚拟库,不占用磁盘空间,存储的是数据库启动后的一些参数,如用户表信息.列信息.权限信息.字符信息等performance_schema: MySQL 5.5开始新增一个数据库:主要用于收集数据库服务器性能参数,记录处理查询请求时发生的各种事件.锁等现象mysql: 授权库,主要存储系统用户的权限信息 sys: 创建数据库语法:

Mysql数据基本操作(增、删、改、查)

一.连接数据库 1. 游客登录(不一定能登入),登入了啥都不能干 >:mysql 2.账号密码登录 >:mysql -u root -p 再次输入密码,没有任何提示,没有密码直接回车 3.连接指定服务器的mysql >:mysql -h ip地址 -P端口号 -u账号 -p 回车后敲入密码 eg: >:mysql -hlocalhost -P3306 -uroot -p 4.退出数据库 >:quit >:exit 二.用户信息查看 1.查看当前登录的用户 mysql&g

浅谈线性表的基本操作与应用

线性表作为一种线性数据结构,常应用于信息检索,存储管理等诸多领域,因此了解线性表的基本操作与应用对于我们学习数据结构有着十分重要的意义. 一,线性表的基本操作 首先,我们定义一个线性表的基类linearlist,并以此定义了它的派生类顺序表类seqlist和链表类singlelist.在基类中,我们以抽象函数的形式定义了线性表常用的几种操作,如插入删除等. #ifndef LINEARLIST_H_INCLUDED #define LINEARLIST_H_INCLUDED #include<i

MariaDB 表的基本操作(3)

MariaDB数据库管理系统是MySQL的一个分支,主要由开源社区在维护,采用GPL授权许可MariaDB的目的是完全兼容MySQL,包括API和命令行,MySQL由于现在闭源了,而能轻松成为MySQL的代替品.在存储引擎方面,使用XtraDB来代替MySQL的InnoDB,MariaDB由MySQL的创始人Michael Widenius主导开发,他早前曾以10亿美元的价格,将自己创建的公司MySQL AB卖给了SUN,此后,随着SUN被甲骨文收购MySQL的所有权也落入Oracle的手中.M

数据结构(严蔚敏、吴伟民)——读书笔记-2、 线性表及其基本运算、顺序存储结构

第二章   线性表 2.1    线性表及其基本运算 2.2    线性表的顺序存储结构 2.3    线性表的链式存储结构 1.线性表:是n个数据元素的有限序列. 直接前驱元素.直接后继元素,n = 0时,称为空表. 一个数据元素可以有若干个数据项组成.在这种情况下,常把数据元素称为记录,含有大量记录的线性表又称为文件. 2.基本运算 InitList(&L)        初始化操作 设定一个空的线性表L ListLength(L)求长度函数 函数值为线性表L中数据元素的个数 GetElem

C#综合揭秘——通过修改注册表建立Windows自定义协议

引言 本文主要介绍注册表的概念与其相关根项的功能,以及浏览器如何通过连接调用自定义协议并与客户端进行数据通信.文中讲及如何通过C#程序.手动修改.安装项目等不同方式对注册表进行修改.其中通过安装项目对注册表进行修改的情况最为常见,在一般的应用程序中都会涉及.当中最为实用的例子将介绍如何通过"安装项目"修改注册表建立自定义协议,在页面通过ajax方式发送路径请求,并在回调函数中调用自定义协议.最后一节还将介绍如何调用自定义协议去保持数据的保密性.希望本篇文章能对各位的学习研究有所帮助,当

【转】C#综合揭秘——通过修改注册表建立Windows自定义协议

引言 本文主要介绍注册表的概念与其相关根项的功能,以及浏览器如何通过连接调用自定义协议并与客户端进行数据通信.文中讲及如何通过C#程序.手动修改.安装项目等不同方式对注册表进行修改.其中通过安装项目对注册表进行修改的情况最为常见,在一般的应用程序中都会涉及.当中最为实用的例子将介绍如何通过"安装项目"修改注册表建立自定义协议,在页面通过ajax方式发送路径请求,并在回调函数中调用自定义协议.最后一节还将介绍如何调用自定义协议去保持数据的保密性.希望本篇文章能对各位的学习研究有所帮助,当

通过修改注册表建立Windows自定义协议

引言 本文主要介绍注册表的概念与其相关根项的功能,以及浏览器如何通过连接调用自定义协议并与客户端进行数据通信.文中讲及如何通过C#程序.手动修改.安装项目等不同方式对注册表进行修改.其中通过安装项目对注册表进行修改的情况最为常见,在一般的应用程序中都会涉及.当中最为实用的例子将介绍如何通过"安装项目"修改注册表建立自定义协议,在页面通过ajax方式发送路径请求,并在回调函数中调用自定义协议.最后一节还将介绍如何调用自定义协议去保持数据的保密性.希望本篇文章能对各位的学习研究有所帮助,当