前言

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

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

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

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

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

  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)创建一个没有约束的表

      MySQL(五)之DDL(数据定义语言)与六大约束

    3)对数据表进行查询

      3.1)查看表结构

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

        MySQL(五)之DDL(数据定义语言)与六大约束

      3.2)查看创建表的语句

        SHOW CREATE TABLE 表名;

        MySQL(五)之DDL(数据定义语言)与六大约束

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

        SHOW CREATE TABLE 表名\G

        MySQL(五)之DDL(数据定义语言)与六大约束

二、DDL之alter

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

  2.1、修改数据表中的修改

  1)修改表名

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

    alter table student rename to student1;

    MySQL(五)之DDL(数据定义语言)与六大约束

  2)修改表中的字段

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

    alter table student change name sname varchar(30);    

MySQL(五)之DDL(数据定义语言)与六大约束

  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;

      MySQL(五)之DDL(数据定义语言)与六大约束

    2)删除字段

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

      MySQL(五)之DDL(数据定义语言)与六大约束

    3)删除表的外检约束

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

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

三、DDL之drop

  3.1、删除无关联的表

    格式:DROP TABLE<表名>;

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

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

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

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

四、数据表中的约束

  4.1、主键约束

    PRIMARY KEY(primary key):独一无二(唯一)和不能为空(非空),通俗的讲,就是在表中增加记录时,在该字段下的数据不能重复,不能为空,比如以上面创建的表为例子,在表中增加两条记录,如果id字段用了主键约束。

                  则id不能一样,并且不能为空。一般每张表中都有一个字段为主键,唯一标识这条记录。以后需要找到该条记录也可以同这个主键来确认记录,因为主键是唯一的,并且非空,一张表中每个记录的主键度不一样,

                  所以根据主键也就能找到对应的记录。而不是多条重复的记录。如果没有主键,那么表中就会存在很多重复的记录,那么即浪费存储空间,在查询时也消耗更多资源。

          一般被主键约束了的字段度习惯性的称该字段为该表的主键

    1)单字段主键约束      

      格式一:
      create table student(
        id int(20) primary key,
        name varchar(50),
        password varchar(30));
      格式二:
      create table student(
        id int(20),
        name varchar(50),
        password varchar(50),
        primary key(id));
实例

相关文章:

  • 2021-08-27
  • 2022-01-21
  • 2021-12-29
  • 2022-12-23
  • 2021-12-08
  • 2022-12-23
  • 2021-10-14
  • 2021-05-01
猜你喜欢
  • 2021-05-22
  • 2021-09-14
  • 2021-09-10
  • 2021-10-29
  • 2022-12-23
  • 2021-09-21
相关资源
相似解决方案