❗️날짜별로 정리하여 복습하기를 원하기 때문에 내용이 길고 다소 정리되지 않았습니다.

CREATE TABLE ARTIST(
// SQL Server에선 IENTITY(a,b) 구문이 a번부터 b만큼 증가하며 자동부여
ArtistID Int NOT NULL IDENTITY(1,1),
LastName Char(25) NOT NULL,
FirstName Char(25) NOT NULL,
...
CONSTRAINT ArtistPK PRIMARY KEY(ArtistID),
// 제약조건(CONSTRAINT) 복합키이자 대체키
CONSTRAINT ArtistAK1 UNIQUE(LastName, FirstName)
);
CREATE TABLE ARTIST(
ArtistID Int NOT NULL IDENTITY(1,1),
LastName Char(25) NOT NULL,
FirstName Char(25) NOT NULL,
...
CONSTRAINT ArtistPK PRIMARY KEY(ArtistID),
CONSTRAINT ArtistAK1 UNIQUE(LastName, FirstName)
);
CREATE TABLE WORK(
WorkID Int NOT NULL IDENTITY(500,1),
Title Char(35) NOT NULL,
Copy Char(12) NOT NULL,
Medium Char(35) NULL,
[Description] VarChar(1000) NULL DEFAULT 'Unknown provenance',
ArtistID Int NOT NULL,
CONSTRAINT WorkPK PRIMARY KEY (WorkID),
CONSTRAINT WorkAK1 UNIQUE (Title, Copy),
CONSTRAINT ArtistFK FOREIGN KEY (ArtistID)
REFERENCES ARTIST(ArtistID)
ON UPDATE NO ACTION
ON UPDATE NO ACTION
);
CREATE TABLE ARTIST(
ArtistID Int NOT NULL IDENTITY(1,1),
LastName Char(25) NOT NULL,
FirstName Char(25) NOT NULL,
Nationality Char(30) NULL,
...
CONSTRAINT ArtistPK PRIMARY KEY (ArtistID),
CONSTRAINT ArtistAK1 UNIQUE (LastName, FirstName)
CONSTRAINT NationalityValues CHECK
(Nationality IN ('Canadian', 'English',
'French', 'German')),
...
);
CREATE TABLE WORK(
WorkID Int. NOT NULL IDENTITY(500,1),
Title Char(35) NOT NULL,
Copy Char(12) NOT NULL,
Medium Char(35) NULL,
[Description] VarChar(1000) NULL DEFAULT 'Unknown provenance',
ArtistID Int NOT NULL,
CONSTRAINT WorkPK PRIMARY KEY (WorkID),
CONSTRAINT WorkAK1 UNIQUE (Title, Copy),
CONSTRAINT ArtistFK FOREIGN KEY (ArtistID)
REFERENCES ARTIST (ArtistID)
ON UPDATE NO ACTION
ON UPDATE NO ACTION
);
ALTER TABLE ASSIGNMENT
ADD CONSTRAINT EmployeeFK
FOREIGN KEY (EmployeeNumber)
REFERENCES EMPLOYEE (EmployeeNumber)
ON UPDATE CASCADE
ON DELETE NO ACTION;
ALTER TABLE CUSTOMER ADD MyColumn Char(5) NULL;
ALTER TABLE CUSTOMER DROP COLUMN MyColumn;
ALTER TABLE CUSTOMER
ADD CONSTRAINT MyConstraint CHECK
([Name] NOT IN ('Robert No Pay'));
ALTER TABLE CUSTOMER
DROP CAONSTRAINT MyConstraint;
DROP TABLE TRANS;
// if there are constraints
ALTER TABLE CUSTOMER_ARTIST_INT
DROP CONSTRAINT
Customer_Artist_Int_CustomerFK;
ALTER TABLE [TRANSACTION]
DROP CONSTRAINT TransactionCustomerFK;
DROP TABLE CUSTOMER;
INSERT INTO ARTIST ([NAME], Nationality, DateOfBirth, DateDeceased)
VALUES ('Tamayo', 'Mexican', 1927, 1998);
//Bulk INSERT
INSERT INTO ARTIST ([NAME], Nationality, DateOfBirth)
SELECT [Name], Nationality, BirthDate
FROM IMPORTED_ARTIST;
UPDATE CUSTOMER
SET City = 'New York City'
WHERE CustomerID = 1000;
//Bulk UPDATE
UPDATE CUSTOMER
SET AreaCode = '333'
WHERE City = 'Denver';
DELETE FROM CUSTOMER
WHERE CustomerID = 1000;
SELECT CUSTOMER.Name, ARTIST.Name
FROM CUSTOMER JOIN CUSTOMER_ARTIST_INT
ON CUSTOMER.CustomerID = CUSTOMER_ARTIST_INT.CustomerID
JOIN ARTIST
ON CUSTOMER_ARTIST_INT.ArtistID = ARTIST.ArtistID;
SELECT C.LastName, C.FirstName,
A.LastName AS ArtistName
FROM CUSTOMER C LEFT JOIN CUSTOMER_ARTIST_INT CI
ON C.CustomerID = CI.CustomerID LEFT JOIN ARTIST A
ON CI.ArtistID = A.ArtistID;
CREATE VIEW CustomerNameView AS
SELECT LastName AS CustomerLastName,
FirstName AS CustomerFirstName,
FROM CUSTOMER;
//뷰 보기
SELECT * FROM CustomerNameView
ORDER BY CustomerLastName, CustomerFirstName;