关联课件: 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的表(删除前需要先打开数据库)。
域的完整性:用Check来实现约束,在数据库设计工具中,对字段的取值范围进行定义时,有一个Check按钮,通 过它定义字段的值城。 参照完整性:用PK、FK、表级触发器来实现。 用户定义完整性:它是一些业务规则,用存储过程和触发器来实现。
防止数据库设计打补丁的方法是“三少原则” (1) 一个数据库中表的个数越少越好。只有表的个数少了,才能说明系统的E--R图少而精,去掉了重复的多余的 实体,形成了对客观世界的高度抽象,进行了系统的数据集成,防止了打补丁式的设计; (2) 一个表中组合主键的字段个数越少越好。因为主键的作用,一是建主键索引,二是做为子表的外键,所以组 合主键的字段个数少了,不仅节省了运行时间,而且节省了索引存储空间; (3) 一个表中的字段个数越少越好。只有字段的个数少了,才能说明在系统中不存在数据重复,且很少有数据冗 余,更重要的是督促读者学会“列变行”,这样就防止了将子表中的字段拉入到主表中去,在主表中留下许 多空余的字段。所谓“列变行”,就是将主表中的一部分内容拉出去,另外单独建一个子表。这个方法很简 单,有的人就是不习惯、不采纳、不执行。
方法独特,从中学到了很多。
对于数据定义语言讲的非常的到位
这么详细,想学不会都难
条理清晰,通俗易懂
DROP语句用来删除一个数据库或者一个表。如果是删除一个数据库,那么这个数据库下的所有表也将被删除。
这么详细,想学不会都难
内容详细易懂,感谢老师