Creating Tables in a Relational Database for Data Analytics

mis2502 data analytics sql putting information n.w
1 / 28
Embed
Share

Learn how to create tables in a relational database for data analytics using SQL commands. Understand the importance of defining tables, fields, data types, and primary/foreign key relationships. Get insights into the process of setting up a blank database and creating tables step by step.

  • Data Analytics
  • SQL Commands
  • Database Management
  • Data Types
  • Primary Key

Uploaded on | 0 Views


Download Presentation

Please find below an Image/Link to download the presentation.

The content on the website is provided AS IS for your information and personal use only. It may not be sold, licensed, or shared on other websites without obtaining consent from the author. If you encounter any issues during the download, it is possible that the publisher has removed the file from their server.

You are allowed to download the files provided on this website for personal or commercial use, subject to the condition that they are used lawfully. All files are the property of their respective owners.

The content on the website is provided AS IS for your information and personal use only. It may not be sold, licensed, or shared on other websites without obtaining consent from the author.

E N D

Presentation Transcript


  1. MIS2502: Data Analytics SQL Putting Information Into a Database Alvin Zuyin Zheng zheng@temple.edu http://community.mis.temple.edu/zuyinzheng/

  2. Our relational database A series of tables Linked together through primary/foreign key relationships

  3. To create a database We need to define The tables The fields (columns) within those tables The data types of those fields The primary/foreign key relationships There are SQL commands that do each of those things So let s assume that we have a blank database and we needed to create the tables

  4. CREATE statement (create a table) CREATE TABLE schema_name.table_name ( columnName1 datatype [NULL][NOT NULL], columnName2 datatype [NULL][NOT NULL], PRIMARY KEY (KeyName) ); Item Description schema_name The schema that will contain the table table_name The name of the table columnName The name of the field datatype The datatype of the field [NULL][NOT NULL] Whether the field can be empty (i.e., null) (The [] means the parameter is optional) A primary key column cannot contain NULL values KeyName The name of the field that will serve as the primary key

  5. Example: Creating the Customer Table Customer CREATE TABLE orderdb.Customer ( CustomerID INT NOT NULL , FirstName VARCHAR(45) NULL , LastName VARCHAR(45) NULL , City VARCHAR(45) NULL , State VARCHAR(2) NULL , Zip VARCHAR(10) NULL , PRIMARY KEY (CustomerID) ); CustomerID FirstName LastName City State Zip In MySQL Workbench, your schema will use your mx MySQL username (i.e., m80orderdb.Customer) Based on this SQL statement: The only required field is CustomerID the rest can be left blank. CustomerID is defined as the primary key.

  6. Looking at the new Customer table The database management system stores this information about the table Column name Data type CustomerID INT FirstName VARCHAR(45) It s separate from the data in the table (i.e., Customer information) Customer LastName VARCHAR(45) City VARCHAR(45) State VARCHAR(2) Zip VARCHAR(10) This is called metadata data about data

  7. Data types Each field can contain different types of data That must be specified when the table is created There are many data types; we re only going to cover the most important ones Data type Description Examples INT Integer 3, -10 DECIMAL(p,s) Decimal. Example: decimal(5,2) is a number that has 3 digits before decimal and 2 digits after decimal (like 123.45) 3.23, 3.14159 VARCHAR(n) String (numbers and letters) with maximum length n 'Hello', 'I like pizza', 'MySQL!' DATETIME, DATE Date/Time, or just Date '2011-09-01 17:35:00', '2011-04-12' BOOLEAN Boolean value 0 or 1 So why do you think we defined Zip as a VARCHAR() instead of an INT?

  8. So back to our CREATE statement CREATE TABLE orderdb.Customer ( CustomerID INT NOT NULL , FirstName VARCHAR(45) NULL , LastName VARCHAR(45) NULL , City VARCHAR(45) NULL , State VARCHAR(2) NULL , Zip VARCHAR(10) NULL , PRIMARY KEY (CustomerID) ); FirstName can be a string of up to 45 letters and numbers. Why 45? It s the MySQL default. State can be a string of up to 2 letters and numbers

  9. NULL vs. NOT NULL NULL values represent missing/empty data. The NOT NULL constraint enforces a field to always contain a value. CREATE TABLE orderdb.Customer ( CustomerID INT NOT NULL , FirstName VARCHAR(45) NULL , LastName VARCHAR(45) NULL , City VARCHAR(45) NULL , State VARCHAR(2) NULL , Zip VARCHAR(10) NULL , PRIMARY KEY (CustomerID) ); This means that you cannot insert a new record, or update a record without adding a value to this field. Rule of Thumb A primary key (e.g., CustomerID) column should be NOT NULL. The rest can be left NULL.

  10. Foreign Key A foreign key in one table points to a primary key in another table. CustomerID is a foreign key in the Order table, and a primary key in the Customer table CREATE TABLE orderdb.`Order` ( OrderNumber INT NOT NULL , OrderDate DATETIME NULL , CustomerID INT NULL , PRIMARY KEY (OrderNumber) , FOREIGN KEY (CustomerID) REFERENCES orderdb.Customer(CustomerID));

  11. Some more CREATE statements CREATE TABLE orderdb.Product ( ProductID INT NOT NULL , ProductName VARCHAR(45) NULL , Price DECIMAL(5,2) NULL , PRIMARY KEY (ProductID) ); DECIMAL(5, 2) indicates price can no larger than 999.99. CREATE TABLE orderdb.`Order-Product` ( OrderProductID INT NOT NULL , OrderNumber INT NULL , ProductID INT NULL , PRIMARY KEY (OrderProductID) , FOREIGN KEY (OrderNumber) REFERENCES orderdb.`Order`(OrderNumber), FOREIGN KEY (ProductID) REFERENCES orderdb.Product(ProductID));

  12. Removing tables DROP TABLE schema_name.table_name; Example: DROP TABLE orderdb.Customer; Be This deletes the entire table and all data! It s a pain to get it back (if you can at all)! careful!

  13. Changing a tables metadata ALTER TABLE schema_name.table_name ADD COLUMN column_name datatype [NULL][NOT NULL]; or ALTER TABLE schema_name.table_name DROP COLUMN column_name; or ALTER TABLE schema_name.table_name CHANGE COLUMN old_column_name new_column_name datatype [NULL][NOT NULL]; Adds a column to the table Removes a column from the table Changes a column in the table

  14. An example of each ALTER TABLE orderdb.Product ADD COLUMN Manufacturer VARCHAR(45) NULL; Adds Manufacturer column to Product table ALTER TABLE orderdb.Product DROP COLUMN Manufacturer; Removes Manufacturer column from Product table

  15. An example of each ALTER TABLE orderdb.Product CHANGE COLUMN Price SalesPrice DECIMAL(6,2) NULL; Changes name of Price column in Product table to SalesPrice and its data type to DECIMAL(6,2) Changes data type of Price column in Product table to DECIMAL(6,2) but leaves the name unchanged. ALTER TABLE orderdb.Product CHANGE COLUMN Price Price DECIMAL(6,2) NULL;

  16. Adding a row to a table (versus columns) Adding a column A change in the table structure Done using ALTER TABLE A change in the table data Done using INSERT INTO Adding a row

  17. Adding a row INSERT INTO schema_name.table_name (columnName1, columnName2, columnName3) VALUES (value1, value2, value3); Item Description schema_name The schema that contains the table table_name The name of the table columnName The name of the field value The data value for the field datatype The datatype of the field BIG TIP: The order of the values MUST match the order of the field names!

  18. INSERT example INSERT INTO orderdb.Customer (CustomerID, FirstName, LastName, City, State, Zip) VALUES (1005, 'Chris', 'Taub', 'Princeton', 'NJ', '09120'); CustomerID FirstName LastName City State Zip 1001 Greg House Princeton NJ 09120 1002 Lisa Cuddy Plainsboro NJ 09123 1003 James Wilson Pittsgrove NJ 09121 1004 Eric Foreman Warminster PA 19111 1005 Chris Taub Princeton NJ 09120 BIG TIP: Note that field names are surrounded by back quotes (`) and string field values are surrounded by regular single quotes (')

  19. Changing a row UPDATE schema_name.table_name SET columnName1=value1, columnName2=value2 WHERE condition; Item Description schema_name The schema that contains the table table_name The name of the table columnName The name of the field value The data value for the field condition A conditional statement to specify the records which should be changed

  20. UDPATE example UPDATE orderdb.Product SET ProductName='Honey Nut Cheerios', Price=4.50 WHERE ProductID=2251; The safest way to UPDATE is one record at a time, based on the primary key field. ProductID ProductName Price ProductID ProductName Price 2251 Honey Nut Cheerios 4.50 2251 Cheerios 3.99 Product 2282 Bananas 1.29 2282 Bananas 1.29 2505 Eggo Waffles 2.99 2505 Eggo Waffles 2.99

  21. Changing multiple rows UPDATE orderdb.Customer SET City='Cherry Hill' WHERE State='NJ'; CustomerID FirstName LastName City State Zip 1001 Greg House Princeton NJ 09120 1002 Lisa Cuddy Plainsboro NJ 09123 1003 James Wilson Pittsgrove NJ 09121 Be careful! 1004 Eric Foreman Warminster PA 19111 You can do a lot of damage with a query like this! CustomerID FirstName LastName City State Zip 1001 Greg House Cherry Hill NJ 09120 1002 Lisa Cuddy Cherry Hill NJ 09123 1003 James Wilson Cherry Hill NJ 09121 1004 Eric Foreman Warminster PA 19111

  22. Deleting a row DELETE FROM schema_name.table_name WHERE condition; Item Description schema_name The schema that contains the table table_name The name of the table condition A conditional statement to specify the records which should be changed

  23. DELETE example DELETE FROM orderdb.Customer WHERE CustomerID=1004; Again, the safest way to DELETE is based on the primary key field. CustomerID FirstName LastName City State Zip 1001 Greg House Princeton NJ 09120 1002 Lisa Cuddy Plainsboro NJ 09123 1003 James Wilson Pittsgrove NJ 09121 1004 Eric Foreman Warminster PA 19111 CustomerID FirstName LastName City State Zip 1001 Greg House Princeton NJ 09120 1002 Lisa Cuddy Plainsboro NJ 09123 1003 James Wilson Pittsgrove NJ 09121

  24. Deleting multiple rows DELETE FROM orderdb.Customer WHERE CustomerID>1002; CustomerID FirstName LastName City State Zip 1001 Greg House Princeton NJ 09120 1002 Lisa Cuddy Plainsboro NJ 09123 1003 James Wilson Pittsgrove NJ 09121 1004 Eric Foreman Warminster PA 19111 CustomerID FirstName LastName City State Zip 1001 Greg House Princeton NJ 09120 1002 Lisa Cuddy Plainsboro NJ 09123

  25. One more DELETE example DELETE FROM orderdb.Customer WHERE State='NJ' AND Zip='09121 ; CustomerID FirstName LastName City State Zip 1001 Greg House Princeton NJ 09120 1002 Lisa Cuddy Plainsboro NJ 09123 1003 James Wilson Pittsgrove NJ 09121 1004 Eric Foreman Warminster PA 19111 CustomerID FirstName LastName City State Zip 1001 Greg House Princeton NJ 09120 1002 Lisa Cuddy Plainsboro NJ 09123 1004 Eric Foreman Warminster PA 19111

  26. Summary 1 Creating Tables CREATE TABLE schema_name.table_name ( columnName1 datatype [NULL][NOT NULL], columnName2 datatype [NULL][NOT NULL], PRIMARY KEY (KeyName), FOREIGN KEY (KeyName) REFERENCES schema_name.table_name (KeyName) ); Removing Tables DROP TABLE schema_name.table_name;

  27. Summary 2 Changing a table s metadata ALTER TABLE schema_name.table_name ADD COLUMN column_name datatype [NULL][NOT NULL]; ALTER TABLE schema_name.table_name DROP COLUMN column_name; ALTER TABLE schema_name.table_name CHANGE COLUMN old_column_name new_column_name datatype [NULL][NOT NULL];

  28. Summary 3 Adding rows INSERT INTO schema_name.table_name (columnName1, columnName2, columnName3) VALUES (value1, value2, value3); Updating rows UPDATE schema_name.table_name SET columnName1=value1, columnName2=value2 WHERE condition; Deleting rows DELETE FROM schema_name.table_name WHERE condition;

More Related Content