查看数据表结构

使用SQL语句创建好数据表之后,可以查看表结构的定义,以确定表的定义是否正确。在MySQL中,查看表结构可以使用DESCRIBE 和 SHOW CREATE TABLE语句。

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

DESCRIBE/DESC语句可以查看表的字段信息,其中包括:字段名。字段数据类型、是否为主键、是否有默认值。语法规则:

DESCRIBE 表名;

后者简写为:

DESC 表名;

各个字段的含义分别为:

NULL:表示该列是否可以存储NULL指

Key:表示该列是否已编制索引。PRI表示该列是表主键的一部分;UNI表示该列是UNIQUE索引的一部分;MUL表示在该列中某个给定值允许出现多次。

Default:表示该列是否有默认值。如果有,是多少。

Extra:表示可以获取的给定列有关的附加信息,例如AUTO_INCREMENT等。

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

SHOW CREATE TABLE 语句用来显示创建表时的CREATE TABLE语句,语法格式如下:

SHOW CREATE TABLE;

使用SHOW CREATE TABLE语句,不仅可以查看创建时候的详细语句,而且还可以查看存储引擎和字符编码

PS:

如果不佳“\G”参数,显示的结果可能非常混乱,加上参数“\G”之后,可使显示结果更加直观,易于观察。

修改数据表

1、修改表名

MySQL是通过ALTER TABLE语句来实现表名的修改的,具体的语法规则如下:

ALTER  TABLE    RENAME  TO  ;

其中TO为可选参数,使用与否均不影响结果。

范例:

将数据表department改名为dept

alter table department rename dept;

可以使用DESC查看修改前后两个表的结构,修改表名并不修改表结构,因此修改名称后的表和修改之前的表结构是完全相同的。

2、修改字段的数据类型

修改字段的数据类型就是把字段的数据类型转换成另一种数据类型。在MySQL中修改字段数据类型的语法规则如下:

ATTER  TABLE    MODIFY

范例:

将数据表department2中的name字段的数据类型有VARCHAR(22)修改成VARCHAR(30)。

alter table department2 modify name varchar(30);

3、修改字段名

MySQL中修改字段名的语法规则如下:

ALTER  TABLE    CHANGE

其中,“旧字段名”是指的修改前的字段名;“新字段名”指修改后的字段名;“新数据类型”指的是修改后的数据类型;如果不需要修改字段的数据类型,可以将新数据类型设置成与原来一样即可,但是数据类型不能为空。

范例:

将数据表department字段location改名为local,数据类型保持不变,SQL语句如下:

alter table department change location local varchar(50);

4、添加字段

添加字段语法格式如下:

ALTER  TABLE    ADD      [约束条件]  [FIRST |  AFTER已存在的字段名] ;

新字段名为需要添加的字段名称;“FIRST”为可选参数,其作用是将新添加的字段设置为表的第一个字段;“AFTER”为可选参数,其作用是将新添加的字段添加到指定的“已存在字段名”的后面。如果SQL语句中没有“FIRST”、“AFTER”这两个参数,则默认将这个字段放在数据表的最后列。

A、添加无完整性约束的字段

范例:在数据表department中添加一个没有添加完整性约束的INT类型的字段managerId(部门经理编号),SQL语句如下:

ALTER  TABLE  department  ADD  managerId  INT(10);

B、添加有完整性约束的字段

范例:在数据表department中添加一个不能为空的VARCHAR(25)类型的字段column1,SQL语句如下:

ALTER TABLE department ADD column1 VARCHAR(12) NOT NULL;

C、在表的第一列添加一个字段

范例:

在数据表department中添加一个INT类型的字段column2,SQL语句如下

alter table department add column2 int(10) first;

D、在表的指定列之后添加一个字段

范例:

在数据表department中添加一个恶INT类型的字段column3在column2列之后。

alter table department add column3 int(10) after column2;

5、删除字段

删除字段是将数据表中的某个字段从表中删除,语法格式为:

ALTER  TABLE    DROP

范例:

删除数据表department中column2字段

alter table department drop column2;

6、修改字段的排列位置

语法格式:

ALTER  TABLE    MODIFY      FIRST|AFTER

“字段1”值要修改位置的字段,“数据类型”值“字段1”的数据类型,“FIRST”为可选参数,指“字段1”修改为表的第一个字段,“AFTER字段2”指的是将“字段1”插入到“字段2”后面。

A、修改字段为表的第一个字段

范例:

将数据表department中的column1字段修改为表的第一个字段,SQL语句:

alter table department modify column1 varchar(12) first;

B、修改字段到表的指定列之后

范例:

将数据表department中的column1字段修改为表的managerId字段的后面。SQL语句如下:

alter table department modify column1 varchar(12) after managerId;

7、修改表的存储引擎

存储引擎是MySQL中的数据存储在文件或者内存中时采用的不同技术实现。MySQL中主要的存储引擎有:MyISAM、InnoDB、MEMORY、BDB、FEDERATED等。可以使用SHOW ENGINES;语句查看系统支持的存储引擎。

更改表的存储引擎的语法格式如下:

ALTER  TABLE    ENGINE=;

范例:

将数据表student的存储引擎修改为MyISAM。

8、删除表的外键约束

删除外键的语法:

ALTER  TABLE    DROP  FOREIGN  KEY

范例:

创建employee9

create table employee9

(

id INT(11) primary key ,

name varchar(20),

deptId INT(11),

salary float,

constraint fk_emp_dept foreign key(deptId) references department(id)

);

删除外键

alter table employee9 drop foreign key fk_emp_dept;

删除数据表

1、删除没有被关联的表

MySQL中,使用DROP TABLE可以一次删除一个或多个没有被其他表关联的数据表。语法格式:

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

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

