• oracle的从入门到精通第一篇(oracle的基本概念与crud)


    概念

    什么是oracle?

    Oracle 数据库 = 神谕 = 它的第一个客户 = CIA

    什么是sqlplus

    sqlplus = 让我们和数据库进行交流的工具
    regedit = 注册表
    services.msc = 服务

    oracle几大语言(SQL |DDL|DML|DQL|DCL|TCL)

    SQL = Structured Query Language = 结构化查询语言

    DDL = Data Defination Language = 数据定义语言

    create 创建 alter 修改 drop 删除 truncate 截断

    DML = Data Manipulation Language = 数据操纵语言

    insert 插入 delete 删除 update 更新

    DQL = Data Query Language = 数据查询语言

    select 查询

    DCL = Data Control Language = 数据控制语言

    grant 授权 revoke 取消授权

    TCL = Transaction Control Language = 事务控制语言

    commit 提交 rollback 回滚 savepoint 保存还原点

    oracle用户相关操作(加锁|解锁|授权|取消授权)

    给用户解锁:

    alter user scott account unlock;
    
    • 1

    给用户加锁:

    alter user scott account lock;
    
    • 1

    创建新用户:

    create user ET1912 identified by etoak;
    
    • 1

    给用户修改密码:

    alter user scott identified by et;
    
    • 1

    给用户赋予权限:

    grant dba to scott;
    
    • 1

    给用户取消授权:

    revoke dba from ET1912;
    
    • 1

    删除用户:

    drop user ET1912;
    
    • 1

    查看当前用户:

    show user;
    
    • 1

    切换用户:

    conn 用户名/密码;
    
    • 1

    小练习:

    在scott用户下创建一个新用户ET,在ET下创建一个新用户ET1912,并连接

    oracle当中的数据类型:

    字符型:

    varchar2(20) 可变长度 0-4000个字节
    char(20) 固定长度 0-2000个字节
    char(1) 男/女 1/2
    long

    数值型:

    number()
    number(5)
    number(5,2)
    number(5,-2)

    日期型:

    date
    timestamp 时间戳(包含毫秒数)

    oracle表相关操作

    创建一张表:

    create table student(
    name varchar2(20),
    birthday date,
    sal number(5)
    );
    
    • 1
    • 2
    • 3
    • 4
    • 5

    练习:
    创建一张teacher表,字段:老师姓名tname,老师薪资tsal(薪资必须六位数及以上),生日tbirthday

    查看当前用户下有哪些表:

    select table_name from user_tables;
    
    • 1

    查看当前表结构:

    desc student;
    
    • 1

    修改表名:

    alter table student rename to stu;
    
    • 1

    修改字段名:

    alter table stu rename column sal to salary;
    
    • 1

    建表以后 增加字段:

    alter table stu add email varchar2(20);
    
    • 1

    建表以后 修改数据类型:

    alter table stu modify email varchar2(50);
    
    • 1

    建表以后 删除字段:

    alter table stu drop column email;
    
    • 1

    建表以后 删除表:

    
    drop table student3;                
    drop table student2 purge;     
    truncate table student2;     
    
    • 1
    • 2
    • 3
    • 4

    drop和truncate的区别?

    1.表结构
    2.表数据
    3.表空间

    练习:
    1.把teacher表名改为tea
    2.新增字段aihao
    3.aihao字段名修改为hobby
    4.删除字段hobby

    查询数据:select

    select * from student;
    select name from student;
    select name,salary from student;
    select name,salary from student where salary >= 8000;
    
    • 1
    • 2
    • 3
    • 4

    插入数据:insert

    insert into student values('ET1912_zs',sysdate,5000);
    insert into student (name,salary) values('ET1912_ls',6000);
    
    • 1
    • 2

    删除数据:delete

    delete from student;
    delete from student where name = 'ET1912_zs1';
    
    • 1
    • 2

    更新数据:update

    update student set salary = salary + 1000;
    update student set salary = salary + 1000 where name = 'ET1912_zs';
    update student set name = 'ET1912_zs1',salary = salary + 1000 where name = 'ET1912_zs' and salary = 7000;
    
    • 1
    • 2
    • 3

    小练习:

    1.插入数据:
    1)张老师,当前时间,12222
    2)周老师, ,13333
    3)卢老师,当前时间,14444
    2.更新数据:
    张老师和卢老师薪资涨30%

    like:
    %:代表任意位的任意字符
    _:代表一位上的任意字符

    select name,salary from student where name like 'ET1912%';
    select name,salary from student where name like '%ET%';
    select name,salary from student where name like 'ET1912_';
    select name,salary from student where name like 'ET1912_%';
    
    • 1
    • 2
    • 3
    • 4

    练习:
    1.插入数据
    1)张老师,当前时间,15555
    2.更新数据
    姓张的老师和姓卢的老师薪资涨30%

    escape:逃离符

    通过后指定一个字符位进行逃离,来保证like之后的字符看作是普通字符

    select name,salary from student where name like 'ET1912,_%' escape ',';
    select name,salary from student where name like 'ET1912._.%' escape '.';
    
    • 1
    • 2

    条件:
    and:并且 同时成立
    or:或者 有一个条件成立即可
    between and:闭合区间

    关系比较:

    < >= <= !=
    <>

    运算符:

        • / mod(x,y)

    课后作业

    –1查询20号部门的所有员工信息
    –2查询所有工种为CLERK的员工的工号、员工名和部门名。
    –3查询奖金(COMM)高于工资(SAL)的员工信息
    –4查询奖金高于工资的20%的员工信息
    –5查询10号部门中工种为MANAGER和20号部门中工种为CLERK的员工的信息
    –6查询所有工种不是MANAGER和CLERK,且工资大于或等于2000的员工的详细信息
    –7查询有奖金的员工的不同工种
    –8查询所有员工 工资和奖金的和
    –9查询没有奖金或奖金低于100的员工信息
    –10查询各月倒数第2天入职的员工信息
    –11查询员工工龄大于或等于10年的员工信息
    –12查询员工信息,要求以首字母大写的方式显示所有员工的姓名
    –13查询员工名正好为6个字符的员工的信息
    –14查询员工名字中不包含字母“S”员工
    –15查询员工姓名的第2个字母为“M”的员工信息
    –16查询所有员工姓名的前3个字符
    –17查询所有员工的姓名,如果包含字母“S”,则用“s”替换
    –18查询员工的姓名和入职日期,并按入职日期从先到后进行排列
    –19显示所有的姓名、工种、工资和奖金,按工种降序排列,若工种相同则按工资升序排列
    –20显示所有员工的姓名、入职的年份和月份,若入职日期所在的月份排序,若月份相同则按入职的年份排序
    –21查询在2月份入职的所有员工信息
    –22查询所有员工入职以来的工作期限,用“月**日”的形式表示。(不做)
    –23查询至少有一个员工的部门信息
    –24查询工资比SMITH员工工资高的所有员工信息
    –25查询所有员工的姓名及其直接上级的姓名
    –26查询入职日期早于其直接上级领导的所有员工信息
    –27查询所有部门及其员工信息,包括那些没有员工的部门
    –28查询所有工种为CLERK的员工的姓名及其部门名称
    –29查询最低工资大于2500的各种工作

  • 相关阅读:
    C/C++语言100题练习计划 74——全排列问题(借助STL实现)
    lenovo联想笔记本小新 潮7000-14IKBR 2018款(81GA)原装出厂Windows10系统镜像
    了解操作符的那些事(二)
    antd框架——实现自定义菜单功能——技能提升
    Windows内核--调试内核源代码(1.5)
    [C++]文件读写操作
    C++全局变量和局部变量
    55跳跃游戏
    使用RCurl和R来爬虫视频
    期货开户公司可以提供个性化服务
  • 原文地址:https://blog.csdn.net/qq_29917503/article/details/127981054