1
2
3
4
5
6
7
8
9
10
11

SQL的数据定义语言

发布时间:2017-07-20 07:53   发布人:毛书朋   浏览次数:8369


关联课件:  3子项目三 - SQL的数据定义语言(点击在线预览)


3.3.3.2  数据定义语言(Create/Alter/Drop


1.CREATE/SHOW/USE语句

      CREATE语句可以用来创建新的数据库和表。SHOW语句用来显示当前所有数据库或当前数据库下的所有表。

      根据本章前面讲过的方法,打开命令提示符界面,输入用户名密码登录到MySQL控制台。登录到控制台后光标前面显示“mysql>”,在光标处可以直接输入SQL语句来操作数据库。下来来创建一个student的数据库。输入以下命令并回车。

mysql> CREATE  DATABASE  student;

      SQL语句可以用大写,也可以用小写,还可以大小写混合。本语句执行后会输出:

Query OK, 1 row affected (0.08 sec)

      这说明语句执行成功。一个名为student的数据库已经被创建成功。这时可以用以下命令来查看数据库是否已经被创建。

mysql> SHOW DATABASES;

       输入命令后回车,列出当前所有数据库。

mysql> show databases;

--------------------

| Database          |

--------------------

| information_schema |

| mysql             |

| student            |

| test               |

--------------------

4 rows in set (0.13 sec)

      可以看到,student数据库已经创建成功(information_schema、mysql、test三个数据库均为MySQL安装时自动创建的原始数据库)。

      继续用CREATE语句在student数据库中创建一个表info。这个表用来存储学生基本信息,一共有3个字段,分别是姓名(name)、性别(sex)、年龄(age)。这3个字段对应的数据类型分别为CHAR、CHAR、TINYINT,长度分别限制在20字节、2字节、2字节以内。

     在student数据库中创建表之前,需要首先打开这个数据库:

mysql> USE student;

     此语句用USE命令选定一个要操作的数据库。执行后显示“Database changed”,表示数据库已经打开。

     然后输入以下语句并回车:

mysql> CREATE TABLE info (name CHAR(20), sex CHAR(2), age TINYINT(2));

     注意每条SQL语句输入完毕后最后要输入“;”,表示输入完成。否则不论输入多少个回车此语句都不会执行,直到遇到分号结尾(也有极个别语句可以不加分号)。

      语句执行完毕后显示“Query OK, 0 rows affected (0.14 sec)”。表示语句执行成功。这时候表info已经创建成功。可以使用以下命令来查看student数据中现有的表。

mysql> SHOW TABLES;

      执行后显示:

-------------------

| Tables_in_student |

-------------------

| info              |

-------------------

1 row in set (0.00 sec)

       这时可以看到info表确实已经创建到了student数据库中。


2.ALTER语句

      ALTER语句用来修改一个表的定义,也就是说修改表自身。如修改表的名字,修改表中某个字段的名字、属性、类型等(也可以用于修改数据库的部分属性)。看下面的例子:

mysql> ALTER TABLE info CHANGE name xingming CHAR (20);

      本语句将表info的name字段名修改为xingming,类型和长度不变。又如:

mysql> ALTER TABLE info ADD addr CHAR (50);

      本语句在info表中又增加了一个名为addr,类型char,长度为50的新字段。

mysql> ALTER TABLE info DROP addr;

      本语句删除了表info中的addr字段。


3.DROP语句

      DROP语句用来删除一个数据库或者一个表。如果是删除一个数据库,那么这个数据库下的所有表也将被删除。例如:

mysql> DROP DATABSE D1;

      删除名为D1的数据库。

mysql> DROP TABLE tbl1;

      删除名为tbl1的表(删除前需要先打开数据库)。




  • 刘普敏 2018-01-07 15:35:17
    域的完整性:用Check来实现约束,在数据库设计工具中,对字段的取值范围进行定义时,有一个Check按钮,通   过它定义字段的值城。   参照完整性:用PK、FK、表级触发器来实现。   用户定义完整性:它是一些业务规则,用存储过程和触发器来实现。
  • 刘普敏 2018-01-07 15:35:37
    防止数据库设计打补丁的方法是“三少原则”    (1) 一个数据库中表的个数越少越好。只有表的个数少了,才能说明系统的E--R图少而精,去掉了重复的多余的     实体,形成了对客观世界的高度抽象,进行了系统的数据集成,防止了打补丁式的设计;    (2) 一个表中组合主键的字段个数越少越好。因为主键的作用,一是建主键索引,二是做为子表的外键,所以组     合主键的字段个数少了,不仅节省了运行时间,而且节省了索引存储空间;    (3) 一个表中的字段个数越少越好。只有字段的个数少了,才能说明在系统中不存在数据重复,且很少有数据冗     余,更重要的是督促读者学会“列变行”,这样就防止了将子表中的字段拉入到主表中去,在主表中留下许     多空余的字段。所谓“列变行”,就是将主表中的一部分内容拉出去,另外单独建一个子表。这个方法很简     单,有的人就是不习惯、不采纳、不执行。
  • 刘鑫蕊 2018-01-09 16:06:55
    方法独特,从中学到了很多。
  • 岳猛 2018-01-09 16:09:41
    对于数据定义语言讲的非常的到位
  • 魏德旺 2018-01-09 16:19:21
    这么详细,想学不会都难
  • 甄丹丹 2018-01-09 16:27:43
    条理清晰,通俗易懂
  • 李倩文 2018-01-10 11:49:51
    DROP语句用来删除一个数据库或者一个表。如果是删除一个数据库,那么这个数据库下的所有表也将被删除。
  • 班荣芳 2018-01-10 11:57:03
    这么详细,想学不会都难
  • 杨宇生 2018-01-10 19:19:53
    内容详细易懂,感谢老师