SQL标准符合度分为四个等级:
SQL-99、SQL-92支持四个等级的四个标准
没有DBMS实现全部SQL标准(出于安全性等考虑)
SQL语言分为
DDL:
——create table, alter table,drop table
——create index,drop index
——create view, drop view
——create trigg,drop trigger
……各种create
DML:
——selec …… from
——insert, delete, update
DCL:
——grant,revoke
SQL例子:
CREATE TABLE instructor ( ID char(5), name varchar(20) not null, dept_name varchar(20), salary numeric(8,2) primary key (ID) );
PS: char 类型会自动补空格,varchar不会
not null 不能位空
SQL的DDL不仅能定义一组个关系,还能够定义每个关系的信息,包括:
ps:不同DBS的数据类型的声明有所区别
用creat table命令定义SQL关系:
CREATE TABLE r( ( A1 D1, A2 D2, ... An Dn, <完整性约束1>; ... <完整性约束k> ) );
其中, r是关系名,每个Ai是关系r模式中的一个属性名,Di是属性Ai的域
完整性约束:(少数介绍)
not null,一个属性上的not null表示该属性上不允许空值
primary key(A1,...,An),声明表示A1……An构成关系的主码
主码属性必须唯一且非空,SQL_89中需要特别声明
foreign key(A1,...,An)creference, 声明 表示关系中任意元组
在属性上(A1,...,An)上的取值必须对应关系s中某元组的主码属性上的取值
check(P), P 是谓词条件,检测P
例:声明ID为instructor的主码,并确保,salary的值非负
CREATE TABLE instructor( ID char(5), name varchar(20) not null, dept_name varchar(20), salary numeric(8,2), primary key(ID), check(salary >= 0); );
drop table:删除数据库中关于被去掉关系的所有信息
DROP TABLE r;
如 DROP TABLE instructor2;
alter table:为已有关系增加属性
ALTER TABLE r ADD A D;
如 ALTER TABLE instructor2 ADD brithday date;
ps:新添加的值都会被设为null
这个命令还可以用于修改关系中的属性
如 ALTER TABLE instructor MODIFY (ID cahr(10));
原文:https://www.cnblogs.com/daker-code/p/12367871.html