SQL笔记(一)SQL数据定义

相关材料在相关材料下载
参考书:《数据库系统概念》第六版

注:本文只涉及初级SQL

SQL 基本类型

  • char(n) : 固定长度字符串,用户指定长度n。也可使用全称character
  • varchar(n): 可变长度字符串,用户指定最大长度n ,等价于全称character varying
  • int: 整数类型(和机器相关的整数的有限子集),等价于全称integer
  • smallint: 小整数类型(和机器相关的整数的有限子集)。
  • numeric(p,d): 定点数,精度由用户指定。这个数有p 位数字(加上一个符号位),其中d 位数字在小数点右边。所以在一个这种类型的字段上,numeric(3,1) 可以精确存储44.5 ,但不能精确存储444.50.32这样的数。
  • real, double, precision: 浮点数与双精度浮点数,精度与机器有关。
  • float(n):精度至少为n位的浮点数。
    • 每种类型都可以包含一个被称为空值得特殊值。
    • char 存放固定长度的字符串,例如一个char(10) 类型存入字符串‘Avi’,字符串后会追加7个空格来使其达到10个字符的串长度。varchar 则不会。
    • 比较两个char类型,如果长度不一致,在比较前会在短值后加空格,使之长度一致。
    • 比较varcharchar 可能不会自动补空格。导致比较结果不符合预期。
      建议始终使用varchar 类型,而不是char类型。
      SQL提供nvarchar 类型存放使用Unicode表示多种语言数据,很多数据库甚至允许在varchar类型中存放Unicode (UTF-8)。
      更多类型

基本模式定义

如果没有明确说明 r 表示一个关系的名字 A 表示一个属性的名字 D 表示属性的域

1. 定义SQL关系

使用`create table` 定义关系。例如,
create table department
    (dept_name      varchar(20), 
     building   varchar(15), 
     budget     numeric(12,2) check (budget > 0),
     primary key (dept_name)
    );
`create table` 命令的通用模式:
create table *r* (A 1  D 1 , A 2  D 2 , … , A n  D n ,

2. 插入数据

定义一个关系:

create table instructor
    (ID         varchar(5), 
     name           varchar(20) not null, 
     dept_name      varchar(20), 
     salary         numeric(8,2) check (salary > 29000),
     primary key (ID),
     foreign key (dept_name) references department
        on delete set null
    );

完整定义在相关资料中的DDL.sql

向关系instructor中插入一条数据:

insert into instructor
values
(10211, 'Smith', 'Biology', 66000);

3. 删除元组

保留关系,删除元组。

delete from r;

4. 删除关系

删除 r 的所有元组和 r 的模式

drop table r;

5. 增加、删除属性

alter table 为已有关系添加属性,关系中所有的元组在新属性的取值上将被设置为null

增加 属性

alter table r add A D;

删除属性

有些数据库不支持该操作。

alter tabel r drop A;

猜你喜欢

转载自blog.csdn.net/u010327460/article/details/80455780