Last active
October 3, 2023 12:55
-
-
Save JeremyMorgan/5833666 to your computer and use it in GitHub Desktop.
An SQL Query to insert 50 U.S. States into a database.Make sure your auto increment is set in MySQL, and Identity_insert is set in MS-SQL.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
CREATE TABLE [state]( | |
[stateID] [int] IDENTITY(1,1) NOT NULL, | |
[stateCode] [nchar](2) NOT NULL, | |
[stateName] [nvarchar](128) NOT NULL, | |
CONSTRAINT [PK_state] PRIMARY KEY CLUSTERED | |
( [stateID] ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]) | |
ON [PRIMARY] | |
GO | |
INSERT into [state] values | |
('AK', 'Alaska'), | |
('AL', 'Alabama'), | |
('AZ', 'Arizona'), | |
('AR', 'Arkansas'), | |
('CA', 'California'), | |
('CO', 'Colorado'), | |
('CT', 'Connecticut'), | |
('DE', 'Delaware'), | |
('DC', 'District of Columbia'), | |
('FL', 'Florida'), | |
('GA', 'Georgia'), | |
('HI', 'Hawaii'), | |
('ID', 'Idaho'), | |
('IL', 'Illinois'), | |
('IN', 'Indiana'), | |
('IA', 'Iowa'), | |
('KS', 'Kansas'), | |
('KY', 'Kentucky'), | |
('LA', 'Louisiana'), | |
('ME', 'Maine'), | |
('MD', 'Maryland'), | |
('MA', 'Massachusetts'), | |
('MI', 'Michigan'), | |
('MN', 'Minnesota'), | |
('MS', 'Mississippi'), | |
('MO', 'Missouri'), | |
('MT', 'Montana'), | |
('NE', 'Nebraska'), | |
('NV', 'Nevada'), | |
('NH', 'New Hampshire'), | |
('NJ', 'New Jersey'), | |
('NM', 'New Mexico'), | |
('NY', 'New York'), | |
('NC', 'North Carolina'), | |
('ND', 'North Dakota'), | |
('OH', 'Ohio'), | |
('OK', 'Oklahoma'), | |
('OR', 'Oregon'), | |
('PA', 'Pennsylvania'), | |
('PR', 'Puerto Rico'), | |
('RI', 'Rhode Island'), | |
('SC', 'South Carolina'), | |
('SD', 'South Dakota'), | |
('TN', 'Tennessee'), | |
('TX', 'Texas'), | |
('UT', 'Utah'), | |
('VT', 'Vermont'), | |
('VA', 'Virginia'), | |
('WA', 'Washington'), | |
('WV', 'West Virginia'), | |
('WI', 'Wisconsin'), | |
('WY', 'Wyoming'); |
If you are interested in data integrity, especially the kind that the DBMS provides, you should have a unique index on stateCode so that you can't possibly have two DCs (one is more than enough haha). Furthermore, stateCode could (and should IMHO) be the primary key. Why invent something when a natural key already exists.
Good point. Likely a better design overall.
Thank you!
INSERT into [state] values ('AL', 'Alabama'),
('AK', 'Alaska'),
('AL', 'Alabama'),
('AZ', 'Arizona'),
Alabama (AL) is missing
Actually Alabama is twice.
That's so awesome, here I was dreading the entry and a very quick search led me to this. Thanks!
The reason for having an integer primary key is so that if the table is used for "states" beyond the USA (ie for states or provinces or regions), then there could be duplicates if just the 2 char code was used as the pk.
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
PR is a US territory.