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. [NOI2005] 维护数列

    [NOI2005] 维护数列 题目 传送门 请写一个程序,要求维护一个数列,支持以下 6 种操作:(请注意,格式栏 中的下划线‘ _ ’表示实际输入文件中的空格) 操作编号 输入文件中的格式 说明 1 ...

  2. python爬取百度搜索结果ur汇总

    写了两篇之后,我觉得关于爬虫,重点还是分析过程 分析些什么呢: 1)首先明确自己要爬取的目标 比如这次我们需要爬取的是使用百度搜索之后所有出来的url结果 2)分析手动进行的获取目标的过程,以便以程序 ...

  3. java_弹球小游戏

    弹球游戏实现原理: 隔一定时间(小于1秒)重新绘制图像,因为Graphics类是一个抽象类,创建子类的时候需要把所有涉及的方法都得重写,所以这里使用的是创建Canvas的子类,只需要重写它的paint ...

  4. hdu--1548--dfs--蜘蛛牌

    /* Name: hdu--1548--蜘蛛牌 Author: shen_渊 Date: 17/04/17 09:15 Description: dfs,不好想,看两个大神的代码好久http://ww ...

  5. Can not issue data manipulation statements with executeQuery().解决的方法

    query是查询用的,而update是插入和更新,删除修改用的. executeQuery()语句是用于产生单个结果集的语句,如select语句,在什么情况下用,当你的数据库已经保存了数据后,要进行查 ...

  6. Hello world! My first blog!

    Hello world! My first blog!

  7. 解决百度BMR的spark集群开启slaves结点的问题

    前言 最近一直忙于和小伙伴倒腾着关于人工智能的比赛,一直都没有时间停下来更新更新我的博客.不过在这一个过程中,遇到了一些问题,我还是记录了下来,等到现在比较空闲了,于是一一整理出来写成博客.希望对于大 ...

  8. Javascript随笔2(JQuery)

    1.jQuery 语法 Tips: 通过 CDN(内容分发网络)引用JQuery:(link的引用最好放在script的引用之前) <script src="http://apps.b ...

  9. Linux - 简明Shell编程13 - 用户输入(UserInput)

    脚本地址 https://github.com/anliven/L-Shell/tree/master/Shell-Basics 示例脚本及注释 1 - arguments #!/bin/bash i ...

  10. layer弹出层传值到父页面

    目前做的项目中用到layer弹层传值,弹层输入框输入文本,点击确定按钮,父页面的树结构,会自动添加分组. 在此粘贴下代码,以后遇到,方便回忆,如有疑问请留言,或许会为您解答 $(document).r ...