您的位置:首页 > 数据库 > MySQL

MySQL(三)之SQL语句分类、基本操作、三大范式

2017-09-07 21:27 567 查看

一、SQL语句的分类

DML(Data Manipulation Langauge,数据操纵/管理语言) (insert,delete,update,select)

DDL(Data Definition Language,数据定义语言) (create,drop,alter)

DCL(Data Control Language,数据控制语言) grant(授权),revoke(撤销权限)

TCL(Transaction Control Language,事务控制语言) commit(提交事务),rollback(回滚事务)

二、数据库的基本操作

2.1、show命令了解数据库

1) show databases [like “%te%”];
查看当前连接的MySQL服务器上的所有数据库名
注意:MySQL在创建一个数据库时,就会在MySQL的安装目录下的data目录中生成和该数据库同名的目录。
2)show tables [from db_name][like “%b%”];
查看当前所操作的数据库中的所有表的名字
3)show columns from tbl_name;
查看某个表中的所有字段/列名
注意:这个作用等同于desc
4)show index from tbl_name;
查看某一张表中的所有索引
5)show status;
查看MySQL服务器的状态信息

例----S1(SNO,SNAME,DNO, DNAME, LOCATION)

学号 姓名 所在系 系名称 系地址
关键字SNO决定各个属性。由于是单个关键字,没有部分依赖的问题,肯定是2NF。但这关系肯定有大量的冗余,有关学生所在的几个属性DNO,DNAME,LOCATION将重复存储,插入,删除和修改时也将产生类似以上例的情况。
原因:关系中存在传递依赖造成的。即SNO 1->1 DNO。 而DNO 1->n SNO却不存在, 而DNO -> LOCATION存在, 因此关键辽 SNO 对 LOCATION 函数决定是通过传递依赖 SNO -> LOCATION 实现的。也就是说,SNO不直接决定非主属性LOCATION。
解决目地:每个关系模式中不能留有传递依赖。
解决方法:分为两个关系 S(SNO,SNAME,DNO),D(DNO,DNAME,LOCATION)
注意:关系S中不能没有外关键字DNO。否则两个关系之间失去联系


实例3
  第二范式(2NF)和第三范式(3NF)的概念很容易混淆,区分它们的关键点在于,2NF:非主键列是否完全依赖于主键,还是依赖于主键的一部分;3NF:非主键列是直接依赖于主键,还是直接依赖于非主键列。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: