select語句基礎
列的查詢:通過select 語句查詢並選取出必要資料的過程稱為匹配查詢或查詢。
--select的基本語句
select 列名1,...
from 表名;
解釋1:select子句中列舉了希望從表中查詢出的列的名稱,其順序可以任意指定,多個列名直接用逗號分隔排列,查詢結果中列的順序與其子句順序相同。當要查詢全部列時,可以用
星號(*)表示。
使用星號時,就無法設定列的顯示順序了。
--查詢全部列
select *
from 表名
解釋2:from子句指定了選取出資料的表的名稱
為列設定別名:使用關鍵字 as,設定漢語別名時要用雙引號(" ")括起來
select 列名 as 列別名
from 表名
常數的查詢:
select '字串常數' as 別名, 數字常數 as 別名, '日期常數' as 別名
from 表名;
從結果中刪除重複行:在select子句中使用distinct。
select distinct 列名
from 表名;
注意:在使用distinct時,null也被視為一類資料。在多個列之前使用,此時會將多個列的資料進行組合,將重複的資料結合為一條。
distinct只能用在第乙個列名之前。
根據where語句來選擇記錄:
where子句可以指定「某一列的值和這個字串相等」或者「某一列的值大於這個數字」等條件。
--select語句中的where子句語法
select 列名1,列名2,...
from 表名
where 表示式條件;
解釋:首先通過where子句查詢出符合指定條件的記錄,然後再取出select語句指定的列
注意:sql中子句的書寫順序是固定的,不能隨意更改。即where子句要緊跟在from子句之後。
關於sql語句的注釋:
單行注釋:將注釋內容寫在「 -- 」之後
多行注釋:將注釋內容寫在「 /* 」和「 */ 」之間
算術運算子和比較運算子
算術運算子:使用其兩邊的值進行四則運算(+、-、*、/)或者字串拼接、數值大小比較等運算,並返回結果的符號。運算是以行為單位進行的。也可以使用括號來提公升表示式的優先順序。
--將表shop中的price乘以2
select products,price,price*2 as "price_x2"
from shop
注意:
所有包含null的計算,結果肯定為null
比較運算子:像符號=、< >(不等於)、<=、<、>=、>這樣用來比較其兩邊的列或者值的符號,幾乎所有資料型別(字元、數字、日期等)的列和值都可以用比較運算子進行比較,當然也可以對計算結果進行比較。
對字串使用不等號時的注意事項:
對字串型別的資料進行大小比較時,使用的是和數字比較不同的規則,典型的規則就是按照字典順序進行比較。
- -ddl 建立乙個字元表str
create table str
(string varchar(4) not null,
primary key(string));
- -dml 向表中插入數
begin transaction;
insert into str values('1'),
insert into str values('2'),
insert into str values('3'),
insert into str values('10'),
insert into str values('11'),
insert into str values('222');
commit;
select string
from str
where str>'2';
解釋:因為其按照字典順序進行比較,所以輸出結果只顯示:3,222
不能對null使用比較運算子,sql提供了專門用來判斷是否為null的運算子is null;希望選取不是null的記錄時,需要使用is not null
- -查詢products表中**為空的產品名
select name
from products
where price is null
邏輯運算子
not運算子:表示否定,不能單獨使用,必須和其他查詢條件組合起來使用,不要濫用
--sample
select name,price
from products
where not price>=100;
--等價於
select name,price
from products
where price<100;
and運算子和or運算子:主要用於多個查詢條件進行組合時
and運算子在其兩側的查詢條件都成立時整個查詢條件才成立,為交集的效果(又稱邏輯積運算)
select name,price
from products
where name='筷子'
and price>20;
解釋:選出products表中產品名為「筷子」
且售價大於20的行;
or運算子在其兩側的查詢條件有乙個成立時整個查詢條件都成立,為並集的效果(又稱邏輯和運算)
select name,price
from products
where name='筷子'
or price>20;
解釋:
選出products表中產品名為「筷子」或售價大於20的行;
注意:and的運算優先順序高於or,如果要先優先執行or運算只能通過新增括號。
邏輯運算子和真值:
真值,即值為真(true)或假(false)之一,在sql中還存在「不確定(unknown)」這樣的值
and運算子兩側都為真時,結果為真,否則為假;or運算子兩側都為假時,結果為假,否則為真;not運算子單純的取反,即將真轉換為假,將假轉換為真。
當與null進行邏輯運算時,其結果為不確定
SQL語言基礎(2)
from子句指定需要進行資料查詢的表,檢視等資料來源,用逗號分隔。from子句還可以指定資料表或檢視之間的連線型別,型別取決於on子句中指定的連線條件。t sql可以支援在from子句中指定除資料表或檢視外的其他物件構成派生表。例如 select emp.員工編號,emp.員工姓名,sp.部門名稱 ...
SQL 基礎語句2
列名 資料型別 預設值 約束 create table customer id number 7 primary key,name char 25 not null,phone varchar2 20 unique 刪除表 drop table customer 主鍵約束可以寫在列後,也可以寫在所有...
SQL學習(基礎)
sql簡介 是一種結構化查詢語言 structured query language 用於訪問和處理資料庫的標準的計算機語言。sql的作用 create select insert update delete drop 1 sql 面向資料庫執行查詢 2 sql 可從資料庫取回資料 3 sql 可在...