• 周日. 11 月 10th, 2024

5G编程聚合网

5G时代下一个聚合的编程学习网

热门标签

数据库概述和DDL(数据库定义)

admin

11 月 28, 2021

1 数据库相关概念

1.1数据库概述

  数据库就是存储数据的仓库,其本质是一个文件系统,数据按照特定的格式将数据存储起来,用户可以对数据库中的数据进行增加,修改,删除及其查询操作。

1.2数据库管理系统(DataBase Management System,DBMS)

  一种操作和管理数据库的大型软件,用于建立、使用和维护数据库,对数据库进行统一管理和控制,以保证数据库的安全性和完整性。用户通过数据库管理系统访问数据库中表内的数据。

1.3常见的数据库管理系统

  Mysql 免费的,跨平台的:开源免费的数据库,小型的数据库,已经被Oracle收购了。

  Oracle 甲骨文,java写的:收费的大型数据库,Oracle公司的产品。Oracle收购SUN公司,收购Mysql。

  DB2 IBM的,java写的:IBM公司的数据库产品,收费的。常应用在银行系统中。

  SQL Server 微软的:MicroSoft 公司收费的中型数据库。C#、.net等语言常用

  Access office 里面自带的:

  SQLite android 里面的数据库:嵌入式的小型数据库,应用在手机端。

1.4基本概念

  DDL(data definition language)数据库定义语言:主要是用在定义或改变表得结构,数据类型,表之间的链接和约束等初始化工作上,如create、alter、drop等。

  DML(data manipulation language)数据操纵语言:主要用来对数据库的数据进行增删改查操作,如select、update、insert、delect等。

  DCL(data control language)数据库控制语言:是用来设置或更改数据库用户或角色权限的语句,如grant、deny、revoke等。

2 基本使用

2.1DDL

创建数据库:

create database <数据库名>;

删除数据库:

drop database <数据库名>;

定义模式:

create schema<模式名>authorization<用户名>;

删除模式:

drop schema<模式名><cascade|restrict>;

定义基本表:

1、创建学生表“student”

create table student(
sno char(9) PRIMARY KEY,   /*列级完整性约束条件,sno是主码*/
sname CHAR(20) UNIQUE,     /*sname取唯一值*/
ssex CHAR(2),
sage SMALLINT,
sdept CHAR(20)
);

 创建完成之后可以使用desc <表名>查看表整体架构

 2、建立课程表”course”

create table course(
cno CHAR(4) PRIMARY KEY,                  /*列级完整性约束条件,cno是主码*/
cname CHAR(40) NOT NULL,                  /*列级完整性约束条件,cname不能取空值*/
cpno CHAR(4),                             /*cpno的含义是先修课*/
credit SMALLINT,
FOREIGN KEY(cpno)REFERENCES course(cno)   /*表级完整性约束条件,cpno是外码,被参照表是course,被参照列是cno*/
);

 3、建立学生选课表“sc”

create table sc(
sno CHAR(9),
cno CHAR(4),
grade SMALLINT,
PRIMARY KEY (sno,cno),                     /*主码由两个属性构成,必须作为表级完整性进行定义*/
FOREIGN KEY(sno) REFERENCES student(sno),  /*表级完整性约束条件,sno是外码,被参照表是student*/
FOREIGN key(cno) REFERENCES course(cno)    /*表级完整性约束条件,cno是外码,被参照表是course*/
);

 修改基本表:

1、向”student”表增加”入学时间“l列,其数据类型为日期类型

alter table student
add s_entrance TIMESTAMP;

2、删除1中新加的列”s_entrance”

alter table student
drop COLUMN s_entrance;

3、修改”student”中的列名“s_entrance”为”s_time”

alter table student
change s_entrance s_time TIMESTAMP;

4、修改“student”中列”sage”的属性改为int

alter table student
MODIFY sage INT;

 5、修改表“student”中字段”sage“为默认值26

alter table student
alter sage set DEFAULT 26;

6、删除表”student”中字段“sage”的默认字段

alter table student
alter sage drop DEFAULT;

 7、删除表

drop table <表名> [RESTRICT|CASCADE];

  restrict:该表的删除是有条件的。想要删除的基本表不能被其他表的约束所引用(如check,foreign key等约束),不能有视图,不能有触发器(trigger),不能有存储过程或函数等。

  cascade:该表的删除没有限制条件,在删除基本表的同时,相关的依赖对象,例如视图,都将被一起删除。

发表回复