ORACLE数据库入门再在屋里坐会 (6)

SQL(Structure Query Language)机构化查询语言, 是一种数据库查询和程序设计语言, 用于存取数据以及查询,更新和管理关系数据库系统, 同时也是数据脚本文件的扩展名

SQL语言的主要部分

  1)数据定义语言Data Definition Language(DDL) -> 用来建立数据库,数据对象和定义序列(如:create drop alter等语句)

  2)数据操作语言Data Manipulation Language(DML) -> 用来插入, 修改, 删除, 查询, 可以修改数据库中的数据(如:insert(插入) update(修改) delete(删除)语句)

  3)数据查询语言Data Query Language(DQL) -> 是SQL语言中, 负责进行数据查询而不会对数据本身进行修改的语句,这是最基本的SQL语句(如: select(查询))

  4)数据控制语言Data Controlling Language(DCL) -> 用来控制数据库组件的存取允许,存取权限等(如: grant revoke commit rollback等语句)

  5)事务控制语言Transactional Control Language(TCL) -> 用于维护数据的一致性包括commit(提交事务), rollback(回滚事务)和savepoint(设置保存点)3条语句

 概念 1、SQL

 结构化查询语言,是一门用于操作数据库的程序设计语言

2、数据库

存放数据的仓库

数据表: 存放数据的载体,在关系数据库中,以二维表的形式存放数据

行: 是数据的集合 -> 记录

列: 具有某种数据类型的数据

3、关键字(字段)

关键字是关系模型中一个重要概念,它是逻辑结构,不是数据库的物理部分

  1)候选关键字: 如果一个属性集能惟一地标识表的一行而又不含多余的属性,那么这个属性集称为侯选关键字

  2)主关键字(主键): 主关键字是被挑选出来, 作表的行的惟一标识的侯选关键字 一个表最多只可以有一个主关键字,主关键字又称为主键

  3)公共关键字: 在关系数据库中, 关系之间的联系是通过相容或相同的属性注来表示的; 如果两个关系中具有相容或相同的属性或属性组, 那么这个属性或属性组被称为这两个关系的公共关键字

  4)外关键字(外键): 如果公共关键字在一个关系中是主关键字, 那么这个公共关键字被称为另一个关系的外关键字; 由此可见, 外关键字表示了两个关系之间的联系;以另一个关系的外关键字作主关键字的表被称为主表, 具有此外关键字的表被称为主表的从表; 外关键字又称作外键; 另外, 表间关系也是通过主键来实现的; 一个表可以有多少外键, 即可以跟另外多个表建立关系;

注:

  a)外键一般设置多的一边,冗余少

  b)外键关联的字段, 在另一张表一般是主键

  c)主键所在的表称为主键表(主表) 外键所在的表称为外键表(从表)

  d)外键与主键的数据类型要一致 

Oracle数据的数据类型

定义: 开辟空间, 指定空间存放的数据种类,规范数据符合实际

类型

1.字符类型

  1)char(长度): 1~2000 字节 ->固定长度字符串,长度不够的用空格补充

  2)varchar2(长度): 1~4000 字节 ->可变长度字符串, 与 char类型相比, 使用 varchar2可以节省磁盘空间, 但查询效率没有 char 类型高

2.数值类型

  number(m,n): m(1~38)  n(-84~127) ->可以存储正数 负数 零 定点数和精度为38位的浮点数, 其中, m代表精度, 代表数字的总位数; n表示小数点右边素质的位数

3.日期类型

      date: 7字节 ->用于存储表中的日期和时间数据, 取值范围是公元前4712年1月1日至公元9999 年12月31日, 7 个字节分别表示世纪 年 月 日 时 分和秒

4.其他类型

  1)二进制数据类型:

    raw(1-2000字节) ->可变长二进制数据, 在具体定义字段的时候必须指明最大长度 n

    long raw(1-2GB) ->可变长二进制数据

  2)LOB数据类型

    CLOB(Character Large Object 1-4GB) ->只能存储字符数据

    NCLOB(Native Character Large Object 1-4GB) ->保存本地语言字符集数据

    BLOB(Binary Large Object 1-4GB) ->以二进制信息保存数据

运算符

1. 算术运算符[+,-,*,/,mod(10,3)]

2. 关系运算符[>,>=,<,<=,!=,<>,=]BETWEEN…AND、IN、LIKE 和 IS NULL]

3. 逻辑运算符 and or not

4. 集合操作符 union,union all,minus,INTERSECT

  union:取出 2 个表数据合并,去除重复记录

  union all:取出 2 个表数据合并,保留重复记录

  minus:取出 2 个表中不同数据

  Intersect:取出 2 个表中共有数据【交集】

5. 连接操作符 ||

DDL语言(数据定义语言) 1、create table 命令

用于创建表, 在创建表时,经常会创建该表的主键、外键、唯一约束、Check 约束等

语法结构

create table 表名(

 [字段名] [类型] [约束]

 ………..

primary key(column1,column2),

foreign key(column1,column2,…..column_n),

references tablename(column1,column2,…..column_n)

)

2、alter table 命令

对已经存在的表进行修改,可以新增或删除字段,修改字段名或其类型和类型长度

修改表名: alter table old_table rename to new_table

修改字段名:alter table table_name rename column old_column to new_column

添加字段: alter table table_name add (new_column varhcar2(200) default‘null’,new_column2 number)

修改数据类型:alter table table_name modifiy (filedname varchar2(100))

删除字段:alter table table_name drop column column_name

添加主键alter table table_name add constraint pk_name primary key(column_id)

删除主键:alter table table_name drop constraint pk_name

添加外键,检查,唯一约束alter table table_name add constraint fk_name foreign key(column_id) references 主表(主键)

添加检查约束: Alter table stu add constraint ck_sname check(length(sname)>=2)

添加唯一约束:alter table stu add constraint uq_sname unique(sname)

删除外键:alter table table_name drop constraint fk_name

3、drop table命令

用于从数据库中删除表及全部数据

drop table table_name [purge];--purge:清除缓存

4、Truncate table 命令 

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zyzwgw.html