网站如何设置默认首页,有关做详情页的参考网站,网站推广活动策划,网站开发长期合作标签#xff1a;数据库
记录下DDL和DML的相关概念。 数据定义语言 定义数据库模式 数据定义语言DDL(Data-Definition Language)可定义数据库模式。数据库模式在之前的文章中已经提到过了。简单来说#xff0c;建表用的SQL语句就是DDL。如下代码
CREATE TABLE department(de…标签数据库
记录下DDL和DML的相关概念。 数据定义语言 定义数据库模式 数据定义语言DDL(Data-Definition Language)可定义数据库模式。数据库模式在之前的文章中已经提到过了。简单来说建表用的SQL语句就是DDL。如下代码
CREATE TABLE department(dept_name char(20),building char(15),budget numeric(12,2));
这个SQL语句便定义了一张“department”表。并定义了该表有三个列以及与该列相关的数据类型。 为什么要有DDL呢之前提到数据库模式的时候有说过模式是预先设计好的。比如上面这个department表按照生活常识来讲部门名字不会是单个数字而预算金额一般是纯数字。所以我们限制“dept_name”列的数据类型为char”budget“列的数据类型为numeric数字的。
结合生活经验也能知道存储在数据库中的数据值都必须要满足某些一致性约束。除了程序员规定的一致性约束之外数据库系统本身实现的则为数据完整性约束。 写者注 一致性约束比如我们规定一个人的姓名不允许为“123”。如果出现了该情况表明有错误的数据此处为错误的数据类型进入到了姓名数据库中导致该数据和该数据库的约束”不一致“。 域约束(domain constraint)每个数据必须对应一个所有可能取值构成的域。域约束也是完整性约束的最基本形式。引用完整性(referential integrity)举个例子。你考完驾照后在驾照的数据库假设有的话中会录入你的名字Yname。此前在公安局那边的人口数据库中也应该有你对应的YName。简单来说你驾照上的名字必须是人口数据库中真实存在的你驾照上的名字实际上是引用了人口数据库中的“Name”列中的值。授权(authorization)不同用户对于数据库的不同数据有不同的访问权限。这个也很好理解。比如你只能读取你银行卡有多少钱但不能直接修改你的银行卡金额也不能删除别人的银行卡账户。 数据操纵语言 访问或操控数据 如果说DDL是总工程师那数据操控语言DML(Data-Manipulation Language)就是下面搬砖的。
DML有以下几种访问类型
对存储在数据库中的信息进行检索向数据库插入新的信息删除数据库中的信息修改数据库中的信息
DML有以下两种类型
过程化的DML(procedural DML)要求用户指定需要什么数据以及如何获得这些数据。声明化的DML(declarative DML)也称为非过程化的DML。只要求用户指定需要什么数据。
很明显后者比过程化的DML简单我们在SQL中最常用的“查询语句“(query language)就是非过程化的DML。比如下面这段最直接的查询代码
SELECT * FROM department;
在mysql中试一下效果如图 而过程化的DML在Oracle那块的PL/SQL“貌似”经常被提及以后碰到再记录吧。 写者注 去博客园上也没找到专门说“过程化DML”的文章。虽然我个人认为像SELECT这种应该算过程化的DML因为要指明从哪个表获取数据。但心里还是没个底。