π PostgreSQL κΈ°λ³Έ β © - λ°μ΄ν° κ²μ¬ λ° μμ
π
γμ€μ© SQLγ
μ μ½κ³ μ 리ν κΈμ λλ€.
μ‘λ₯, κ°κΈλ₯ λ° κ³λ μμ°μ 체 λ°μ΄ν° κ°μ Έμ€κΈ°
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
CREATE TABLE meat_poultry_egg_establishments (
establishment_number text CONSTRAINT est_number_key PRIMARY KEY,
company text,
street text,
city text,
st text,
zip text,
phone text,
grant_date date,
activities text,
dbas text
);
COPY meat_poultry_egg_establishments
FROM 'C:\YourDirectory\MPI_Directory_by_Establishment_Name.csv'
WITH (FORMAT CSV, HEADER);
CREATE INDEX company_idx ON meat_poultry_egg_establishments (company);
λ°μ΄ν°μ μΈν°λ·°νκΈ°
1
2
3
4
5
6
7
8
9
SELECT company,
street,
city,
st,
count(*) AS address_count
FROM meat_poultry_egg_establishments
GROUP BY company, street, city, st
HAVING count(*) > 1
ORDER BY company, street, city, st;
meat_poultry_egg_establishments
ν μ΄λΈμ μν μμ°μ 체λ₯Ό μ€λͺ νλ€.- μΈλ» 보면 κ° νμ κ° νμ¬λ€μ΄ μλ‘ λ€λ₯Έ μ£Όμμμ μ΄μλλ€κ³ μκ°ν μ μμ§λ§, κ·Έλ μ§ μμ μ μμΌλ―λ‘ κ°μ μ£Όμλ₯Ό κ°μ§ μ¬λ¬ νμ¬λ₯Ό μ‘°νν΄λ³΄μ.
HAVING
μ μ ν΅ν΄ λ κ° μ΄μμ νμ΄ μλ κ²½μ°λ§ μΆλ ₯νλ€.
company | street | city | st |
---|---|---|---|
Acre Station Meat Farm | 17076 Hwy 32 N | Pinetown | NC |
Beltex Corporation | 3801 North Grove Street | Fort Worth | TX |
Cloverleaf Cold Storage | 111 Imperial Drive | Sanford | NC |
Crete Core Ingredients, LLC | 2220 County Road I | Crete | NE |
Crider, Inc. | 1 Plant Avenue | Stillmore | GA |
Dimension Marketing & Sales, Inc. | 386 West 9400 South | Sandy | UT |
Foster Poultry Farms, A California Corporation | 6648 Highway 15 North | Farmerville | LA |
Freezer & Dry Storage, LLC | 21740 Trolley Industrial Drive | Taylor | MI |
JBS Souderton Inc. | 249 Allentown Road | Souderton | PA |
KB Poultry Processing LLC | 15024 Sandstone Dr. | Utica | MN |
Lakeside Refrigerated Services | 2600 Oldmans Creek Road | Swedesboro | NJ |
Liberty Cold Storage | 1310 Remington Blvd. | Bolingbrook | IL |
M.G. Waldbaum Company | 120 Tower Street | Gaylord | MN |
Midway International Logistics LLC | 948 Bradley Street | Watertown | NY |
Nordic Logistics and Warehousing, LLC | 220 Nordic Way | Pooler | GA |
OK Foods, Inc. | 3921 Reed Lane | Fort Smith | AR |
Pacific Produce Corporation | 220 East Harmon Industrial Park Road | Tamuning | GU |
Payless Distribution Center (PDC) | 370 Mendioka Street | Dededo | GU |
Piatkowski Riteway Meats Inc. | 3555 Witmer Road | Niagara Falls | NY |
Preferred Freezer Services | 2700 Trade Street | Chesapeake | VA |
THE AMERICAN PIG | 25 MEADOW ROAD | ASHEVILLE | NC |
The Classic Jerky Company | 21655 Trolley Industrial Drive | Taylor | MI |
United States Cold Storage Inc. | 11801 NW 102 Road | Medley | FL |
- μ΄ 23κ°μ νμ΄ μΆλ ₯λμλ€.
- νμ¬κ° λμΌν μ£Όμμ μ¬λ¬ λ² λνλλ λ° νλΉν μ΄μ κ° μμ μ μμ§λ§, λ°μ΄ν° μ λ ₯ μ€λ₯κ° λ°κ²¬λ κ²μΌ μλ μμΌλ―λ‘ λ°μ΄ν°μ μ μμ‘΄νμ§ μκ³ μ ν¨μ±μ λν μ°λ €λ₯Ό μ κΈ°νλ κ²μ΄ νλͺ ν λ°©λ²μ΄λ€.
κ²°μΈ‘κ° νμΈνκΈ°
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
-- μ£Ό κ·Έλ£Ήννκ³ μΈκΈ°
SELECT st,
count(*) AS st_count
FROM meat_poultry_egg_establishments
GROUP BY st
ORDER BY st;
-- IS NULLμ μ¬μ©νμ¬ st μ΄μμ κ²°μΈ‘ κ° μ°ΎκΈ°
SELECT establishment_number,
company,
city,
st,
zip
FROM meat_poultry_egg_establishments
WHERE st IS NULL;
- 첫 λ²μ§Έ 쿼리λ λͺ¨λ μ£Ό μ΄μ κ°μ΄ μλμ§, μλ€λ©΄ λͺ κ°μ© μλμ§ νμΈνλ λͺ λ Ήμ΄λ€.
- μ€νν΄λ³΄λ©΄,
NULL
κ°μ κ°μ§ νμ΄ 3κ° μλ€λ μ¬μ€μ μ μ μλ€. - λ λ²μ§Έ 쿼리λ₯Ό ν΅ν΄ κ²°μΈ‘κ°μ μ‘°νν κ²°κ³Όλ λ€μκ³Ό κ°λ€.
establishment_number | company | city | st | zip |
---|---|---|---|---|
V18677A | Atlas Inspection, Inc. | Blaine | Β | 55449 |
M45319+P45319 | Hall-Namie Packing Company, Inc | Β | Β | 36671 |
M263A+P263A+V263A | Jones Dairy Farm | Β | Β | 53538 |
- κ° μ£Όμμ 보μ ν μμ€μ μ νν κ°μλ₯Ό μκ³ μ ν λ μμ κ°μ κ²°μΈ‘κ°μ μλͺ»λ κ²°κ³Όλ₯Ό μ΄λν μ μλ€.
- μ΄μ κ°μ μ€λ₯λ₯Ό λ°μνλ©΄ λ€μ΄λ‘λν μλ³Έ νμΌμ μ§μ νμΈνμ¬, λ°μ΄ν°λ₯Ό κ°μ Έμ€λ κ³Όμ μμ λ°μν κ²μΈμ§, λ°μ΄ν° μ체μ λ΄μ¬λ μ€λ₯μΈμ§ νμΈν΄μΌ νλ€.
μΌκ΄μ± μλ λ°μ΄ν° κ° νμΈνκΈ°
1
2
3
4
5
SELECT company,
count(*) AS company_count
FROM meat_poultry_egg_establishments
GROUP BY company
ORDER BY company ASC;
count()
μ ν¨κ»GROUP BY
λ₯Ό μ¬μ©νμ¬ μ΄ λ΄μμ μΌκ΄λμ§ μκ² μ λ ₯λ λ°μ΄ν°λ₯Ό νμΈν μ μλ€.- κ°λ Ή μ‘°ν κ²°κ³Ό μ€ μΌλΆλ λ€μκ³Ό κ°λ€.
company | company_count |
---|---|
AdvancePierre Foods | 1 |
Advance Pierre Foods, Inc | 2 |
Advance Pierre Foods, Inc. | 1 |
AdvancePierre Foods, Inc | 1 |
AdvancePierre Foods, Inc. | 7 |
- λμΌν νμ¬κ° μμ νκ³ μμ κ°λ₯μ±μ΄ λμ 12κ° μμ€μ λν΄ μ μ΄λ λ€μ― κ° μ΄μμ μλ‘ λ€λ₯Έ νκΈ° λ°©μμ΄ μ‘΄μ¬νλ€.
- μ§κ³λκ±°λ ν©μ°λ λͺ¨λ νλͺ©μ΄ μ μ νκ² κ·Έλ£Ήνλλλ‘ μ΄λ¦μ νμ€ννλ κ²μ΄ μ’λ€.
length()
λ₯Ό μ¬μ©νμ¬ μλͺ»λ κ° νμΈνκΈ°
1
2
3
4
5
6
7
8
9
10
11
12
13
14
-- length()μ count()λ₯Ό μ¬μ©νμ¬ zip μ΄ ν
μ€νΈν΄ 보기
SELECT length(zip),
count(*) AS length_count
FROM meat_poultry_egg_establishments
GROUP BY length(zip)
ORDER BY length(zip) ASC;
-- zip μ΄μμ μ§§μ κ°μ μ°ΎκΈ° μν΄ length()λ‘ νν°λ§νκΈ°
SELECT st,
count(*) AS st_count
FROM meat_poultry_egg_establishments
WHERE length(zip) < 5
GROUP BY st
ORDER BY st ASC;
- μ¬μ€
CSV
λ°μ΄ν°λ₯Ό κ°μ Έμ€λ κ³Όμ μμ μ€λ₯λ₯Ό μ¬ννκΈ° μν΄ μ°νΈλ²νΈλ₯Ό ν μ€νΈ κ° λμ μΌλ° μ«μ νμμΌλ‘ μ€νλ λμνΈμ μ μ₯νλ€. - μ΄λ κ² νλ©΄ μ μκ° 0μΌλ‘ μμν μ μκΈ° λλ¬Έμ 07502μ²λΌ 0μΌλ‘ μμλλ μ°νΈλ²νΈλ μ ννλ 0μ μλλ€.
- μ€μ λ‘λ μ΄λ¬ν μν©μ λ°©μ§νκΈ° μν΄ ν μ€νΈ νμμ μ§μ ν΄μΌ νλ μ«μμ μ£Όμλ₯Ό κΈ°μΈμ¬μΌ νλ€.
- μ°νΈλ²νΈλ λ€μ― μ리 μ«μμΈλ°, 첫 λ²μ§Έ 쿼리λ₯Ό ν΅ν΄ 3, 4 μ리μ μ«μλ μ‘΄μ¬νλ κ±Έ νμΈν μ μλ€.
- λ λ²μ§Έ 쿼리λ₯Ό ν΅ν΄ μ΄λ€ μ£Όμ μ°νΈλ²νΈκ° μλͺ» μ μ₯λμλμ§ λͺ©λ‘μ νμΈν μ μλ€.
- μ§κΈκΉμ§ νμΈν λ¬Έμ λͺ©λ‘μ λ€μκ³Ό κ°λ€.
st
μ΄μ 3κ° νμ λν κ²°μΈ‘κ°- νλ μ΄μμ νμ¬ μ΄λ¦ μ² μ λΆμΌμΉ
- νμΌ λ³νμΌλ‘ μΈν΄ λΆμ νν΄μ§ μ°νΈλ²νΈ
ν μ΄λΈ, μ΄, λ°μ΄ν° μμ νκΈ°
- ν μ΄λΈμμ μ΄, λ°μ΄ν° νμ , κ°μ μ΄λ₯΄κΈ°κΉμ§ λ°μ΄ν°λ² μ΄μ€μμ μμ±λ ν ꡬ체μ μΌλ‘ κ³ μ λλ κ²μ κ±°μ μλ€.
- νμμ λ°λΌ ν μ΄λΈμ μ΄μ μΆκ°νκ³ , κΈ°μ‘΄ μ΄μ λ°μ΄ν° νμ μ λ³κ²½νκ³ , κ°μ νΈμ§νκ² λλ€.
λ°μ΄ν° μΈν°λ·°μμ λ무 λ§μ κ²°μΈ‘κ° λλ μμ²μ μμνλλ° μμ μ΅μ μ΄λ₯΄λ μμΌλ‘ μμμ μ΄κΈλλ κ°μ΄ λ°κ²¬λλ©΄ κ·Έ λ°μ΄ν°μ μ¬μ©μ μ¬νκ°ν΄μΌ νλ€. λ§μ΄ μμ¬λλ κ²½μ° μ²« λ²μ§Έ λ¨κ³λ μλ³Έ λ°μ΄ν° νμΌμ λ€μ νμΈνλ κ²μ΄λ€. μ¬λ°λ₯΄κ² κ°μ Έμλμ§, λͺ¨λ μ΄μ λ°μ΄ν°κ° ν μ΄λΈμ λμΌν μ΄μ μλμ§ νμΈν΄μΌ νλ€. λλ λ°μ΄ν°λ₯Ό μμ±ν κΈ°κ΄μ΄λ νμ¬μ μ°λ½νμ¬ λ³΄κ³ μλ λ΄μ©μ νμΈνκ³ μ€λͺ μ μμ²νλ κ²μ΄λ€. λμΌν λ°μ΄ν°λ₯Ό μ¬μ©ν λ€λ₯Έ μ¬λμκ² μ‘°μΈμ ꡬνλ λ°©λ²λ μλ€.
ALTER TABLE
λ‘ ν
μ΄λΈ μμ νκΈ°
1
2
3
4
5
6
7
8
9
10
11
12
-- ν
μ΄λΈ μ΄ μΆκ°
ALTER TABLE table_name ADD COLUMN column_name data_type;
-- ν
μ΄λΈ μ΄ μ κ±°
ALTER TABLE table_name DROP COLUMN column_name;
-- ν
μ΄λΈ μ΄ λ°μ΄ν° νμ
λ³κ²½
ALTER TABLE table_name ALTER COLUMN column_name SET DATA TYPE data_type;
-- ν
μ΄λΈ μ΄ μ μ½ μ‘°κ±΄ μΆκ°/μμ
ALTER TABLE table_name ALTER COLUMN column_name SET NOT NULL;
ALTER TABLE table_name ALTER COLUMN column_name DROP NOT NULL;
UPDATE
λ‘ κ° μμ νκΈ°
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
-- λͺ¨λ νμ λ¨μΌ μ΄ μμ
UPDATE table_name SET column = value;
-- λͺ¨λ νμ μ¬λ¬ μ΄ μμ
UPDATE table_name SET column_a = value, column_b = value;
-- νΉμ ν μμ
UPDATE table_name SET column = value WHERE criteria;
-- ν ν
μ΄λΈμ λ€λ₯Έ ν
μ΄λΈμ κ°μΌλ‘ μμ
UPDATE table_name
SET column = ( SELECT column
FROM table_b
WHERE table.column = table_b.column )
WHERE EXISTS ( SELECT column
FROM table_b
WHERE table.column = table_b.column );
- λ§μ§λ§ 쿼리μ κ²½μ°
WHERE EXISTS
μ μ΄ μμΌλ©΄ μλμΉ μκ² μΌλΆ κ°μNULL
λ‘ μ€μ νκ² λ μ μλ€. - μΌλΆ λ°μ΄ν°λ² μ΄μ€ κ΄λ¦¬μλ ν μ΄λΈ κ° μ λ°μ΄νΈλ₯Ό μν μΆκ° ꡬ문μ μ 곡νλ€.
- κ°λ Ή
PostgreSQL
μμλ λ€μ 쿼리λ κ°λ₯νλ€.
1
2
3
4
UPDATE table
SET column = table_b.column
FROM table_b
WHERE table.column = table_b.column;
UPDATE
λ¬Έμ μ€νν λPostgreSQL
μ μν₯μ λ°λ ν μμ ν¨κ»UPDATE
λ₯Ό λνλ΄λ λ©μμ§λ₯Ό λ°ννλ€.
RETURNING
μΌλ‘ μμ λ λ°μ΄ν° 보기
UPDATE
λ¬ΈμRETURNING
ν€μλλ₯Ό μΆκ°νλ©΄ λ³λμ 쿼리λ₯Ό μΆκ° μ λ ₯ν νμ μμ΄ μμ λ κ°μ νμΈν μ μλ€.
1
2
3
UPDATE table_name
SET column_a = value
RETURNING column_a, column_b, column_c;
RETURNING
μ λ°μ΄ν°λ² μ΄μ€κ° μμ λ ν μλ₯Ό νμνλ λμ μμ λ νμμ μ§μ ν μ΄μ νμνλλ‘ μ§μνλ€.RETURNING
μPostgreSQL
μ μ© κ΅¬νμΌλ‘INSERT
μDELETE FROM
κ³Ό ν¨κ» μ¬μ©ν μλ μλ€.
λ°±μ ν μ΄λΈ μμ±νκΈ°
1
2
3
4
5
6
7
CREATE TABLE meat_poultry_egg_establishments_backup AS
SELECT * FROM meat_poultry_egg_establishments;
-- λ μ½λ μ νμΈ
SELECT
(SELECT count(*) FROM meat_poultry_egg_establishments) AS original,
(SELECT count(*) FROM meat_poultry_egg_establishments_backup) AS backup;
- ν μ΄λΈμ μμ νκΈ° μ μ μ°Έμ‘° λ° λ°±μ μ μν 볡μ¬λ³Έμ λ§λλ κ²μ΄ μ’λ€.
- μ λ§λ€μ΄μ‘λμ§λ λ λ²μ§Έ 쿼리λ₯Ό ν΅ν΄ λ ν μ΄λΈμ λ μ½λ μλ₯Ό λΉκ΅νλ©΄ λλ€.
original | backup |
---|---|
6,287 | 6,287 |
- μ°Έκ³ λ‘
CREATE TABLE
λ¬Έμ ν΅ν΄ ν μ΄λΈ λ°±μ μ μμ±ν λ μΈλ±μ€λ 볡μ¬λμ§ μλλ€. - λ°±μ μμ 쿼리λ₯Ό μ€ννκΈ°λ‘ κ²°μ λ κ²½μ° λ³λμ μΈλ±μ€λ₯Ό μμ±ν΄μΌ νλ€.
λλ½λ μ΄ κ° λ³΅μνκΈ°
- μμ λ°μ΄ν° μΈν°λ·°μμ
meat_poultry_egg_establishments
ν μ΄λΈμ μΈ νμNULL
κ°μ κ°κ³ μμμ μ μ μμλ€. - κ° μ£Όμμ μ 체 μμ€ μλ₯Ό μ»μΌλ €λ©΄
UPDATE
λ¬Έμ μ¬μ©νμ¬ λλ½λ κ°μ μ±μμΌ νλ€.
μ΄ λ³΅μ¬λ³Έ μμ±νκΈ°
1
2
ALTER TABLE meat_poultry_egg_establishments ADD COLUMN st_copy text;
UPDATE meat_poultry_egg_establishments SET st_copy = "st";
- μ΄λκ°μ μ¬κ°ν μ€λ₯κ° λ°μνλλΌλ μλ λ°μ΄ν°κ° μ μ§λλλ‘ μ£Όμλ₯Ό κΈ°μΈμ΄κΈ° μν΄μλ μ΄ λ³΅μ¬λ³Έμ λ§λλ κ²μ΄ μ’λ€.
- λ€μ 쿼리λ₯Ό ν΅ν΄ κ°μ΄ μ λλ‘ λ³΅μ¬λμλμ§ νμΈν μ μλ€.
1
2
3
4
5
SELECT st,
st_copy
FROM meat_poultry_egg_establishments
WHERE st IS DISTINCT FROM st_copy
ORDER BY st;
IS DISTINCT FROM
μ λ μ΄μ κ°μ΄ λ€λ₯Έμ§ νμΈνλ€.- λν
NULL
μ κ°μΌλ‘ μ·¨κΈνκΈ° λλ¬Έμ λΉκ΅ κ²°κ³Όλ νμtrue
,false
μ΄λ€.
κ°μ΄ λλ½λ ν μ λ°μ΄νΈνκΈ°
1
2
3
4
5
6
7
8
9
10
11
12
UPDATE meat_poultry_egg_establishments
SET st = 'MN'
WHERE establishment_number = 'V18677A';
UPDATE meat_poultry_egg_establishments
SET st = 'AL'
WHERE establishment_number = 'M45319+P45319';
UPDATE meat_poultry_egg_establishments
SET st = 'WI'
WHERE establishment_number = 'M263A+P263A+V263A'
RETURNING establishment_number, company, city, st, zip;
- κ°
UPDATE
λ¬Έμ΄ λ¨μΌ νμ μν₯μ λ―ΈμΉκΈΈ μνλ―λ‘WHERE
μ μ κΈ°λ³Έ ν€μ λν 쑰건μ μΆκ°ν΄μΌ νλ€.
μλ κ° λ³΅μνκΈ°
1
2
3
4
5
6
7
8
9
-- λ°±μ
ν μ΄ λ³΅μνκΈ°
UPDATE meat_poultry_egg_establishments
SET st = st_copy;
-- λ°±μ
ν ν
μ΄λΈ 볡μνκΈ°
UPDATE meat_poultry_egg_establishments original
SET st = backup.st
FROM meat_poultry_egg_establishments_backup backup
WHERE original.establishment_number = backup.establishment_number;
- 첫 λ²μ§Έ 쿼리λ μ΄ λ³΅μ¬λ³Έμ ν΅ν΄ λ°μ΄ν°λ₯Ό 볡μνκ³ , λ λ²μ§Έ 쿼리λ λ°±μ ν ν μ΄λΈ ν΅ν΄ λ°μ΄ν°λ₯Ό 볡μνλ κ²μ΄λ€.
μΌκ΄μ±μ μν κ° μ λ°μ΄νΈνκΈ°
1
2
3
4
5
AdvancePierre Foods
Advance Pierre Foods, Inc
Advance Pierre Foods, Inc.
AdvancePierre Foods, Inc
AdvancePierre Foods, Inc.
- μμ λ°μ΄ν° μΈν°λ·°μμ νμ¬ μ΄λ¦μ΄ μΌκ΄λμ§ μκ² μ λ ₯λ κ²½μ°λ₯Ό λ°κ²¬νλ€.
UPDATE
λ¬Έμ μ¬μ©ν΄ μ΄ νμ¬ μ΄λ¦μ μ² μλ₯Ό νμ€νν μ μλ€.- λ°μ΄ν°λ₯Ό 보νΈνκΈ° μν΄ μ μ΄μ λ§λ€κ³ ,
company
μ΄ κ°μ μ μ΄μ 볡μ¬νκ³ μ, 볡μ¬ν κ°μΌλ‘ μμ νλ©΄ λλ€.
1
2
3
4
ALTER TABLE meat_poultry_egg_establishments ADD COLUMN company_standard text;
UPDATE meat_poultry_egg_establishments
SET company_standard = company;
company
μ΄μ μλ νμ¬ μ΄λ¦ μ€Pierre
κ° ν¬ν¨λμ΄ μλ κ²½μ°Advance-Pierre Foods, Inc.
λ‘ νμνκ³ μ νλ€.- λ€μκ³Ό κ°μ΄ λ°μ΄ν°λ₯Ό μμ ν΄μΌ νλ€.
1
2
3
4
UPDATE meat_poultry_egg_establishments
SET company_standard = 'Advance-Pierre Foods, Inc.'
WHERE company LIKE '%Pierre%'
RETURNING company, company_standard;
company | company_standard |
---|---|
Advance Pierre Foods, Inc | Advance-Pierre Foods, Inc. |
Advance Pierre Foods, Inc | Advance-Pierre Foods, Inc. |
Advance Pierre Foods, Inc. | Advance-Pierre Foods, Inc. |
AdvancePierre Foods | Advance-Pierre Foods, Inc. |
AdvancePierre Foods, Inc | Advance-Pierre Foods, Inc. |
AdvancePierre Foods, Inc. | Advance-Pierre Foods, Inc. |
AdvancePierre Foods, Inc. | Advance-Pierre Foods, Inc. |
AdvancePierre Foods, Inc. | Advance-Pierre Foods, Inc. |
AdvancePierre Foods, Inc. | Advance-Pierre Foods, Inc. |
AdvancePierre Foods, Inc. | Advance-Pierre Foods, Inc. |
AdvancePierre Foods, Inc. | Advance-Pierre Foods, Inc. |
AdvancePierre Foods, Inc. | Advance-Pierre Foods, Inc. |
- μ΄μ ν΄λΉ νμ¬ μ΄λ¦μ μΌκ΄λ μ² μλ‘ νμ€νλμκ³ , μ°Έμ‘°λ₯Ό μν΄ κΈ°μ‘΄
company
μ΄μ μ μ§νλ€.
μ°κ²°μ μ¬μ©νμ¬ μ°νΈλ²νΈ 볡ꡬνκΈ°
1
2
3
4
ALTER TABLE meat_poultry_egg_establishments ADD COLUMN zip_copy text;
UPDATE meat_poultry_egg_establishments
SET zip_copy = zip;
- μ μ½λλ μ΄ λ³΅μ¬λ³Έμ μμ±νλ 쿼리λ€.
1
2
3
4
5
6
7
8
9
-- λ κ°μ μ ν 0μ΄ λλ½λ zip μ΄μ μ½λ μμ νκΈ°
UPDATE meat_poultry_egg_establishments
SET zip = '00' || zip
WHERE st IN('PR','VI') AND length(zip) = 3;
-- ν κ°μ μ ν 0μ΄ λλ½λ zip μ΄μ μ½λ μμ νκΈ°
UPDATE meat_poultry_egg_establishments
SET zip = '0' || zip
WHERE st IN('CT','MA','ME','NH','NJ','RI','VT') AND length(zip) = 4;
- μ°νΈλ²νΈμ λλ½λ 0μ μΆκ°νλ 쿼리λ€.
- λ°μ΄ν°λ₯Ό μμ ν λ, λ°μ΄ν° μΈν°λ·° μ λ°κ²¬λ ν μμ μ€μ λ‘ μμ λ ν μλ₯Ό νμΈν΄μΌ νλ€.
μ¬λ¬ ν μ΄λΈμμ κ° μ λ°μ΄νΈνκΈ°
1
2
3
4
5
6
7
8
9
-- state_regions ν
μ΄λΈ μμ± λ° μ±μ°κΈ°
CREATE TABLE state_regions (
st text CONSTRAINT st_key PRIMARY KEY,
region text NOT NULL
);
COPY state_regions
FROM 'C:\YourDirectory\state_regions.csv'
WITH (FORMAT CSV, HEADER);
- μ°λ¦¬κ° λ€λ£¨λ ν μ΄λΈμ μλ κ° νμ¬λ€μ κ²μ¬ λ μ§λ₯Ό μ€μ νκΈ° μν΄ ν μ΄λΈμ μμ±νκ³ λ°μ΄ν°λ₯Ό κ°μ Έμ€μ.
1
2
3
4
5
6
7
8
9
10
-- inspection_deadline μ΄ μΆκ° λ° μ
λ°μ΄νΈνκΈ°
ALTER TABLE meat_poultry_egg_establishments
ADD COLUMN inspection_deadline timestamp with time zone;
UPDATE meat_poultry_egg_establishments establishments
SET inspection_deadline = '2022-12-01 00:00 EST'
WHERE EXISTS (SELECT state_regions.region
FROM state_regions
WHERE establishments.st = state_regions.st
AND state_regions.region = 'New England');
ALTER TABLE
λ¬Έμμ μ΄μ μΆκ°νκ³ , κ°μ μ£Όμ μνλ©΄μ κ·Έ μ§μμ΄ λ΄μκΈλλμΈ κ²½μ° κ²μ¬ λ μ§ κ°μ κ°±μ νλ€.
1
2
3
4
SELECT st, inspection_deadline
FROM meat_poultry_egg_establishments
GROUP BY st, inspection_deadline
ORDER BY st;
- κ²°κ³Όλ₯Ό νμΈν΄λ³΄λ©΄ λ΄μκΈλλ μ§μ μΈμλ μμ§ κ²μ¬ λ μ§ κ°μ΄
NULL
λ‘ μ€μ λμ΄ μλ κ²μ νμΈν μ μλ€.
λΆνμν λ°μ΄ν° μμ νκΈ°
ν μ΄λΈμμ ν μμ νκΈ°
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
-- λͺ¨λ ν μμ
DELETE FROM table_name;
-- νΉμ ν μμ
DELETE FROM table_name WHERE expression;
-- μμ ν
μ΄λΈμμ λ―Έκ΅ μν λ₯Ό μ μΈ
DELETE FROM meat_poultry_egg_establishments
WHERE st IN('AS','GU','MP','PR','VI');
-- ν
μ΄λΈ λ°μ΄ν° λΉμ°κΈ°
TRUNCATE table_name
-- ν
μ΄λΈ μνμ€ μ¬μ€μ
TRUNCATE table_name RESTART IDENTITY;
ν μ΄λΈ μ΄ μμ νκΈ°
1
2
3
4
5
-- ν
μ΄λΈ μ΄ μμ
ALTER TABLE table_name DROP COLUMN column_name;
-- μμ ν
μ΄λΈμμ μ΄ λ³΅μ¬λ³Έ μμ
ALTER TABLE meat_poultry_egg_establishments DROP COLUMN zip_copy;
λ°μ΄ν°λ² μ΄μ€μμ ν μ΄λΈ μμ νκΈ°
1
2
3
4
5
-- λ°μ΄ν°λ² μ΄μ€μμ ν
μ΄λΈ μμ
DROP TABLE table_name;
-- λ°μ΄ν°λ² μ΄μ€μμ μμ ν
μ΄λΈ μμ
DROP TABLE meat_poultry_egg_establishments_backup;
νΈλμμ μΌλ‘ λ³κ²½ μ¬ν μ μ₯νκΈ° λλ λλ리기
- μ§κΈκΉμ§ λ°°μ΄ λ°μ΄ν° λ³κ²½μ μ΅μ’ μ μΈ λ³κ²½μ΄λ€.
- μ¦
DELETE
λUPDATE
쿼리λ₯Ό μ€νν ν λ³κ²½ μ¬νμ μ€ν μ·¨μνλ μ μΌν λ°©λ²μ λ°±μ μμ 볡μνλ κ²μ΄λ€. - μ΄ λ°©λ²λ€κ³Ό λ€λ₯΄κ² λ³κ²½ μ¬νμ μλ£νκΈ° μ μ νμΈνμ¬, μλν λ³κ²½μ΄ μλλΌλ©΄ κ·Έ λ³κ²½ μ¬νμ μ·¨μνλ λ°©λ²λ μλ€.
- 쿼리μ μμκ³Ό λμ λ€μ ν€μλλ₯Ό μ¬μ©ν΄ μ μνλ λͺ
λ Ήλ¬Έ κ·Έλ£ΉμΈ νΈλμμ
λΈλ‘ λ΄μμ
SQL
λ¬ΈμΌλ‘ κ°μΈ μ΄λ₯Ό μννλ€.
START TRANSACTION
- νΈλμμ λΈλ‘μ μμμ μλ¦°λ€.
PostgreSQL
μμλ νμ€ANSI SQL
μ μνμ§ μλBEGIN
ν€μλλ₯Ό μ¬μ©ν μλ μλ€.
COMMIT
- λΈλ‘μ λμ μλ¦¬κ³ λͺ¨λ λ³κ²½ μ¬νμ μ μ₯νλ€.
ROLLBACK
- λΈλ‘μ λμ μλ¦¬κ³ λͺ¨λ λ³κ²½ μ¬νμ λλλ¦°λ€.
BEGIN
κ³ΌCOMMIT
μ¬μ΄μ μ¬λ¬ λͺ λ Ήλ¬Έμ ν¬ν¨νμ¬ λ°μ΄ν°λ² μ΄μ€μμ νλμ μμ λ¨μλ₯Ό μννλ μΌλ ¨μ μμ , μ¦ νΈλμμ μ μ μν μ μλ€.- μ΄λ ν λ¨κ³κ° μ€ν¨νλ©΄ λ€λ₯Έ λ¨κ³λ λͺ¨λ μ·¨μλλ€.
- κ°λ Ή μ°λ¦¬μ ν
μ΄λΈμμ
ARGO Merchants Oakland LLC
λΌλ νμ¬μ κ΄λ ¨λ μ§μ λΆν λ°μ΄ν°λ₯Ό μ 리νλ€κ³ κ°μ ν΄λ³΄μ.
company |
---|
ARGO Merchants Oakland LLC |
ARGO Merchants Oakland LLC |
ARGO Merchants Oakland, LLC |
- μ°λ¦¬λ μ΄λ¦μ΄ μΌκ΄λκΈ°λ₯Ό μνλ―λ‘
UPDATE
쿼리λ₯Ό μ¬μ©νμ¬ μΈ λ²μ§Έ νμ μμ νλ, μ΄λ²μλ μ΅μ’ μ λ°μ΄νΈ μ μ μ λ°μ΄νΈ κ²°κ³Όλ₯Ό λ¨Όμ νμΈν΄λ³Ό κ²μ΄λ€.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
-- νΈλμμ
μ μμνκ³ μ
λ°μ΄νΈνκΈ°
START TRANSACTION;
UPDATE meat_poultry_egg_establishments
SET company = 'AGRO Merchantss Oakland LLC'
WHERE company = 'AGRO Merchants Oakland, LLC';
-- λ³κ²½μ¬ν νμΈνκΈ°
SELECT company
FROM meat_poultry_egg_establishments
WHERE company LIKE 'AGRO%'
ORDER BY company;
-- λ³κ²½μ¬ν 무μνκΈ°
ROLLBACK;
company |
---|
AGRO Merchants Oakland LLC |
AGRO Merchants Oakland LLC |
AGRO Merchantss Oakland LLC |
- κ²°κ³Όλ₯Ό 보면 μμ κ°μ΄ μμ μ΄ μλͺ» λ κ²μ νμΈν μ μλ€.
ROLLBACK
λͺ λ Ήμ΄λ₯Ό ν΅ν΄ λ³κ²½ μ¬νμ λλ릴 μ μκ³ , κ·Έλλ‘ μ μ₯νλ €λ©΄COMMIT
λͺ λ Ήμ΄λ₯Ό μ¬μ©νλ©΄ λλ€.
νΈλμμ μ μμνλ©΄
COMMIT
μ μ€ννκΈ° μ κΉμ§ λ°μ΄ν°μ λν λ³κ²½ μ¬νμ΄ λ€λ₯Έ λ°μ΄ν°λ² μ΄μ€ μ¬μ©μμκ² νμλμ§ μλλ€.
ν° ν μ΄λΈμ μ λ°μ΄νΈν λ μ±λ₯ ν₯μνκΈ°
1
2
3
4
5
6
7
8
9
10
11
12
13
-- μ μ΄μ μΆκ°νκ³ μ±μ°λ©΄μ ν
μ΄λΈ λ°±μ
νκΈ°
CREATE TABLE meat_poultry_egg_establishments_backup AS
SELECT *,
'2023-02-14 00:00 EST'::timestamp with time zone AS reviewed_date
FROM meat_poultry_egg_establishments;
-- ALTER TABLEμ μ¬μ©νμ¬ ν
μ΄λΈ μ΄λ¦ λ°κΎΈκΈ°
ALTER TABLE meat_poultry_egg_establishments
RENAME TO meat_poultry_egg_establishments_temp;
ALTER TABLE meat_poultry_egg_establishments_backup
RENAME TO meat_poultry_egg_establishments;
ALTER TABLE meat_poultry_egg_establishments_temp
RENAME TO meat_poultry_egg_establishments_backup;
PostgreSQL
μ΄ λ΄λΆμ μΌλ‘ μλνλ λ°©μ λλ¬Έμ ν μ΄λΈμ μ΄μ μΆκ°νκ³ κ°μΌλ‘ μ±μ°λ©΄ ν μ΄λΈ ν¬κΈ°κ° κΈκ²©ν μ»€μ§ μ μλ€.- κ°λ Ή κ°μ΄ μ λ°μ΄νΈλ λλ§λ€ λ°μ΄ν°λ² μ΄μ€κ° κΈ°μ‘΄ νμ μ λ²μ μ μμ±νλ©΄μ μ΄μ λ²μ νμ μμ νμ§λ μκΈ° λλ¬Έμ λ³Έμ§μ μΌλ‘ ν μ΄λΈμ ν¬κΈ°λ₯Ό λ λ°°λ‘ λλ¦°λ€.
- μ¬μ©νμ§ μλ λΆνμν κ³΅κ° μ κ±°λ μ΄νμ 19μ₯μμ νμ΅νλ€.
- μμ λ°μ΄ν°μ μ λ€λ£¬λ€λ©΄ 무μν μ λμ§λ§, μμλ§ λλ μλ°±λ§ νμ λ€λ£¬λ€λ©΄ μ λ°μ΄νΈνλλ° νμν μκ°κ³Ό κ·Έμ λ°λ₯Έ μΆκ° λμ€ν¬ μ¬μ©λμ μλΉν μ μλ€.
- μ΄λ₯Ό ν΄κ²°νκΈ° μν΄ μ 체 ν μ΄λΈμ 볡μ¬νκ³ μμ μ€μ μ±μμ§ μ΄μ μΆκ°νλ λ°©μμΌλ‘ λμ€ν¬ 곡κ°μ μ μ½ν μ μλ€.
- κ·Έλ° λ€μ ν μ΄λΈ μ΄λ¦μ λ³κ²½νμ¬ λ³΅μ¬λ³Έμ΄ μλ³Έμ λ체νκ³ μλ³Έμ΄ λ°±μ μ©μ΄ λλλ‘ νλ€.
- κ·Έλ¬λ©΄ μΆκ°λ κΈ°μ‘΄ ν μμ΄ μλ‘μ΄ ν μ΄λΈμ κ°κ² λλ€.
- μ¬κΈ°μλ ν
μ΄λΈ μ΄λ¦μ μμ νκΈ° μν΄
ALTER TABLE
μRENAME TO
μ ν¨κ» μ¬μ©νλ€. - μ΄μ μλ³Έ ν
μ΄λΈμ
meat_poultry_egg_establishments_backup
μ΄κ³ , μΆκ°λ μ΄μ΄ μλ 볡μ¬λ³Έ ν μ΄λΈμmeat_poultry_egg_establishments
μ΄λ€. - μ΄λ¬ν νλ‘μΈμ€λ₯Ό μ¬μ©νλ©΄ ν μ λ°μ΄νΈλ₯Ό λ°©μ§νμ¬ ν μ΄λΈμ κ³Όλν ν½μ°½μ νΌν μ μλ€.