SHOW CREATE TABLE 表名\G前言

前面在数据库的讲解中,其实很多东西都非常的细节,在以前的学习过程中我都是没有注意到的。可能在以后的工作中会碰到所以都是做了记录的。

接下来,我将分享的是MySQL的DDL用来对数据库及表进行操作的。

  mysql中保存了很多数据库、一个数据库中可以保存很多表。

  对数据表的增(创建表)删(删除表)改(修改表字段)查(查询表结构)。  注意:这里的操作对象是表,对表的操作也就是表的结构,和表中的字段的操作(字段和记录要分清楚)

  前提:表是在数据库下的,所以要先确实使用哪个数据库。

一、create

  1.1、创建数据库

    create database db_name[character set=utf8]

  1.2、创建数据表

    create table tbl_name [engine=innodb character set=UTF8];

    1)格式

              CREATE TABLE 数据表名(

                    字段名1  数据类型[列级别约束条件],

                    字段名2  数据类型[列级别约束条件],

                    字段名3  数据类型[列级别约束条件]

               );     注意:格式不一定需要这样隔着写,完全可以全部写成一行。但是那样写可观性非常差。我这样写只是为了可以看的更清晰。

               解释:1、[]中括号中的内容表示可以有可以没有,2、列级别这个“列”一定要搞清楚说的是什么,一张表中有行有列,列表示竖,行表示横 

    2)创建一个没有约束的表

      

    3)对数据表进行查询

      3.1)查看表结构

        DESCRIBE 表名/DESC 表名  这两个的功能是一样的,简写了单词describe

        

      3.2)查看创建表的语句

        SHOW CREATE TABLE 表名;

        

        这样显示的格式很不好,看不清楚,所以有了下面这个语句

        SHOW CREATE TABLE 表名\G

        

二、alter

  修改数据表包括:对表中字段的增加、删除、修改。  在这个里面用的关键字为 ALTER

  2.1、修改数据表中的修改

  1)修改表名

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

    alter table student rename to student1;

    

  2)修改表中的字段

    格式:ALTER TABLE<表名> CHANGE<旧字段名><新字段名><新数据类型>

    alter table student change name sname varchar(30);    

  3)修改表中的数据类型

   格式:ALTER TABLE<表名> MODIFY<字段名><数据类型>

    alter table student modify sname varchar(50);

  解释:只能修改字段名的数据类型,但是其原理跟上面change做的事情一样,这里也有修改字段名的过程,只不过修改后的字段名和修改前的字段名相同,但是数据类型不一样。

  3)修改字段的排列顺序

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

       解释:将字段1的位置放到第一,或者放到指定字段2的后面

       alter table student modify sname varchar(50) after address;

    方式2:ALTER TABLE<表名> CHANGE<字段1><字段2><数据类型> FIRST|AFTER<字段3> 

           解释:其实是一样的,将是字段2覆盖字段1,然后在进行排序

      alter table student change sname sname varchar(50) after address;

  CHANGE和MODIFY的区别?

    原理都是一样的,MODIFY只能修改数据类型,但是CHANGE能够修改数据类型和字段名,也就是说MODIFY是CHANGE的更具体化的一个操作。

    可能觉得用CHANGE只改变一个数据类型不太爽,就增加了一个能直接改数据类型的使用关键字MODIFY来操作。

    4)更改表中的引擎

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

  2.2、修改数据表的添加与删除

    1)添加字段

    格式:ALTER TABLE<表名称> ADD<新字段名><数据类型>[约束条件][FIRST|AFTER<已存在的表名>]

        解释:在一个特定位置增加一个新的字段,如果不指定位置,默认是最后一个。

      alter table student add age int;

      

    2)删除字段

      格式:ALTER TABLE<表名称> DROP<字段名>;

      

    3)删除表的外检约束

      格式:ALTER TABLE<表名称> DROP FOREIGN KEY<外键约束名>

      注意:外键约束名 指的不是被外键约束修饰的字段名,切记,而是我们在创建外键约束关系时取的名字。

三、drop

  3.1、删除无关联的表

    格式:DROP TABLE<表名>;

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

    这个是比较重要的一点,在有外键关联关系的两张表中,如果删除主表,那么是删不掉的,并且会报错。因为有张表依赖于他。那怎么办呢?针对这种情况,总共有两种方法

       1)先删除你子表,然后在删除父表,这样就达到了删除父表的目的,但是子表也要被删除

       2)先解除外键关系,然后在删除父表,这样也能达到目的,并且保留了子表,只删除我们不需要的父表。在3.7中就讲解了如何删除外键关系。

  

    

  

  

  

    

    

