sql是用於訪問和處理資料庫的標準的計算機語言。sql 可與資料庫程式協同工作,比如 ms access、db2、informix、ms sql server、oracle、sybase 以及其他資料庫系統。
sql語言共分為兩大類:
1、資料操縱語言dml:主要包括增刪改查(insert、delete、select、update
)2、資料定義語言ddl:主要包括建立、修改、刪除(create、alter、drop
)資料庫、表、索引。
1、select語句
select 列名稱 from 表名稱
或者select * from 表名稱
(1)distinct:去掉重複select distinct 列名稱 from 表名稱
(2)where:條件
select 列名稱 from 表名稱 where 列 運算子 值
(3)and和or:與和或運算子
(4)order by:排序
desc代表降序排列
asc代表公升序排列(預設)
(5)like:匹配
%:替代乙個或多個字元
_:僅替代乙個字元
(6)in和not in:在和不在集合中
(7)between and:在資料值之內,值可以是數值、文字或者日期
(8)as:列名稱和表名稱指定別名
(9)union:合併兩個或多個 select 語句的結果集,union all允許重複
(10)join:連線表
select column_name(s)
from table_name1
inner join table_name2
on table_name1.column_name=table_name2.column_name
(11)rownum:序列(oracle)
常用來分頁,注意rownum>2使用陷阱
select *
from (select row_.*, rownum rn
from a
where rownum <= 30000)
where rn > 20000
insert into 表名稱 values (值1, 值2,....)
或者insert into table_name (列1, 列2,...) values (值1, 值2,....)
insert into table_name (列1, 列2,...) select(列1, 列2,...) from table_name2
update 表名稱 set 列名稱 = 新值 where 列名稱 = 某值
或者update 表名稱 set 列名稱 = 新值 ,列名稱 = 新值 where 列名稱 = 某值
delete from 表名稱 where 列名稱 = 值
1、create:建立資料庫或表或序列或檢視
create database database_name
或者create table 表名稱
(列名稱1 資料型別,
列名稱2 資料型別,
列名稱3 資料型別,
....)或者
create index index_name on table_name (column_name)
或者create view view_name as
select column_name(s)
from table_name
where condition
列約束
drop database 資料庫名稱
或者drop table 表名稱
或者drop index index_name
alter table table_name add column_name datatype
或者alter table table_name drop column column_name
或者alter table table_name alter column column_name datatype
1、多表聯合更新
oracle:
update customers a -- 使用別名
set city_name=(select b.city_name from tmp_cust_city b where b.customer_id=a.customer_id)
where exists (select 1
from tmp_cust_city b
where b.customer_id=a.customer_id
)-- update 超過2個值
update customers a -- 使用別名
set (city_name,customer_type)=(select b.city_name,b.customer_type
from tmp_cust_city b
where b.customer_id=a.customer_id)
where exists (select 1
from tmp_cust_city b
where b.customer_id=a.customer_id
)
mysql:
update td_population_people a
set
where b.people_code=a.people_code and
2、start with connect by prior 遞迴查詢用法
3、查詢一張表的外來鍵
刪除表a的記錄時,oracle 報錯:「ora-02292:違反完整約束條件(***.fk***)- 已找到子記錄
select a.constraint_name, a.table_name, b.constraint_namefrom user_constraints a, user_constraints b
where a.constraint_type = 'r'
and b.constraint_type = 'p'
and a.r_constraint_name = b.constraint_name
and a.constraint_name = 'fk***'
SQL語言基礎
1.集合的操作 union 將多個查詢結果相加形成乙個結果集。將第乙個查詢中的所有行與第2個查詢中的所有行相加,並消除其中相同的行形成乙個集合。intersect 處理多個查詢結果的交集。2.新增 刪除字段 alter table user add pwd varchar2 10 alter tab...
SQL語言基礎
sql語言基礎 一 sql語言概述 sql語言 是一種結構化查詢語言,是一種用於關係式資料庫中定義和操縱資料的語言。也可以形象的 理解為使用者和資料庫進行交流的語言。被大多數關係式資料庫,如oracle,mysql資料庫所採用。二 sql語言的模式與物件 1 模式 模式是資料庫物件的集合,是資料庫中...
SQL語言基礎
create database student drop database student rename database student to student1 已棄用 此語句僅曾在乙個版本的mysql中可用資料型別 用途integer size int size smallint size ti...