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 命令