oracle数据的操作语言

/**
1.系统当前默认账户:
1.1system
1.2sys:
   账户对应的两个角色
    sysdba:数据库管理员角色,具备数据库最高的权限,比如:新建账户,操作所有数据库实例
    sysoper:数据管理员,具备操作数据的权限
   
2.  第一新建账户(写数据库脚本)  ,第二分配权限
F8执行,小轮子。小扳子是切换用户
在user里面保存了所有的用户账户
创建连接,以及连接需要的资源
**/
create user a identified by  1234
grant connect,resource to a
/**
3.数据的操作语言------sql(结构化---查询---语言)。sql是标准的数据库操作语言
  3.1.dcl:数据控制语言(新建用户,分配权限)
  3.2.ddl:数据定义语言(create table,alert,drop,创建表,删除表,修改表),创建表就是定义了这个表的格式(几行几列),对表维护
  3.3.dml:数据操作语言:维护数据库表中保存的数据(删除,增加,修改等),对数据维护
  3.4.dpl:数据查询语言:检索数据库中的数据
4.数据库数据的完整性:保存到数据库中的数据必须能够正确反映事物的客观事实(因此要做限定,例如对年龄的限制)
   4.1实体(行)完整性:不能出现多(两)行完全一样的数据,实现方式:给表中加入主键列,该列值不能重复,重复就保存不进去了。
   4.2域(列)完整性:限定某个列的取值范围。实现方式:给某个列加入检查约束
   4.3引用完整性:限定表与表之间的准确性。(重点)
       A表中的某个列的值必须存在于B表中的某个列。  A表成为子表,B是主表。
       A:子表:子表同时有主外键,外检值可以重复(一对多)
       B;主表:子表中的外检参考主表中的主键
       主外键关系:给表建立主外键关系
   4,4:自定义完整性:按照用户的要求完成数据的关联性(例如刷卡就会产生积分) 。实现方式:触发器(刷卡触发了积分的变化)
**/


/**
5.ddl定义数据库表
  5.1数据类型
      varchar2(len)   varchar2(20),处理字符串(可变长度,如果只有十个字符,最终就会分配十个),在数据库中字符串用单引号
      nvarchar2(len)     nvarchar2(20)处理中文的速度比较快
      char(len),也表示字符串。固定长度
      date
      number(p,s) 数值型(java中的float,double,int都包括了)   number(2,2),第一个2是整数,第二个数是小数
      没有boolean类型,因此可以用number(1)表示

**/
---学生信息表
create table student
(
  sno number(6),
  sname varchar2(20),
  sage number(3),
  saddress varchar2(50),
  stel varchar2(11),---电话
  ssex varchar2(4)---性别
)
------------------------
--科目表
create table course
(
   cid number(3),
   cname varchar2(30),
   csc number(3)----学分
  )
--------------------
---成绩表
create table score
(
  scid number(6),---主键
   cid number(3),---科目表
   sno number(6),----学生表
   sc number(3)----成绩
 
)

-----1.加数据,在左边找到这个表,然后右键--编辑数据
-----添加主键
 alter table student add constraint pk_sno primary key(sno)---添加约束,t添加主键pk_sno,主键所在的列是sno。一个一个执行,如果想一起执行就要用分号

----2.检查约束(怎么添加默认约束和唯一约束,在学生表中的地址加默认约束,给电话加唯一)
alter table student add constraint ck_sage chenk(sage>=20 add sage<=40)---给学生表添加约束ck_sage,约束类型的检查约束,约束的字段是sage

---3.引用完整性,给子表加外检,虽然上面有外检列,但现在只表示普通的字段,加了外检约束才能表示两个表连接了
alter table score add constraint fk_sno  foreign key(sno) references student(sno)---给成绩表加外检,因此fk_sno这个字段是成绩表的,第一个sno也是成绩表的。参考学生表的sno(主键)

---插入数据(最后插入数据。因为如果先加数据可能就加不了约束了)
---现在要用dml数据管理语言
---insert,,,给所有列插入数据的时候可以省略列名,但是给部分列名插入的时候就不能省略了。
insert into student(sno,sname,sage,saddress,stel,ssex) values(110,'张三',23,'天津',11111111111,'男')---注意加commit,下次在添加的时候就不用写列名了
---update:修改
update student set ssex='女',sname='乌龟''
where sno=110


delete from student where sname=乌龟''


---dql数据查询语句
select * from student


-----对表的操作 ,ddl数据查询语言
alter table student add name varcahr2(20)---添加列
alter table student drop column name-----删除列
drop table student---删除表

猜你喜欢

转载自1601844782.iteye.com/blog/2267200
今日推荐