這一節主要包括以下內容:
- 別名
- 索引
- 日期和時間函數
- 自增
一、別名
說明:
別名(Alias)用於為列或表提供臨時名稱。通常來說,當您執行自聯接時,會創建一個臨時表.
1.列別名
語法1:
SELECT column_name AS alias_name
FROM table_name
conditions... ;
示例1:
select name, max(salary) as package
from employees
group by name;
結果1:
2.表別名
語法2:
SELECT column1, column2....
FROM table_name AS alias_name
conditions.... ;
示例2:
select e.id, e.name, e.salary
from employees as e;
結果2:
二、索引
說明:
索引是用於加速從數據庫檢索數據的特殊查找表。數據庫索引類似於書的索引(目錄)。 索引為出現在索引列中的每個值創建一個條目。
1.創建索引
語法:
單列索引:
CREATE INDEX index_name ON table_name(column_name);
多列索引:
CREATE INDEX index_name ON table_name(column_name1, column_name2);
唯一索引:(創建唯一索引以獲取數據的完整性並提高性能。它不允許向表中插入重復的值,或者在原來表中有相同記錄的列上也不能創建索引)
CREATE UNIQUE INDEX index_name on table_name (column_name);
示例1:
create index employees_index on employees(name);
結果1:
示例2:
create index multicolumn_index on employees(name,salary);
結果2:
示例3:(如果表中有同樣的行,就會報錯)
create unique index unique_on_name on employees(name);
結果3:
2.刪除索引
語法:
DROP INDEX index_name;
示例:
drop index multicolumn_index;
注意事項:
- 應該避免在小表上使用索引
- 不要為具有頻繁,大批量更新或插入操作的表創建索引
- 索引不應用於包含大量null值的列
- 不要在經常修改的列上創建索引
三、日期和時間函數
下表列出重要的日期和時間的函數:
1.AGE()
示例:
select age(timestamp '2019-05-16', timestamp '1997-03-07');
結果:
2.CURRENT DATE/TIME
參數列表:
示例:
select current_date,current_time;
結果:
四、自動遞增
說明:
類型名稱serial用於創建整數列。 類型名稱bigserial創建一個bigint類型的列。 如果你期望在表的使用期限內使用超過2^31個標識符,則應使用bigserial。 類型名稱smallserial創建一個smallint列。
語法:
CREATE TABLE table_name (colname SERIAL);
示例:(之后插入的數據可以不指定id,自動遞增插入表中)
CREATE TABLE COMPANY(
ID SERIAL PRIMARY KEY,
NAME TEXT NOT NULL,
AGE INT NOT NULL,
ADDRESS CHAR(50),
SALARY REAL);