美文网首页程序员
SQL——SQL数据定义

SQL——SQL数据定义

作者: 薛定谔与猫的故事 | 来源:发表于2018-03-28 09:39 被阅读0次

1.基本类型

char(n):

固定长度的字符串,用户指定长度n,也可使用全程character。

varchar(n):

可变长度的字符串,最大长度为n,等价于全程character varying。

int:

整数类型(和机器相关的整数的有限子集),等价于全程integer。

smallint:

小整数类型(和机器相关的整数的有限子集)。

numeric(p,d):

定点数,精度由用户指定。这个数有p为数字(加上一个符号位),其中d数字在小数点右边。例如numeric(3,1)可以存储44.5,但不可以存储444.5或者0.32这样的数。

real,double precision:

浮点数和双精度浮点数,精度与机器相关。

float(n):

精度至少为n为的浮点数。

2.基本模式定义

1.创建表,或者说创建一个关系:

1)创建表的通用形式如下:

create table 表名(
属性名 属性的域,
……
<完整性约束>,
……
);

2)示例:
# 创建一个系的表
#表包含系名,系所在建筑名,系的投资
#主键,或者说唯一标识,为dept_name,用形如 primary key (attribute_name1,attribute_name2,...)定义那些属性是主码
CREATE TABLE department(
  dept_name VARCHAR(20),
  building VARCHAR(15),
  budget NUMERIC(12,2),
  PRIMARY KEY (dept_name)
);
# 课程表
CREATE TABLE course(
  course_id VARCHAR(7),
  title VARCHAR(50),
  dept_name VARCHAR(20),
  credits NUMERIC(2,0),
  PRIMARY KEY (course_id),
#   定义参照的外键
  FOREIGN KEY (dept_name )REFERENCES department(dept_name)
);
CREATE TABLE instructor(
  id VARCHAR(5),
#   not null 表明该属性的值不能为空
  name VARCHAR(20) NOT NULL ,
  dept_name VARCHAR(20),
  salary NUMERIC(8,2),
  PRIMARY KEY (id),
  FOREIGN KEY (dept_name) REFERENCES department(dept_name)
);

CREATE TABLE section(
  course_id VARCHAR(8),
  sec_id VARCHAR(8),
  semester VARCHAR(6),
  year NUMERIC(4,0),
  building VARCHAR(15),
  room_number VARCHAR(7),
  time_slot_id VARCHAR(4),
  PRIMARY KEY (course_id,sec_id,semester,year),
  FOREIGN KEY (course_id)REFERENCES course(course_id)
);

CREATE TABLE teaches(
  id VARCHAR(5),
  course_id VARCHAR(8),
  sec_id VARCHAR(8),
  semester VARCHAR(6),
  year NUMERIC(4,0),
  PRIMARY KEY (id,course_id,sec_id,semester,year),
  FOREIGN KEY (course_id,sec_id,semester,year) REFERENCES section(course_id, sec_id, semester, year),
  FOREIGN KEY (id) REFERENCES instructor(id)
);
CREATE TABLE student(
  id VARCHAR(7),
  name VARCHAR(8) NOT NULL ,
  dept_name VARCHAR(20),
  tol_cred NUMERIC(3,0),
  PRIMARY KEY (id),
  FOREIGN KEY (dept_name) REFERENCES department(dept_name)
);
CREATE TABLE takes(
  id VARCHAR(7),
  course_id VARCHAR(8),
  sec_id VARCHAR(8),
  semester VARCHAR(6),
  year NUMERIC(4,0),
  grade NUMERIC(3,0),
  PRIMARY KEY (id,course_id,sec_id,semester,year),
  FOREIGN KEY (id) REFERENCES student(id),
  FOREIGN KEY (course_id,sec_id,semester,year) REFERENCES section(course_id, sec_id, semester, year)
);

2、向表中插入一个元组(或者说插入一行数据):

1)通用形式:

insert into 表名(属性名,……) values(对应属性值,……);
如果要插入的元组数据包含了所有属性,则可以简写为
insert into 表名 values(属性值,……);

2) 示例(向表instructor中插入数据):
INSERT INTO instructor
    VALUES (10211,'smith','biology',66000);
INSERT INTO instructor (id, name, salary)
    VALUES (10212,'zero',44000);

3.删除所有元组

1)通用形式:

delete from 表名;

2)示例:

DELETE FROM instructor;

4.删除一个表(关系):

1)通用形式:

drop table 表名;

2)示例:

DROP TABLE instructor;

4.向已有的表(关系)插入和移除属性:

1)插入形式:

alter table 表名 add 属性 属性域;

2)移除形式:

alter table 表名 drop 属性;
#######3)示例:

#添加该属性是,关系中所有的元组的该属性值为null
ALTER TABLE instructor ADD name VARCHAR(20) ;
ALTER TABLE instructor DROP name;

相关文章

  • 第3章《SQL》- 笔记

    SQL包括以下几部分 数据定义语言(DDL)数据操纵语言(DML)完整性视图定义事务控制嵌入式SQL和动态SQL授...

  • SQL

    SQL 语句 SQL DML 和 DDL 可以把 SQL 分为两个部分:数据操作语言 (DML) 和 数据定义语言...

  • MySQL的笔记(一)

    SQL语句的定义:简称SQL,结构化查询语言,数据库管理系统通过SQL语言来管理数据库中的数据。 SQL的分类: ...

  • SQL——SQL数据定义

    1.基本类型 char(n): 固定长度的字符串,用户指定长度n,也可使用全程character。 varchar...

  • SQL语句的分类

    ### 1.SQL语句的分类 * DDL语句(数据定义语句) 主要用于定义数据库对象的SQL语句 *数据...

  • 总结-MySQL

    SQL语法 -- DDL(数据定义语言)-- DML(数据操作语言)-- DCL(数据控制语言)-- 注意:SQL...

  • SQL DML 和 DDL 查询和更新指令构成了 SQL 的 DML 部分: SQL 的数据定义语言 (DDL) ...

  • SQL语句基础

    SQL语句 SQL分类: DDL:数据定义语句 create,alter,drop... DML:数据操作语句 i...

  • MySQL

    sql 分类 sql 基本语法 DDL(数据定义语言create drop alter) 数据表操作 数据类型 字...

  • 标准SQL知识梳理

    SQL动词 SQL功能动词数据定义CREATE,DROP,ALTER数据查询SELECT数据操纵INSERT,UP...

网友评论

    本文标题:SQL——SQL数据定义

    本文链接:https://www.haomeiwen.com/subject/qlzecftx.html