数据表之间存在外键关联的情况,如果直接删除父表,结果会显示失败。原因是直接删除,将破坏表的参照完整性。

如果一定要删除,可以先删除与之关联的子表,在删除父表,只是这样同时删除了两个表中的数据。如果要将子表保留,这是要单独删除父表,只需将关联的表的外键约束条件取消,然后删除父表

范例:

创建dept表

create table dept(id INT(11) primary key ,name varchar(10),location varchar(30));

创建emp表

create table emp

(

id INT(10) primary key,

name varchar(20),

deptId INT(10),

constraint fk_emp_dept foreign key(deptId) references dept(id)

);

修改外键关联

alter table emp drop foreign key  fk_emp_dept;

删除dept表

drop dept;

mysql自学完整_MySQL自学篇(三)相关推荐

  1. mysql自学教学_MySQL自学篇(三)_MySQL

    查看数据表结构 使用SQL语句创建好数据表之后,可以查看表结构的定义,以确定表的定义是否正确.在MySQL中,查看表结构可以使用DESCRIBE 和 SHOW CREATE TABLE语句. 1.查看 ...

  2. 高级mysql优化知识_MySQL高级第三篇(索引优化分析)

    使用explain查看sql执行计划进行优化 使用方法,explain+sql语句,如:explain select * from student where id>10 执行计划字段 名次解释 ...

  3. MySQL数据类型特征_Mysql学习(三)数据类型_mysql

    mysql学习(3)数据类型 数据类型 数据类型是指.存储过程参数.表达式和局部变量的数据特征, 它决定了数据的存储格式,代表了不同的信息类型. 整型 Tinyint      有符号位 -128到1 ...

  4. mysql 内存引擎_MySQL常见的三种存储引擎(InnoDB、MyISAM、MEMORY)

    MySQL是我们经常使用的数据库处理系统(DBMS),不知小伙伴们有没有注意过其中的"存储引擎"(storage_engine)呢?有时候面试题中也会问道MySQL几种常用的存储引 ...

  5. mysql快速入门_MySQL快速入门(三)

    1. 性能优化 1.1  MySQL索引 什么是索引? 索引是一种特殊的文件(InnoDB数据表上的索引是表空间的一个组成部分),它们包含 着对数据表里所有记录的引用指针.更通俗的说,数据库索引好比是 ...

  6. mysql安装方法_MySQL安装的三种方式

    MySQL安装的三种方式 Mysql安装方式对比 安装方式 安装简易度 使用简易度 定制化程度 适合范围 rpm包安装 简单 简单 低 仅适合redhat/centos系列linux 二进制安装 安装 ...

  7. mysql 注册驱动_Mysql注册驱动三种方法 | 学步园

    考量了许久,决定把最近学的jdbc坐下总结,慢慢来吧,一天总结一小点,既然拖了那么久. 好,下面开始总结.(这里以mysql数据库为例) 首先就要说的是jdbc中注册驱动,首先导入对应的包,例如mys ...

  8. mysql事务服务_MySQL (事务篇)

    1.事务内,存在两条sql语句,第一条执行成功了,第二条执行失败了,commit之后,什么结果? 结果:第一条执行成功,第二条执行失败,不进行回滚 注意:MySQL 中的回滚,必须人为去做,在PHP ...

  9. mysql分析日志_MYSQL 索引(三)--- SQL日志分析

    慢查询日志 Mysql 的慢查询日志是 Myql 提供的一种日志记录,用来记录在 Myql 中响应时间查过阈值的语句,具体指运行时间超过 long_query_time 值的 SQL,则会被记录在日志 ...

  10. 阿里云装mysql选择版本_mysql学习之-三种安装方式与版本介绍

    MYSQL版本介绍 mysql分alpha,beta,rc,GA四个版本. alpha  暗示这是一个以展示新特性为目的的版本,存在比较多的不稳定因素,还会向代码中添加新新特性 beta 以后的bet ...

最新文章

  1. hadoop 安全模式
  2. conda (picard)
  3. 面向对象编程(第四篇)
  4. php中日期选择代码,实现JS日期时间选择器
  5. Swift与Objective-C的对比
  6. 三大运营商将解决新老用户套餐不同权问题;罗永浩与抖音合作;Git 2.26发布 | 极客头条...
  7. Vue模板 script部分
  8. 计算机设备管理程序在哪,设备管理器在哪里查找?如何打开?
  9. ENVI Flaash大气校正与6S大气校正(TM为例)
  10. Git merge分支到master
  11. [Linux_Ubuntu13] 声音很小前台无法调节的处理方法
  12. 人工智能:禁忌搜索算法概述
  13. imageAI基本使用
  14. 用牛顿法求算术平方根python
  15. 个人技术博客的选择:CSDN、博客园、简书、知乎专栏、Github、新浪、个人建站等?
  16. Python效率之王之多进程和多线程详解
  17. 圆角矩形大小怎么调整html,html圆角矩形
  18. unity - 二进制文件操作-存储与读取
  19. c语言输入坐标求距离,计算两个经纬度之间距离的C语言代码
  20. windows通过浏览器远程连接Linux服务器的jupyter

热门文章

  1. Docker 管理之 --- 资源限制
  2. ideaIU-2021.3配置Git/SVN
  3. android截屏保存目录,Android实现截屏,将截图文件保存到本地文件夹
  4. slk文件(QQ or 微信) 转为 mp3
  5. Tmall商城系统后台管理订单模块分析
  6. 电磁流量计 ADMAG AXG系列
  7. 4600万台销量!树莓派炼成之路
  8. R语言基础数据分析——双因素方差分析
  9. 使用JS代码将steam喜加一的免费游戏删除。
  10. 华为云计算论述题解析(1)