继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

Oracle 数据库学习笔记 (三)

Gorit
关注TA
已关注
手记 36
粉丝 55
获赞 243

一、表操作 ALTER TABLE 指令

使用 alter table 语句可以实现以下功能

  1. 给一个表添加新的列,也就是一个新的属性
  2. 修改现有列,修改列的属性值
  3. 为新列或者现有列定义默认值
  4. 删除一个列

eg: 创建一个相册表

create table photo(
	photoId number(12,0) primary key,
	photoName varchar2(20) not null
)

1.1 增加列

语法:alert table 表名 add(属性名,属性)类型(长度));

eg: 给相册表添加两个属性,分别是

  1. 相册的添加时间
  2. 相册描述
 alter table photo add(photoTime date);
 
  alter table photo add(photoDescribe varchar2(6));

1.2 修改列

语法: alter table 表名 modify(属性名 属性类型(长度));

eg: 把相册的文字描述长度增加

 alter table photo modify(photoDescribe varchar2(20));

1.3 删除列

语法:alter table 表名 drop(属性名);

eg:删除相册文字描述列

    alter table photo drop(photoDescribe);

二、其他数据操作

2.1 复制

  1. 复制一个一模一样的数据
select * from emp1 as select * from emp

2.2 赋值结构不复制数据

select * from emp1 as select * from emp where 1 == 2

2.3 基本表操作

使用一个表之前,我们可以先创建一个表

create table photo(
	photoId number(12,0) primary key,
	photoName varchar2(20) not null
)

2.3.1 DML 操作

  1. 向表中插入数据 (insert)
  2. 更新表中数据(update)
  3. 从表中删除数据(delete)
INSERT 基本使用

基本语法:insert into 表名[字段1(), 字段2(), 字段3()]... values [值1,值2,值3....]

Tips:
但是这样一次只能插入一条数据

几种插入数据的方式:

  1. 带字段的插入
    eg: insert into photo(photoId,varchar2) values(112233445522,'回忆')
  2. 省略字段的插入
    eg: insert into photo(photoId,varchar2) values(null,'回忆')
  3. 通过序列完成插入
    eg: insert into photo(photoId,varchar2) values(empsequence.nextval,'回忆')
  4. 插入包含日期的字段
    eg:日期的字段是to_date("2019-10-10","yyyy-mm-dd");
  5. 一次插入多条数据
    eg:
create into 表名 (字段1,字段2,字段3...)
	select (1,2,3....) from dual
union (all)
	select (1,2,3....) from dual
union (all)
	select (1,2,3....) from dual
	......

Tips:

  1. 这种语法可以向表中插入多条记录
  2. union 会自动过滤掉重复行,而 union all 不会
DELETE 语句
  1. 删除表中全部数据
  2. 删除数据表中满足条件的数据

基本语法:delete from 表名 where 条件

eg1:删除表中全部数据

delete from emp;

eg2:删除指定条件的数据

delete from emp where empno = 1111
UPDATE 语句
  1. 更新表中全部数据
  2. 更新数据表中满足条件的数据
    语法:
update 表名
set 字段名1 =, 字段名2 =...
where 条件

eg1:更新表中某咧数据

update photo set photoId = 112233445566;

eg2: 更新表中满足条件的数据

update emp set address = "上海" where empno = 1003

2.3.2 DQL 查询

DQL 即数据查询语言,用来查询数据的,包含 SELECT

  • select 是 SQL 中使用频率最高的语言,是 SQL 语言的灵魂
  • select 语句具有强大的查询功能
  • SELECT允许从一个表或多个表中选择满足给定条件的一一个或多个行或列

基本语法:
select *| from 具体的列名 别名 from 表名

Tips:

  1. select 标识选择哪些列
  2. from:标识从哪个表中选择
  3. *: 代表全部列

eg1: 查询某列数据

select ename,hiredate form emp;

eg2: 查询表中所有数据

select * from emp

2.3.3 实践

  1. 创建一个表
  2. 查询表的所有内容
  3. 向表中插入数据
  4. 删除表
  5. 删除某一个数据
create table tb_person( -- 创建表
       pid varchar2(18),
       name nvarchar2(200) not null unique,
       age number(3) not null check(age between 0 and 150),
       birthday date,
       sex varchar2(2) default '男',
       CONSTRAINT  tb_person_pid_pk  PRIMARY KEY(pid)  --设置这个表中的某个字段为主键,并且可以自定义主键的名称
)

select * from tb_person --查询表的所有元素

drop table tb_person -- 删除表

insert into tb_person (pid,name,age,birthday,sex) values ('111111111111111112','张三1',99,to_date('1987-12-12','yyyy-MM-dd'),'女');

CREATE TABLE book -- 创建表
(
	bid NUMBER PRIMARY KEY NOT NULL ,
	bname VARCHAR(30) ,
	bprice NUMBER(5,2) ,
	pid VARCHAR2(18) REFERENCES tb_person(pid)
) ;

--插入数据的时候要先插入主表,在插入从表,而删除数据的时候必须要先删除从表的数据在删除主表的数据
insert into book (bid,bname,bprice,pid) values(1,'三国演义',32,'111111111111111112');

--模拟删除主表的数据
delete from tb_person where  pid='111111111111111112'

delete from book where bid=1

三、习题练习

1、给老师表增加一个字段,老师职称字符类型长度4

alter table tb_teacher add(teacherTitle nvarchar2(4));

2、修改 上一题 中的字段长度为 8

alter table tb_teacher modify(teacherTitle nvarchar2(8));

3、删除职称

alter table teacher drop column teacherTitle --(删除某一列的数据)

4、 用两种方法分别往学生表中插入 2 条数据

-- 方式一:直接插入数据,根据字段插入数据
insert into tb_student (stuId,stuIdCard,stuGender,stuAge,tid) values(20171111034,320101197905156354,'男',19,2)
insert into tb_student (stuId,stuIdCard,stuGender,stuAge,tid) values(20171111024,120101197905156334,'女',19,3)

-- 方式二:插入数据,不指定字段,直接插入所有字段
insert into tb_student values(20171111033,320101197925156374,'男',20,3)
insert into tb_student values(20171111024,120101197905156334,'女',19,3)

5、 一次性向表中插入 5 条数据

insert into tb_student(stuId,stuIdCard,stuGender,stuAge,tid)
select 20171111034,320101197905156354,'男',19,2 from dual -- dual 不存在的虚拟表
union
select 20171111024,120101197905156334,'女',19,3 from dual
union
select 20171111004,510101197905157354,'女',21,8 from dual
union
select 20171111044,320101192605156354,'男',19,9 from dual
union
select 20171111043,320102192605176355,'男',20,10 from dual
打开App,阅读手记
0人推荐
发表评论
随时随地看视频慕课网APP