Sql知識點總結

1、數據庫對象:表(table) 視圖(view) 序列(sequence) 索引(index) 同義詞(synonym)mysql

  1. 視圖(view) : 存儲起來的 select 語句sql

    create view emp_vu5
    as
    select employee_id, last_name, salary
    from employees
    where department_id = 90;
    
    select * from emp_vu5;
    
    select * from employees;
    
    update emp_vu5
    set last_name = 'King'
    where employee_id = 100;

--複雜視圖:只能查詢,不能增刪改數據庫

create view emp_vu6
as
select department_id, avg(salary) avg_sal
from employees
group by department_id;

select * from emp_vu6;

update emp_vu6
set avg_sal = 10000
where department_id = 100;
  1. 序列(sequence) :用於生成一組有規律的數值。(一般爲主鍵設置值)服務器

    create sequence emp_seq4
       start with 1
       increment by 1
       maxvalue 100000
       nocache
       cycle;
    
    select emp_seq4.currval from dual;
    select emp_seq4.nextval from dual;

--序列的問題:裂縫 1). 多個數據庫對象使用同一個序列。 2). rollback 3). 發生異常函數

insert into emp(id, name)
values(emp_seq4.nextval, '張三');

select * from emp;
  1. 索引(index) :用於提升查詢效率
    --自動建立:數據服務器會爲具備惟一約束(主鍵約束,惟一約束)的列自動建立索引code

    create table emp2(
        id number(10) primary key,
        name varchar2(30)
    );

--手動建立:對象

create index emp2_name_idx
on emp2(name);

--建立聯合索引索引

create index emp2_nameId_idx
on emp2(id, name);
  1. 同義詞(synonym)rem

    create synonym d for departments;
    select * from d;
  2. 表(table)
    DML : 數據操縱語言it

insert into ... values ...
delete from ... where ...
update ... set ... where ...

select ...組函數(MAX/MIN/AVG/SUM/COUNT)
from... (內鏈接 join...on... 左外鏈接:left join...on... 右外鏈接: right join...on... 滿外鏈接:full join...on...)
where... between...and.../in(..., ..., ...)/like/is (not) null
group by 出如今 select 子句中的非分組函數,必定出如今 group by 子句後
having 過濾組函數
order by ... asc(升序)-默認 desc(降序)

DDL : 數據定義語言(create table/alter table/drop table/rename...to.../truncate table) DCL : 數據控制語言(commit; rollback; grant...to.../ revoke)

相關文章
相關標籤/搜索