zoukankan      html  css  js  c++  java
  • 总结

    1、关系数据库基本概念 A
    •关系数据库基本概念
    •关系:整个二维表
    •关系名:表格名称
    •元组:行数据(记录)
    •属性:列数据(字段)
    •属性名:列名称(字段名)
    •主键:唯一确定元组的属性组(关键字)
    •域:属性的取值范围

     

    2、什么是SQL语言
    •结构化查询语言(Structured Query Language)(发音ˈes kjuːˈ)
    •SQL是最重要的关系数据库操作语言,是所有关系数据库管理系统的标准语言
    •许多数据库厂商在使用SQL的同时,都对SQL进行了扩展,比如ORACLE的PL/SQL语言,MS SQL-Server的T-SQL语言
    •SQL语言是一种非过程化语言,只需要提出”做什么”,而不需要指明“怎么做”

    3、SQL可以做什么
    •数据库数据的增删改查操作(CRUD)
    •数据库对象的创建,修改和删除操作
    •用户权限/角色的授予和取消
    •事务控制
    4、SQL语言的分类
    •DQL(数据查询语言)
    •select
    •DML(数据操作语言)
    •insert、update、delete
    •DDL(数据定义语言)
    •create、alter、drop
    •DCL(数据控制语言)
    •grant、revoke
    •TCL(事务控制语言)
    •SAVEPOINT 、 ROLLBACK、SET TRANSACTION ,COMMIT
    •数据操作语言针对表中的数据,而数据定义语言针对数据库对象(表、索引、视图、触发器、存储过程、函数、表空间等)

    1、时间
    1.1、可以进行加减运算
    select * from emp where hiredate in (select (last_day(hiredate)-1) from emp);
    select * from emp where hiredate
    1.2 、
    select ename , to_char(hiredate,'yyyy') from emp

    2、replace
    select replace(ename,'s','S') from emp ;--注:将所有的's'都替换掉
    --constraint
    --not null 非空约束

    create table demo01(
    empno number(4),--4是数字的个数,如果是number(4,2) 则表示4个数字,其中2个是小数如10.00;注意4是最大位数
    ename varchar2(10) not null, --10是字节个数 ;注意:10是最大的个数
    job varchar2(10)
    )

    insert into demo01 values(1234,' ','SALES');
    select * from demo01;


    --unique 唯一键
    create table demo02(
    empno number(4) unique,
    ename varchar2(10),
    job varchar2(8)
    )
    select * from demo02;
    insert into demo02 values(1234,'zhangsan','SALES');
    insert into demo02 values(1234,'lisi','SALES');
    insert into demo02 values(null,'wangwu','SALES');--字段约束是唯一时属性值可以为空,且多个记录中的该属性值都可以为空
    insert into demo02 values(null,'zhaoliu','SALES');

    --非空&唯一
    create table demo03(
    empno number(4) not null unique,
    ename varchar2(10),
    job varchar2(8)
    )
    select * from demo03
    insert into demo03 values(1234,'zhangsan','SALES');
    insert into demo03 values(null,'lisi','SALES');

    --自定义检查约束
    create table demo04(
    empno number(4),
    ename varchar2(10),
    job varchar2(8),
    age number(3) check(age>0 and age<200),
    gender varchar2(3) check(gender='男' or gender='女')
    )

    insert into demo04 values(1234,'zhangsan','SALES',56,'男')
    insert into demo04 values(1234,'zhangsan','SALES',44,'详')--必须满足自定义异常中的条件
    insert into demo04 values(1234,'zhangsan','SALES',44,null)--自定义异常可以为空
    insert into demo04 values(1234,'zhangsan','SALES',null,'男')--自定义异常可以为空
    select * from demo04 ;

    --创建列时,为列创建约束且取名 =
    create table demo05(
    empno number(4),
    ename varchar2(10),
    job varchar2(8),
    age number(3) constraint ck_age not null
    )

    insert into demo05 values(1234,'zhangsan','SALES',300);
    select * from demo05;

    --在添加完列后,还可以添加约束
    --除了not null不可以
    create table demo06(
    empno number(4),
    ename varchar2(10),
    age number(3),
    constraint uq_empno unique(empno),
    constraint ck_age2 check(age>0 and age<200)
    )

    insert into demo06 values(1234,'zhangsan');
    insert into demo06 values(1234,'lisi');


    --主键约束
    --为了保证该列的数据能够证明行记录在表中是唯一的
    --主键约束从形式看,类同于(非空和唯一)约束
    create table demo07(
    empno number(4) primary key,
    ename varchar2(10),
    age number(3)
    )

    insert into demo07 values(1234,'zhangsan',18);
    insert into demo07 values(1234,'lisi',18);
    insert into demo07 values(null,'wangwu',20);

    --在列之后添加
    create table demo08(
    empno number(4),
    ename varchar2(10),
    age number(3),
    constraint pk_empno primary key(empno)
    )

    -- 一张表只有一个主键
    create table demo09(
    empno number(4) primary key,
    ename varchar2(10) primary key,
    age number(3)
    --constraint pk_empno primary key(empno)
    )

    -- 一张表虽然只有一个主键,但可以选择多个列,作为联合主键
    create table demo09(
    empno number(4) ,
    ename varchar2(10),
    age number(3),
    constraint pk_empno2 primary key(empno,ename)
    )

    insert into demo09 values(1234,'zhangsan',18);
    insert into demo09 values(1234,'lisi',20);
    insert into demo09 values(2345,'zhangsan',20);

    insert into demo09 values(1234,null,18);

    --外键foreign key
    --外键用来描述两张表之间的关系,必须保证外键列的值必须为参考列的值中的一个
    create table t_class(
    classid number(2) primary key,
    classname varchar2(20) not null,
    classnum varchar2(30)
    )

    insert into t_class values(10, 'java班','教室6');
    insert into t_class values(20, '大数据班','教室3');
    insert into t_class values(30, 'python班','教室4');

    delete from t_class where classid = 20;

    create table t_student(
    stuid number(8) primary key,
    stuname varchar2(30) not null,
    stuphone varchar2(11),
    classid varchar2(2) references t_class(classnum)
    )

    insert into t_student values(11111111,'方子恒',110,10);
    insert into t_student values(11111112,'马子明',120,20);
    insert into t_student values(11111113,'王福禄',130,10);

    select * from t_class;
    select * from t_student;

    --存在外键的表为从表,被依赖的表为主表
    --外键不一定为主表的主键,也可以为主表的唯一键


    --约束除了在建表时,可以添加约束外,还可以修改表时修改约束

    alter table demo05 add constraint uq_demo05_ename unique(ename);

    alter table demo05 drop constraint uq_demo07_ename
    drop constraint --待办=====
    --用户管理
    --1.创建一个账户
    create user zhangsan identified by 123456;

    --2.修改账户的密码
    alter user zhangsan identified by 654321;

    --3.删除一个账户 [cascade 表示是否级联删除]
    drop user zhangsan;

    --4.让一个用户的密码失效
    alter user zhangsan password expire;

    --5.锁定、解锁一个账户
    alter user zhangsan account lock;
    alter user zhangsan account unlock;


    --DCL
    --grant授予权限
    --revoke收回权限

    --1.给用户授权
    --允许用户登录
    grant create session to zhangsan;

    --给账户授权可以操作表
    grant all on scott.emp_temp to zhangsan;

    --2.取消用户的权限
    revoke all on scott.emp_temp from zhangsan;

     

     

     

     

  • 相关阅读:
    flock对文件锁定读写操作的问题 简单
    hdu 2899 Strange Fuction(二分)
    hdu 2199 Can you solve this equation? (二分)
    poj 3080 Blue Jeans (KMP)
    poj 2823 Sliding Window (单调队列)
    poj 2001 Shortest Prefixes (trie)
    poj 2503 Babelfish (trie)
    poj 1936 All in All
    hdu 3507 Print Article (DP, Monotone Queue)
    fzu 1894 志愿者选拔 (单调队列)
  • 原文地址:https://www.cnblogs.com/dxwen/p/10746013.html
Copyright © 2011-2022 走看看