1974年,Boyce&Chamber提出
1975-1979年,IBM的San Jose再System R上首次实现,称为Sequel(Structured Engligsh Query Language) --> SQL
1986,ANSI/ISO 推迟标准:SQL-86
1989,SQL-98
1992,SQL92(SQL2)(标准的关系数据库语言)
1999,SQL99(SQL3)(面向对象数据库&对象关系数据库)
SQL2003,SQL2006,SQL2008(数据库应用程序)
SQL= DDL + DML + DCL
示例:
Student表上,增加列 Saddr char[40], PID char[18]
Alter Table Student add Saddr char(40),PID char(18);Student表上,修改 Sname的类型为 char(10)
Alter Table Student modify Sname char(10);Student表上,删除学生姓名必须取唯一值的约束
Alter Table Student drop unique(Sname);删除主键
Alter Table Student drop primary key;
delete 只会删除行数据,撤销会删除表定义
Drop Table Student;--撤销数据库
Drop database 数据库名;
每一个数据库 在硬盘中就是一组大文件
文件
页面
最小存储单位,一页为8k or 8192字节
空间extent
连续8个页面,64k,是分配数据表存储空间的一种单位
将备份加载到系统中的过程,静态的单用户模式(不让其他用户操作)
输入命令:sqlplus /nolog 进入oracle的控制台
输入命令:conn /as sysdba;其他角色还有:
sys:系统管理员
system:本地管理员
scott:普通用户
select ,update,insert,delete,exec,dir
grant 权限 on 表明 to 用户名
管理用户:
create user zhangsan;//在管理员用户下创建zhangshan
alter suer scott identified by tiger;//修改密码
约束是SQL提供的总保持数据库完整性的一种方法,有一下五中
constarint 约束名 约束类型(列名)Create Table Course (C# char(3),Cname char(12),Chourse integer,Credit float(1),T# char(3)) constraint pk primary key (C#)
其实也有any,但是any有歧义 (任意 还是 所有?)所以被some代替了
union 返回并集,自动去重
except :T1和T2差集结果将返回1,它是在T1结果集中,并T2结果集中没有出现的行,自动去重
所有操作 都可以 + all ,代表不去重
create view stu_view as(select sname,sage from student;
);
视图的更新
view不一定能更新的,比如
create view s_g(s#,savg) as (select S#, avg(age) from student group by s#
)
如果更新 savg :
update s_g set savg = 85 where s# = '202012'
那么就不能直接更新insert into stu_view Values('zhangsan',20)
但是 student 表中#sid 是主键,那么就不能更新
drop view s_g; 撤销视图
DB integrity :DBMS应该保证DB的一种特性,任何情况下的 正确性、有效性、一致性
广义完整性:语义~、并发控制、安全控制、DB故障恢复…
狭义完整性:专指语义完整性
关系模型中的完整性:
约束对象来分
列完整性
表完整性
Create Table(S# char(8) not null unique,Sname char(10),Ssex char(2) constraint ctssex check(Ssex='男' or Ssex = ’女‘),Sage integer check(Sage >= 1 and Sage < 150),D# char(2) references Dept(D#) on delete cascade,Sclass char(6);
)
Create Table Course (C# char(3),Cname char(12),Course integer,Credit float constraint ctcredit check (Credit >= 0.0 and Credit <= 5.0),T# char(3) references Teacher(T#) on delete cascade
);