SQL語言(一) 基礎

2021-08-17 07:53:20 字數 3447 閱讀 8921

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_name 

from 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...