数据库(SQL)代码编写(创建,删除,修改篇)(学习笔记)

SQL 代码编写(创建,删除,修改篇)

  • 了解SQL语言
  • SQL的数据定义语句
    • 数据库的创建
    • 模式的创建、删除
    • 表的创建、删除和修改
      • 设置主码,外码

了解SQL语言

  • SQL(Structured Query Language)结构化查询语言
  • SQL集数据查询(data query)、数据操纵(data manipulation)、数据定义(data definition)和数据控制(data control)功能于一体
  • SQL完成核心功能只用了9个动词
SQL功能 动词
数据查询 select
数据定义 create,drop,alter
数据操纵 insert,update,delete
数据控制 grant,revoke

SQL的数据定义语句

操作对象 创建 删除 修改
模式 create schema drop schema
create table drop table alter table
视图 create view drop view
索引 create index drop index alter index

数据库的创建

eg.新建一个数据库——学生管理系统

create database 学生管理系统

模式的创建、删除

  1. 定义模式
create schema<模式名> authorization<用户名>
//(如果没有指定<模式名>,那么<模式名>隐含为<用户名>)

eg.为用户wang定义一个学生—课程模式S-T

create schema"S-T" authorization wang;

2.删除模式

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

// cascade 和 restrict(默认值) 两者必选其一
// cascade(级联),删除模式的同时把**所有数据库对象全部删除** <!!慎用 !!>
// restrict(限制),如果该模式中已经定义了下属的数据库对象(如表、视图等),则**拒绝该删除语句的执行**

表的创建、删除和修改

1.定义基本表(创建)

create table<表名><列名><数据类型>[列级完整性约束条件]
	[,<列名><数据类型>[列级完整性约束条件]]
	...
	[,<表级完整性约束条件>];

eg.建立一个“课程”表course

create table course(
	cno char(4) primary key,		//列级完整性约束条件,cno是主码
	cname char(40) not null,		//列级完整性约束条件,cname不能取空值
	cpno char(4),				   //cpno的含义是先修课
	ccredit smallint,
	foreign key(cpno) references course(cno)		//表级完整性约束条件,cpno是外码,被参照表是course,被参照列是cno
);
//本例说明 参照表和被参照表可以是同一个表

数据类型

数据类型 含义
char(n),character(n) 长度为n的定长字符串
varchar(n),charactervarying(n) 最大长度为n的变长字符串
clob 字符串大对象
blob 二进制大对象
int,integer 长整数(4字节)
smallint 短整数(2字节)
bigint 大整数(8字节)
numeric(p,d) 定点数,由p位数字(不包括符号、小数点)组成,小数点后面有d位数字
decimal(p,d),dec(p,d) 同numeric
real 取决于机器精度的单精度浮点数
double precision 取决于机器精度的双精度浮点数
float(n) 可选精度的浮点数,精度至少为n位数字
boolean 逻辑布尔量
date 日期,包含年、月、日,格式为yyyy-mm-dd
time 时间,包含一日的时、分、秒,格式为:hh-mm-ss
timestamp 时间戳类型
interval 时间间隔类型

设置主码,外码

  • 设置主码(primary key)

     是为了防止有重复的数据,防止数据冗余,int是主码的数据类型,**一般会选用无实际意义的编号来设置主码**
    

eg.只有一个主码 和 联合做主码

//只有一个主码
create table student(
	sno char(10) primary key not null,		//只有一个主码
);
或
create table student(
	sno char(10) not null,
	primary key(sno),		//只有一个主码
);

//联合做主码
create table sc(
	sno char(10) not null,
	cno char(10) not null,
	primary key(sno,cno),		//联合做主码
);
  • 设置外码

     外码可以联系表与表之间的关系,外键来自另一个表的主码
    

eg.联合做主码,分别为外码

create table sc(
	sno char(10) foreign key references student(sno),	//分别为外码
	cno char(10) foreign key references course(cno),	//分别为外码
	grade int,
	primary key(sno,cno),	//联合做主码
)

2.修改基本表

alter table<表名>		//<表名>为要修改的基本表
[add [column] <新列表><数据类型> [完整性约束]]	//add字句用于添加新列
[add<表级完整性约束>]
[drop [column] <列名> [cascade|restrict]]	//drop[column]子句 用于删除表中的列
[drop constraint<完整性约束名> [restrict|cascade]]	//用于删除指定的完整性约束条件
[alter column <列名><数据类型>];		//修改原有的列定义,包括修改列名和数据类型

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

alter table student add s_entrance date;

eg.将年龄的数据类型由字符型改为整数

alter table student alter column sage int;

3.删除表

drop table <表名> [restrict|cascade];

eg.删除student表

drop table student cascade;

知识整理参考于——《数据库系统概论 第5版》高等教育出版社

你可能感兴趣的:(数据库,sql,学习)