1.create table artists(id integer primary key,name text);
主鍵用作給定表中每行或記錄的唯一識別符號。 主鍵字面上是記錄的id值。 我們將使用此值將藝術家連線到他們製作的相簿。通過指定id列是primary key,sql確保:
此列中的任何值都不為null
此列中的每個值都是唯一的
表不能有多個primary key列。
2.外來鍵是包含資料庫中另乙個表的主鍵的列。 我們使用外來鍵和主鍵來連線兩個不同表中的行。 乙個表的外來鍵儲存另乙個表的主鍵的值。 與主鍵不同,外來鍵不需要是唯一的,可以為null。
這是sql在兩個表之間鏈結資料的方式。 藝術家表和**表之間的關係是藝術家的id值。
select *from artists where id=3;
select*from albums where artist_id=3;
3.查詢多個表的一種方法是使用多個表名以逗號分隔的select語句。 也被稱為交叉連線。
select albums.name,albums.year,artists.name from albums,artists;
4.select *from albums join artists on albums.artist_id=artists.id;
在sql中,連線用於組合來自兩個或多個表的行。 sql中最常見的連線型別是內部連線。如果連線條件為true,內連線將組合來自不同表的行。 讓我們看看語法,看看它是如何工作的。
select *指定我們的結果集將具有的列。 在這裡,我們希望在兩個表中都包含每一列。
from albums指定我們正在查詢的第乙個表。
join artists on指定要使用的連線型別以及第二個表的名稱。 在這裡,我們想做乙個內連線,我們要查詢的第二個表是藝術家。
albums.artist_id = artists.id是描述兩個表彼此相關的連線條件。 在這裡,sql使用**表中的外來鍵列artist_id將其與藝術家表中的正好一行在id列中具有相同的值進行匹配。 我們知道它只會匹配藝術家表中的一行,因為id是藝術家的主鍵。
5.select *from albums left join artists on albums.artist_id=artists.id;
外連線也可以組合來自兩個或多個表的行,但與內部連線不同,它們不需要滿足連線條件。 相反,左表中的每一行都會返回到結果集中,如果不滿足連線條件,則使用null值來填充右側列中的列。
6.as是sql中的乙個關鍵字,允許您使用別名重新命名列或表。 只要將其放在單引號內,新名稱就可以是任何你想要的。 在這裡,我們要將albums.name列重新命名為「album」,將artists.name列重新命名為「artist」。
重要的是要注意,列中沒有在任何乙個表中重新命名列。 別名只出現在結果集中。
select albums.name as 『album』,albums.year,artists.name as 『artist』 from albums
join artists on
albums.artist_id=artists.id
where albums.year>1980;
總結:主鍵是為表中的行提供唯一識別符號的列。 此列中的值必須是唯一的,不能為null。
外來鍵是包含資料庫中另乙個表的主鍵的列。 它用於標識引用表中的特定行。
連線在sql中用於組合來自多個表的資料。
如果連線條件為真,inner join將組合來自不同表的行。
left outer join將返回左側表中的每一行,如果不滿足連線條件,則使用null值來填充右側**中的列。
as是sql中的關鍵字,允許您使用別名重新命名結果集中的列或表。
SQL 學習記錄
1.show databases檢視所有資料庫 2.create database 資料庫名 建立新的資料庫 3.drop database 資料庫名 刪除 號後面名稱的資料庫 4.use 資料庫名 選中某個庫,在建立表之前必須先選中某個資料庫 5.show tables 檢視當前庫中所有表 6.c...
sql語句學習記錄
高階教程語句 1,like 操作符 一般用於模糊查詢 select f rom 表名稱 where 列名稱 like k 用 代替前面的模糊資料,後面是以k字元結尾 這裡要補充下萬用字元 替代 0 個或多個字元 替代乙個字元 charlist 字元列中的任何單一字元 charlist 或 不在字元列...
SQL點滴學習記錄(一)
alter table table name add column column name1 varchar 100 default null comment 注釋 add column column name2 varchar 100 default null comment 注釋 1 最近用的比...