SQL基礎學習2

2021-07-06 11:13:02 字數 3731 閱讀 2836

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 可在...