🔥 ในวันนี้เราจะมาพูดถึงเกี่ยวกับ View ใน SQL กัน ว่าเจ้านี่สามารถทำอะไร หรือช่วยอะไรเราได้บ้าง
.
👉 View เป็นโครงสร้าง Table ที่จำลองขึ้นตาม Statement ที่เขียนไว้ โดยปกติแล้วในการ Query ข้อมูลจาก Table ถ้าเกิดมีการ JOIN ข้อมูลหลายตารางแล้วได้ผลลัพธ์ที่ต้องการแล้ว เมื่อเราจะนำ Query นั้นไปใช้งานบ่อย ๆ จะเกิดปัญหาว่าเราต้องเขียน SQL ซ้ำในทุก ๆ ครั้งที่มีการเรียกใช้งาน ซึ่ง View สามารถแก้ปัญหาจุดนี้ได้
.
🌈 ซึ่ง View เหมือนกับตัวจำลองตาราง ที่ไม่มีอยู่จริง แต่สามารถเรียกใช้ได้เหมือน Table เลย เหมือนกับว่ามันคือ Table จำลองที่ไม่มีอยู่จริงก็ได้ ถ้าข้อมูลใน Table ต้นฉบับเปลี่ยน View ก็จะเปลี่ยนตามด้วย (เจ๋งสุด ๆ) และเราสามารถสร้าง View จากการผสมกันหลาย ๆ Table ได้อีกด้วยนะ
.
📑 ตัวอย่าง
CREATE VIEW FullStackTable
AS
SELECT *
FROM Employee
WHERE position = 'fullstack'
.
borntoDev - 🦖 สร้างการเรียนรู้ที่ดีสำหรับสายไอทีในทุกวัน
同時也有11部Youtube影片,追蹤數超過12萬的網紅prasertcbs,也在其Youtube影片中提到,============ playlist สอน Microsoft SQL Server 2012, 2014, 2016 https://www.youtube.com/watch?v=IQdjbBrm38s&list=PLoTScYm9O0GH8gYuxpp-jqu5Blc7KbQVn =...
「sql create table」的推薦目錄:
- 關於sql create table 在 BorntoDev Facebook
- 關於sql create table 在 91 敏捷開發之路 Facebook
- 關於sql create table 在 純靠北工程師 Facebook
- 關於sql create table 在 prasertcbs Youtube
- 關於sql create table 在 prasertcbs Youtube
- 關於sql create table 在 prasertcbs Youtube
- 關於sql create table 在 SQL Tutorial - 9: Create Table Statement - YouTube 的評價
sql create table 在 91 敏捷開發之路 Facebook 八卦
有在使用 MS SQL server 的朋友,如果有需要找到 identity 跳號的資料,可以參考一下新的寫法,查詢成本省很大。
#長知識
【SQL Tips】之【了解為何identity會發生不連續號碼與快速找出那些號碼是跳號】20171224
**identity保證唯一,不保證連續**
**使用SARG規則與SET BASED方式找出不連續號碼**
**最後那三種找出不連續的技巧,成本比如下
50%(SELF JOIN搭配NOT IN) : 32%(SELF JOIN搭配 OFFSET 函數) : 18%(LAG 函數) **
許多SQL Server開發人員經常會使用identity自動產生連續編號,然而該identity卻有一個特質是發生交易退回(rollback)則會產生跳號的狀況,以下的狀況就是identity碰到交易退回後所產生的跳號情況。
***
use tempdb
go
if object_id('tblNum') is not null
drop table tblNum
go
create table tblNum
(c1 int identity ,
c2 nvarchar(30) unique --防止重複
)
go
insert into tblNum(c2) values ('lewis1')
insert into tblNum(c2) values ('lewis2')
insert into tblNum(c2) values ('lewis3')
insert into tblNum(c2) values ('lewis3') --重複姓名就發生跳號
insert into tblNum(c2) values ('lewis5')
insert into tblNum(c2) values ('lewis5') --重複姓名就發生跳號
insert into tblNum(c2) values ('lewis5') --重複姓名就發生跳號
insert into tblNum(c2) values ('lewis8')
insert into tblNum(c2) values ('lewis9')
insert into tblNum(c2) values ('lewis10')
go
select * from tblNum
GO
--結果
c1 c2
1 lewis1
2 lewis2
3 lewis3
5 lewis5 <--發生跳號
8 lewis8 <--發生跳號
9 lewis9
10 lewis10
***
基本上單一執行INSERT UPDATE DELETE 就是一種隱性交易,上述的範例就是因為條件約束(constraint)的unique緣故,當輸入的文字發生重複的時候,就會自動退回交易,緊接著identity也隨之發生跳號的狀況。
當瞭解identity會有發生跳號的特質之後,接下來分享三種從SQL Server 2005開始使用的抓取跳號的範例,以及從SQL Server 2012開始支援的Windows Offset函數抓取跳號的技巧。這三種技巧都是使用set-based的方式,不使用WHILE迴圈去比對資料的連續性,值得一試。
**從SQL Server 2005支援的抓取跳號的技巧
--使用自我查詢產生搭配CTE
--使用SET BASED技巧取代迴圈處理
WITH DS AS (
SELECT DS1.* FROM tblNum as DS1 JOIN
tblNum as DS2
on DS1.c1 = DS2.c1+1 )
SELECT * FROM tblNum
WHERE c1 NOT IN (SELECT TOP(1) c1 FROM tblNum ORDER BY c1)
EXCEPT
SELECT * FROM DS
GO
**從SQL Server 2012支援的抓取跳號的技巧
--使用自我查詢產生搭配OFFSET
--使用SET BASED技巧取代迴圈處理
WITH DS AS (
SELECT DS1.* FROM tblNum as DS1 JOIN
tblNum as DS2
on DS1.c1 = DS2.c1+1 ),
DS2 AS (SELECT * FROM tblNum ORDER BY 1 OFFSET 1 ROW )
SELECT * FROM DS2
EXCEPT
SELECT * FROM DS
GO
**從SQL Server 2012支援的抓取跳號的技巧
--使用自我查詢產生搭配LAG的Windows Offset技巧
--使用SET BASED技巧取代迴圈處理
WITH DIFF AS (
select *,LAG(c1, 1,0) OVER ( ORDER BY c1) as previous
,c1 - LAG(c1, 1,0) OVER ( ORDER BY c1) as diff
from tblNum
)
SELECT c1,c2 FROM DIFF WHERE diff>1
GO
--結果就是 5/8 之前就發生跳號
c1 c2
5 lewis5
8 lewis8
最後那三種找出不連續的技巧,成本比如下
50%(SELF JOIN搭配NOT IN) : 32%(SELF JOIN搭配 OFFSET) : 18%(LAG)
sql create table 在 純靠北工程師 Facebook 八卦
#純靠北工程師3xp
----------
原來這樣簡單的SQL
在SQL Server 2005 是不支護。
INSERT INTO Table (Name, Location) VALUES
('Name1', 'Location1'),
('Name2', 'Location2'),
('Name3', 'Location3'), etc...
----------
🗳️ [群眾審核] https://kaobei.engineer/cards/review
👉 [GitHub Repo] https://github.com/init-engineer/init.engineer
📢 [匿名發文] https://kaobei.engineer/cards/create
🥙 [全平台留言] https://kaobei.engineer/cards/show/5101
sql create table 在 prasertcbs Youtube 的評價
============
playlist สอน Microsoft SQL Server 2012, 2014, 2016
https://www.youtube.com/watch?v=IQdjbBrm38s&list=PLoTScYm9O0GH8gYuxpp-jqu5Blc7KbQVn
============
playlist สอน SQLite
https://www.youtube.com/watch?v=BL1ncKBW3jw&list=PLoTScYm9O0GHjYJA4pfG38M5BcrWKf5s2
============
playlist การใช้ Excel ในการทำงานร่วมกับกับฐานข้อมูล (SQL Server, MySQL, Access)
https://www.youtube.com/watch?v=HfKl6eOfNFo&list=PLoTScYm9O0GGA2sSqNRSXlw0OYuCfDwYk
============
playlist การเชื่อมต่อกับฐานข้อมูล (SQL Server, MySQL, SQLite) ด้วย Python
https://www.youtube.com/watch?v=2n2SLFET-GU&list=PLoTScYm9O0GEdZtHwU3t9k3dBAlxYoq59
============
เชิญสมัครเป็นสมาชิกของช่องนี้ได้ที่
https://www.youtube.com/subscription_center?add_user=prasertcbs
sql create table 在 prasertcbs Youtube 的評價
เนื้อหาในตอนนี้เริ่มต้นจาก
1) การติดตั้งและใช้ pyodbc package เพื่อใช้ในการติดต่อกับฐานข้อมูลผ่าน ODBC (pip install pyodbc)
2) การติดตั้ง MySQL ODBC driver for Windows (ดาวน์โหลดได้ที่ https://dev.mysql.com/downloads/connector/odbc/)
3) ขั้นตอนการสร้าง connection string เพื่อเชื่อมต่อกับฐานข้อมูล MySQL
4) การสร้างตารางในฐานข้อมูล (CREATE TABLE)
5) การเพิ่มข้อมูลเข้าไปในตาราง (INSERT)
6) การเรียกใช้ข้อมูล (SELECT)
=== ดาวน์โหลดไฟล์ตัวอย่างได้ที่ https://goo.gl/fggdyq
เชิญสมัครเป็นสมาชิกของช่องนี้ได้ที่ https://www.youtube.com/subscription_center?add_user=prasertcbs
► สอน Python 3 การติดต่อกับฐานข้อมูล https://www.youtube.com/watch?v=2n2SLFET-GU&list=PLoTScYm9O0GEdZtHwU3t9k3dBAlxYoq59
► สอน Python https://www.youtube.com/playlist?list=PLoTScYm9O0GH4YQs9t4tf2RIYolHt_YwW
► สอน Python OOP https://www.youtube.com/playlist?list=PLoTScYm9O0GEIZzlTKPUiOqkewkWmwadW
► สอน Python GUI https://www.youtube.com/playlist?list=PLoTScYm9O0GFB1Y3cCmb9aPD5xRB1T11y
► สอน Microsoft SQL Server https://www.youtube.com/playlist?list=PLoTScYm9O0GH8gYuxpp-jqu5Blc7KbQVn
► สอน MySQL https://www.youtube.com/playlist?list=PLoTScYm9O0GFmJDsZipFCrY6L-0RrBYLT
► สอน PostgreSQL https://www.youtube.com/playlist?list=PLoTScYm9O0GGi_NqmIu43B-PsxA0wtnyH
► สอน SQLite https://www.youtube.com/playlist?list=PLoTScYm9O0GHjYJA4pfG38M5BcrWKf5s2
► การเชื่อมต่อกับฐานข้อมูล (SQL Server, MySQL, PostgreSQL, SQLite) ด้วย Python ► https://www.youtube.com/playlist?list=PLoTScYm9O0GEdZtHwU3t9k3dBAlxYoq59
#prasertcbs_SQL #prasertcbs #prasertcbs_python
sql create table 在 prasertcbs Youtube 的評價
การสร้าง SQLite ตารางด้วยไพธอน ด้วยคำสั่ง CREATE TABLE
การสร้างเพิ่มข้อมูลเข้าไปในตารางด้วยคำสั่ง INSERT
การใช้ executescript() เพื่อทำงานคำสั่ง SQL หลาย ๆ คำสั่งพร้อม ๆ กัน เช่น การเพิ่มข้อมูลหลาย ๆ แถวเข้าไปพร้อม ๆ กัน
การใช้ begin...commit เพื่อทำงานแบบ Transaction ใน SQLite
=== ดาวน์โหลดไฟล์ตัวอย่างได้ที่ https://goo.gl/hdqBcM
=== ดาวน์โหลดไฟล์ฐานข้อมูล SQLite ได้ที่ https://goo.gl/Lbi88A
เชิญสมัครเป็นสมาชิกของช่องนี้ได้ที่ https://www.youtube.com/subscription_center?add_user=prasertcbs
► สอน Python 3 การติดต่อกับฐานข้อมูล https://www.youtube.com/watch?v=2n2SLFET-GU&list=PLoTScYm9O0GEdZtHwU3t9k3dBAlxYoq59
► สอน Python https://www.youtube.com/playlist?list=PLoTScYm9O0GH4YQs9t4tf2RIYolHt_YwW
► สอน Python OOP https://www.youtube.com/playlist?list=PLoTScYm9O0GEIZzlTKPUiOqkewkWmwadW
► สอน Python GUI https://www.youtube.com/playlist?list=PLoTScYm9O0GFB1Y3cCmb9aPD5xRB1T11y
► สอน Microsoft SQL Server https://www.youtube.com/playlist?list=PLoTScYm9O0GH8gYuxpp-jqu5Blc7KbQVn
► สอน MySQL https://www.youtube.com/playlist?list=PLoTScYm9O0GFmJDsZipFCrY6L-0RrBYLT
► สอน PostgreSQL https://www.youtube.com/playlist?list=PLoTScYm9O0GGi_NqmIu43B-PsxA0wtnyH
► สอน SQLite https://www.youtube.com/playlist?list=PLoTScYm9O0GHjYJA4pfG38M5BcrWKf5s2
► การเชื่อมต่อกับฐานข้อมูล (SQL Server, MySQL, PostgreSQL, SQLite) ด้วย Python ► https://www.youtube.com/playlist?list=PLoTScYm9O0GEdZtHwU3t9k3dBAlxYoq59
#prasertcbs_SQL #prasertcbs #prasertcbs_python
sql create table 在 SQL Tutorial - 9: Create Table Statement - YouTube 的八卦
In this tutorial we'll learn to create tables in SQL using the CREATE TABLE Statement. ... <看更多>