• Oracle学习总结_day01_day02_表的创建_增删改查_约束


    本文为博主辛苦总结,希望自己以后返回来看的时候理解更深刻,也希望可以起到帮助初学者的作用.

    **转载请注明 出自 : luogg的博客园 ** 谢谢配合!


    更新:
    SELECT * FROM (SELECT ROWNUM rn , a.* FROM (SELECT * FROM copy_emp)a) WHERE rn >1 AND rn<10;
    分页显示

    Oracle

    day01_Oracle简介及表的创建,增删改查

    • 安装好之后,需要手动开启的服务 : 右键我的电脑 -> 管理 -> 服务 -> OraclORCL 和 OracleListiner . 必须开启.
    • dos 底下输入sqlplus启动oracle,数据库口令 : orcl
    • 用户名system密码orcl 用户名scott密码luogg
    • 网页端 : http://localhost:5560/isqlplus
    • 以管理员角色登录 : sqlplus scott/luogg as sysdba
    • 测试是否安装成功: select sysdate from dual;查询当前时间
    • 退出 exit
    • 锁定与解锁用户 : alter user scott account lock ;
      alter user scott account unlock ;
    • 清屏: host cls(windows中)
      host clear(Linus中)
    • 切换用户 : conn[ect] scott/luogg ;
    • 显示当前用户 : show user ;
    • 查看表结构: desc table_name;
    • 单行注释- -
    • 多行注释/* */

    • 查看当前用户有那些表 : select * from tab ;
    • 建表的时候先创建E-R图,会比较清晰,实体用长方形,属性用椭圆.
    • 一个汉字有3个字节, varchar2为可变字符串.
    • PL/SQL developer 查看表的方法: ctrl+鼠表放在表上
      SQL developer 查看表的方法: desc + 表名 ;
    • PL/SQL developer 中输入select * from 表名 + for update; 可以直接增删改查
    • 查看本机IP的方法 : dos底下输入 -> ipconfig -> ipv4地址
    • 创建表 : create table t_student(t_name varchar2(20) ...);
    • 添加信息: insert into t_student(t_name) values('小花');
      若不指定字段, 那么默认添加所有字段信息;
      若要添加指定字段信息, 表名后边必须指明字段;
    • 修改信息: update t_student set stu_name='小美' where stu_no=1001;
    • 删除信息: delete from t_student where stu_age=20 and stu_no=1002;
    • **删除表: drop table t_student; **
    • **添加字段: alter table t_student add(stu_sex varchar2(10)); **
    • 修改字段: alter table 表名 rename column旧的字段名 to 新的字段名名;
    • **修改字段长度: alter table t_student modify(stu_sex varchar2(6)); **
      修改长度时候,可以不为null, 修改字段的修饰类型(varchar2->number)的时候, 字段下边必须没有信息, 为null
    • 删除字段: alter table t_student drop column stu_sex;
    • **复制HR用户下的employees表: create table copy_emp as select * from hr.employees; 前提是有权限访问hr. **
    • 只复制表结构: create table copy_emp2 as select * from hr.employees where 1=2
    • 查询字段为空的表: select * from t_student where stu_name is null ;

    • 可以快速导入表 : 先放到excel中,然后导入;
    • SQL : 结构化查询语言
      PL/SQL: 过程话查询语言
    • DCL: 数据控制语言(极少用)
      DDL: 数据定义语言, 创建对象的时候使用, create,alter,drop
      DML: 数据操纵语言,和操作数据有关, insert,update,delete,查询不属于DML.

    • pl/sql中,选中本行: home/end + shift,end/home ;
    • 运行sql语句: f8. 提交: f10 . 回滚: shift+f10.

    day02_约束

    表的类型

    • char 2000个字节 , 定长字符串,

    • varchar 4000个字节, 可变字符串, 若没达到指定字符长度, 会自动调整大小

    • number(m,n) m,有效位数,n,代表小数位,出多来的小数位四舍五入,
      不写n的时候,为整数

    • date类型
      1,sysdate 当前日期
      2,默认格式: dd-mm月-yy 05-03月-94
      3,采用数据库提供的to_date()方法,

      追加出生日期的三种方法:
      1.update t_student set stu_birthday=sysdate where stu_name='张三'
      2.update t_student set stu_birthday=to_date('1994-05-03', 'yyyy- mm-dd') where stu_name='狗蛋';
      3.update t_student set stu_birthday=to_date('1994-05-03 235830', 'yyyy-mm-dd hh24miss') where stu_name='二麻子';
      4.update t_student set stu_birthday='05-03-94' where stu_name='蠢单子';

    to_char的使用

    • 查询08 月份入职的所有员工的信息
      select * from copy_emp where to_char(hire_date,'mm') = '08';
    • 查询本月入职的所有的员工信息
      select * from copy_emp where to_char(hire_date,'mm') = to_char(sysdate,'mm');
    • 查询星期x 入职的员工信息
      select * from copy_emp where to_char(hire_date,'day') = to_char(sysdate,'day');

    函数

    to_date(): 将其他类型转换为date类型
    to_char(): 将其他类型转换为char类型

    修改列名

    alter table t_student rename column s_bir to str_bir;

    模糊查询LIKE(%表示0个或多个字符,_表示一个字符)

    select * from table where table_name LIKE '%stu%';

    约束

    非空约束NOT NULL

    修改约束(可为空) : alter table t_student modify s_name null;
    若要追加非空NOT NULL约束, 必须在这个字段信息不为空的时候追加.

    查询约束条件

    1.通过表结构查询
    2.select * from USER_CONSTRAINTS where table_name = upper('t_student');

    查询到表的约束名: SYS_C007550

    删除约束

    alter table t_stu drop CONSTRAINTS SYS_C007550;

    唯一键约束UNIQUE

    特点:

    • 唯一键约束用于确保所在字段或字段组合不出现重复的值.
    • 唯一性约束的字段允许出现空值.
    • Oracle会自动为唯一键约束创建唯一性索引.
    • 有值时,不可以重复, 空值时,可以有多个null.

    字段组合做唯一性约束

    这里写图片描述

    或者:
    alter table t_student add CONSTRAINTS UQ_no_name UNIQUE(stu_no,stu_name);

    主键约束 PRIMARY KEY

    特点:

    • 唯一表示表中的某一条记录.
    • 相当于非空且唯一
    • 一个表中只可以有一个主键
    • 可以是单个字段或者多个字段的组合
      这里写图片描述

    联合主键

    由多个字段组合而成的主键也称联合主键
    联合主键中每一个字段都不能为空
    联合主键字段组合的值不能出现重复
    constraint PK_stuId_subId primary key(stu_name,sub_name)
    )

    外键约束 FOREIGN KEY

    外键约束特点:

    • 外键用于确保相关的两个字段之间的参照关系,以实现参照完整性约束
    • 外键约束通常构建于来自不同表的两个字段之间
    • 子表外键列的值必须在主表参照列值得范围内,或者为空
    • 外键参照的必须是主表的主键或者唯一键
    • 主表主键/唯一键值被子表参照时,主表相应记录不允许被删除

    eid number(3) references t_empinfo(eid) on delete cascade,
    或者 CONSTRAINTS stu_con_FK foreign key (c_no) references t_class(c_no);
    约束 约束名 外键(字段名) 参考 表(字段名)

    删除主表的时候, 引入的数据 级联删除, on delete cascade 级联删除
    删除主表内容的时候, 引用的字表的字段置空. on set null 级联置空

    检测约束 CHECK

    age number(3) check(age>=0 and age<=120)

    同时使用主键约束和check约束
    name varchar2(20) primary key check(length(name)>=6),

  • 相关阅读:
    HDU1883 Phone Cell
    HDU2297 Run
    关于反射的疑惑
    struts2+spring 实例教程
    在.Net 模板页中使用CSS样式
    到底是什么反射,泛型,委托,泛型
    asp.net如何实现删除文件夹及文件内容操作
    学好C#方法
    Web网页安全色谱
    总结一些ASP.NET常用代码
  • 原文地址:https://www.cnblogs.com/luogg/p/5892134.html
Copyright © 2020-2023  润新知