SQL基础——DDL

SQL基础——DDL

初识ddl

DDL 即数据定义语言,是对数据库中的各种对象(表格,视图)进行创建等操作,也就是对表格的框架进行控制和操作。其中包含create(创建表格),alter(修改表格)和drop(删除表格)。

创建表格

我们用create 语句来创建一个表格,下面我们来创建一个表名为‘student’的表格。

create table student(
	s_id number(4)  primary key ,	
    s_name varchar2(5 char)  not null,
    s_gender  char(3)  check(s_gender in ('男','女')),
    s_age  number(2)   check(s_age between 15 and 45),
    s_date date,
    s_dept  varchar2(20) default('计算机系')
)

上面就是我们创建的一个student 表格,点击左上角的齿轮就可以添加了。齿轮就是程序运行,之后的操作也是需要点击齿轮,才可以看到效果的。下面我们以student表为例来详细了解下表格的创建。

创建表格的样式

创建表格都是按照 ‘create table 表名 ( 字段名 类型 约束 )’ 来创建的。像上面的student就是表名。

小括号中可以添加多个内容,作为表的列名显示在表格上,每一个定义好的 ‘列名’后面加逗号最后一个不加逗号。这样一个表格就创建好了。

小括号中的‘s_id’我们叫它 字段名number(4) 叫它 类型primary key 叫它 约束

类型

像是字段名就和我们平时建表格起的表头一样,只要见名知意,避免使用关键字 就可以了。

下面主要讲下类型。

我们可以从图中看到有 number 、char、varchar2,date,这四种基本的类型,也是我们常用的类型。后面跟的括号里面填写限制的字节数,number(4) 就是4个数字以下。

number就是数字类型,可以是整数,也可以是小数。因为一个数字是一个字节,即括号中限制数字的位数。

charvarchar2 都是字符型的,在这一列中是输入字符串的,我们在插入数据时,这一列也是要用单引号引起来才可以插入数据。后面的括号也是限制字节的,但是一个中文在 ‘utf-8’中是占3个字节的,所以一个中文是在utf-8的环境下是3个字节。其中还有一种形式 是**(3 char )这种的,这种事不管是否是中文,都是3个字**。

char 是定长字符串,即后面的括号中是几,就必修输入对应的字节数。varchar2是可变长字符串,后面括号跟的是最多的字节数。

date是日期的类型。

约束

我们在类型中可以限制一些字节的长度,但这远远是不够的。因此约束条件进一步限制和约束输入数据。约束不是必须要的,有些可以不给约束。

主要约束

primary key主键约束,特性是唯一加非空,也就是此列必须有值,且不能为空值。

not null非空约束,后面不能为空,null是空值得意思。

unique唯一约束,后面的值必须是唯一的,不能重复。

default默认约束,后面跟一个默认值,但插入的数据为空的时候,显示默认值。

check检查约束,可以检查插入的数据是否满足check的条件。

foreign key外键约束 ,当这个表有数据时引自其他表时,使用外键约束。常表示为"

s_id number(4) references  class(c_id)

"* 即student 的 s_id引自 class 表的 c_id。references 是引用的意思。

定义约束名

约束也可以自己定义约束名,当报错时可以更快的让我们找到是哪里出了错误。我们可以在用constraints +定义的约束名 +约束来实现。

例如

s_id  number(5) constraints pk_student primary key

修改

修改是用alter 来进行操作的,一般是修改表名,修改表结构 , 删除增加约束

如下面的代码,先建立有关联的clazz(班级表,主表)和student1(学生表,从表)。

--在表结构结束之后,追加约束
create table clazz(
       cid number(5),
       cname varchar2(15)
);

--学生表
create table student1(
       sid number(5) primary key,
       sname varchar2(15),
       sage number(3),
       --学生所在班级id字段能出现的值,必须是班级表的主键cid字段已存在的值
       --外键约束  参考哪一个张表的哪一个主键字段
       --cid number(5) references clazz(cid)  不指定约束名
       cid number(5),-- constraint fk_cid  references clazz(cid)
       constraint fk_cid_clazz_cid foreign key(cid) references clazz(cid)
)

修改表结构

alter table clazz add constraints pk_clazz_id primary key(cid);
alter table clazz add constraints clazz_name_not_null check(cname is not null);
alter table student add constraints fk_cid_clazz_cid foreign key(cid) references clazz(cid);

删除

删除即删除表结构,用drop来实现。

drop table student;

是删除整张student表。

删除表结构

当有主从表关联的时候,从表是可以删除的,但主表并不是可以随便就能够直接删除的,一般有两种方式删除

先删除从表,再删除主表 默认

顾名思义,从表删除了,主表与从表的关联也就消失了,这时就可以删除主表了

删除主表的同时,级联删除与从表之间的主外键约束

级联删除了两者之间的主外键约束,也就是主表与从表失去了主从表关系,就可以删除主表了。

drop table school cascade constraints;


上面的就是ddl的部分了,当然这正是基础中的基础,我选择了这一条道路,也会和各位共勉,一起学习,共同成长的。

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值