MySQL(五)DDL(数据定义语言)的更多相关文章

  1. 【MySQL】DDL数据定义语言的基本用法create、drop和alter(增删改)

    DDL 的基础语法 文章目录 DDL 的基础语法 对数据库进行定义 对数据表进行定义 创建表结构(数据表) 设计工具 修改表结构 小结 参考资料 简单复习一波 SQL必知必会 DDL 的英文全称是 D ...

  2. MySQL之DDL数据定义语言:库、表的管理

    库的管理 常用命令 #创建库 create database if not exists 库名 [ character set 字符集名]; create database if not exists ...

  3. <MySQL>入门三 数据定义语言 DDL

    -- DDL 数据定义语言 /* 库和表的管理 一.库的管理:创建.修改.删除 二.表的管理:创建.修改.删除 创建:create 修改:alter 删除:drop */ 1.库的管理 -- 库的管理 ...

  4. mysql DDL数据定义语言

    DDL数据定义语言 本节涉及MySQL关键字:create.alter(rename,add,chang,modify,drop).drop.delete.truncate等. -- 创建表:-- 数 ...

  5. Hive 官方手册翻译 -- Hive DDL(数据定义语言)

    Hive DDL(数据定义语言) Confluence Administrator创建, Janaki Lahorani修改于 2018年9月19日 原文链接 https://cwiki.apache ...

  6. DDL数据定义语言

    DDL数据定义语言 (一)概述 DDL(Data Definition Language):数据定义语言,用来定义数据库对象,库.表.列等:创建.删除.修改 库,表结构.主要分为操作数据库的DDL和操 ...

  7. oracle学习笔记(三) DCL 数据控制语言与 DDL 数据定义语言

    DCL 数据控制语言 Data control language 之前说过的授权和收权利语句 grant, revoke DDL 数据定义语言 Data define language create ...

  8. sql 两大类 DDL数据定义语言 和DCL数据控制语言

    SQL分为五大类: DDL:数据定义语言   DCL:数据控制语言     DML:数据的操纵语言  DTL:数据事务语言  DQL:数据查询语言. DDL (date definition lang ...

  9. Oracle language types(语言种类) 表的相关操作 DDL数据定义语言

    数据定义语言 Data Definition Language Statements(DDL)数据操纵语言 Data Manipulation Language(DML) Statements事务控制 ...

  10. 【MySQL笔记】数据定义语言DDL

    1.创建基本表   create table <表名> (<列名><数据类型>[列级完整性约束条件]                                 ...

随机推荐

  1. 闭包(Closure)基础分析

    闭包(Closure) 本文聚焦于回答2个问题: 在全局作用域中,如何读取函数内部的局部变量? 在全局作用域中,如何修改函数内部的局部变量? 变量作用域 JavaScript语言的作用域,一句话概括就 ...

  2. 最小生成树详解 prim+ kruskal代码模板

    最小生成树概念: 一个有 n 个结点的连通图的生成树是原图的极小连通子图,且包含原图中的所有 n 个结点,并且有保持图连通的最少的边. 最小生成树可以用kruskal(克鲁斯卡尔)算法或prim(普里 ...

  3. 实例甜点 Unreal Engine 4迷你教程(5)之函数中的静态变量

    本小节的教程无前置教程,可直接学习,篇幅很短. 本教程浓缩起来就是一句话:函数中的静态变量在调试过程中保留值.所以需要谨慎对待. 什么意思?请先不要一步一步对着做,而整体地看一遍下面的过程: 第一步: ...

  4. K个最近的点

    前段时间在网上看到一些准备找工作的人会在LintCode上刷题,然后我今天上去看了一下,也打算开始做题,然后把每天做的题目和以后的优化记录下来. 2017年8月6日 21:17:27 第一题: 描述: ...

  5. zabbix_server---微信报警

    (1)         企业应用-创建应用 1.除了对个人添加微信报警之外,还可以添加不同管理组,接受同一个应用推送的消息, 成员账号,组织部门ID,应用Agent ID,CorpID和Secret, ...

  6. git分支管理之创建与合并分支

    在版本回退里,你已经知道,每次提交,Git都把它们串成一条时间线,这条时间线就是一个分支.截止到目前,只有一条时间线,在Git里,这个分支叫主分支,即master分支.HEAD严格来说不是指向提交,而 ...

  7. curl---一款实用的URL命令行网络通讯工具/库

    最近一段时间在看朴灵翻译的<深入浅出nodejs>,里面有提到一种脱离浏览器的客户端网络通讯工具,curl命令,自己在电脑上试了一下,感觉非常好用,而且莫名的感觉这是一个非常强大的网络工具 ...

  8. asp.net 动态压缩、切割图片,并做缓存处理机制

    在asp.net中,新建一个handler,把需要切割的网内图片,通过调用此URL来切割并缓存.http://localhost:53829/CacheImage/ResizeImage.ashx?s ...

  9. 【CPP】字符串和格式化输入输出

    前导:数组(array),字符串转换说明符%s,定义符号常量,,strlen()获取字符串长度,. [字符串] 没有专门的字符串类型,是吧他存储在字符型数组中,数组最后一个字符为空字符'\0',c用他 ...

  10. C++数组和指针加减法和sizeof问题

    关于指针和加减法: 指针的加减法:指针的加减法,加多少或者减多少,主要是看所指对象的sizeof值. 例子: double m = 3.0; ; double *p=&m; int* p1=& ...