Download presentation
Presentation is loading. Please wait.
Published byΑνυβις Μαγγίνας Modified over 5 years ago
1
MIS2502: Data Analytics SQL 4– Putting Information Into a Database
Zhe (Joe) Deng
2
Database Management System
What do we want to do? Database Management System Get information out of the database (retrieve) Put information into the database (modify/change)
3
Our relational database
A series of tables Linked together through primary/foreign key relationships
4
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
5
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.
6
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 ). 5 digits in total. 3.23, VARCHAR(n) String (numbers and letters) with maximum length n 'Hello', 'I like pizza', 'MySQL!' DATETIME, DATE Date/Time, or just Date ' :35:00', ' ' BOOLEAN Boolean value 0 or 1
7
Looking at the “new” Customer table
The database management system stores this information about the table It’s separate from the data in the table (i.e., Customer information) This is called metadata – “data about data” Column name Data type CustomerID INT FirstName VARCHAR(45) LastName City State ?? Zip Customer
8
Example: Creating the Customer Table
CustomerID FirstName LastName City State Zip CREATE TABLE schema_name.table_name ( columnName1 datatype [NULL][NOT NULL], columnName2 datatype [NULL][NOT NULL], … PRIMARY KEY (KeyName) ); Based on this SQL statement: The only required field is CustomerID – the rest can be left blank. CustomerID is defined as the primary key.
9
Example: Creating the Customer Table
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) ); Customer CustomerID FirstName LastName City State Zip Based on this SQL statement: The only required field is CustomerID – the rest can be left blank. CustomerID is defined as the primary key.
10
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
11
NULL vs. NOT NULL NULL values represent missing/empty data. The NOT NULL constraint enforces a field to always contain a value. This means that you cannot insert a new record, or update a record without adding a value to this field. 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) ); Rule of Thumb A primary key (e.g., CustomerID) column should be NOT NULL. The rest can be left NULL.
12
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) ); This ensures that every order is placed by a valid customer that already exists.
13
Some more CREATE statements
CREATE TABLE orderdb.Product ( ProductID INT NOT NULL , ProductName VARCHAR(45) NULL , Price DECIMAL(5,2) NULL , PRIMARY KEY (ProductID) ); CREATE TABLE orderdb.OrderProduct( 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) DECIMAL(5, 2) indicates price can no larger than
14
Be careful! Removing tables
DROP TABLE schema_name.table_name; Example: DROP TABLE orderdb.Customer; This deletes the entire table and all data! It’s a pain to get it back (if you can at all)! Be careful!
15
Changing a table’s metadata
Adds a column to the table 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; CHANGE COLUMN old_column_name new_column_name datatype [NULL][NOT NULL]; Removes a column from the table Changes a column in the table
16
An example of each ALTER TABLE orderdb.Product ADD COLUMN Manufacturer VARCHAR(45) NULL; ALTER TABLE orderdb.Product DROP COLUMN Manufacturer; Adds ‘Manufacturer’ column to Product table Removes ‘Manufacturer’ column from Product table
17
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.
18
Adding a row to a table (versus columns)
A change in the table structure Done using ALTER TABLE Adding a column A change in the table data Done using INSERT INTO Adding a row
19
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!
20
INSERT example INSERT INTO schema_name.table_name (columnName1, columnName2, columnName3) VALUES (value1, value2, value3); CustomerID FirstName LastName City State Zip 1001 Greg House Princeton NJ 09120 1002 Lisa Cuddy Plainsboro 09123 1003 James Wilson Pittsgrove 09121 1004 Eric Foreman Warminster PA 19111 1005 Chris Taub BIG TIP: Note that field names are surrounded by back quotes (`) and string field values are surrounded by regular single quotes (')
21
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 09123 1003 James Wilson Pittsgrove 09121 1004 Eric Foreman Warminster PA 19111 1005 Chris Taub BIG TIP: Note that field names are surrounded by back quotes (`) and string field values are surrounded by regular single quotes (')
22
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
23
UDPATE example UPDATE schema_name.table_name SET columnName1=value1, columnName2=value2 WHERE condition; ProductID ProductName Price 2251 Honey Nut Cheerios 4.50 2282 Bananas 1.29 2505 Eggo Waffles 2.99 ProductID ProductName Price 2251 Cheerios 3.99 2282 Bananas 1.29 2505 Eggo Waffles 2.99 Product
24
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 2251 Honey Nut Cheerios 4.50 2282 Bananas 1.29 2505 Eggo Waffles 2.99 ProductID ProductName Price 2251 Cheerios 3.99 2282 Bananas 1.29 2505 Eggo Waffles 2.99 Product
25
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 09123 1003 James Wilson Pittsgrove 09121 1004 Eric Foreman Warminster PA 19111 Be careful! 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 09123 1003 James Wilson 09121 1004 Eric Foreman Warminster PA 19111
26
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
27
Again, the “safest” way to DELETE is based on the primary key field.
DELETE example CustomerID FirstName LastName City State Zip 1001 Greg House Princeton NJ 09120 1002 Lisa Cuddy Plainsboro 09123 1003 James Wilson Pittsgrove 09121 1004 Eric Foreman Warminster PA 19111 CustomerID FirstName LastName City State Zip 1001 Greg House Princeton NJ 09120 1002 Lisa Cuddy Plainsboro 09123 1003 James Wilson Pittsgrove 09121 DELETE FROM orderdb.Customer WHERE CustomerID=1004; Again, the “safest” way to DELETE is based on the primary key field.
28
Deleting multiple rows
Avoid doing this! 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 09123 1003 James Wilson Pittsgrove 09121 1004 Eric Foreman Warminster PA 19111 CustomerID FirstName LastName City State Zip 1001 Greg House Princeton NJ 09120 1002 Lisa Cuddy Plainsboro 09123
29
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 09123 1003 James Wilson Pittsgrove 09121 1004 Eric Foreman Warminster PA 19111 CustomerID FirstName LastName City State Zip 1001 Greg House Princeton NJ 09120 1002 Lisa Cuddy Plainsboro 09123 1004 Eric Foreman Warminster PA 19111
30
Summary Given the schema of a database, be able to
Create a table using CREATE TABLE Change the structure of a table using ALTER TABLE Add a record to a table using INSERT Update an existing record in a table using UPDATE Delete a record from a table using DELETE Be familiar with using conditional statements in the UPDATE and DELETE statements using WHERE Be familiar with MySQL data types (INT, DECIMAL, BOOLEAN, DATETIME/DATE, VARCHAR, etc.)
31
Summary: DDL and DML Commands
DDL(Data Definition Language) : DDL or Data Definition Language actually consists of the SQL commands that can be used to define the database schema. It simply deals with descriptions of the database schema and is used to create and modify the structure of database objects in database. CREATE – is used to create the database or its objects (like table, index, function, views, store procedure and triggers). DROP – is used to delete objects from the database. ALTER-is used to alter the structure of the database. DML(Data Manipulation Language) : The SQL commands that deals with the manipulation of data present in database belong to DML or Data Manipulation Language and this includes most of the SQL statements. SELECT – is used to retrieve data from the a database. INSERT – is used to insert data into a table. UPDATE – is used to update existing data within a table. DELETE – is used to delete records from a database table. More on DDL, DML, DCL and TCL Commands can be found here (
32
Time for our 6th ICA!
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.