SlideShare a Scribd company logo
1 of 30
INTRODUCTION TO SQL
BOOTHTECH
JENNIFER BERK, MAY 2012
AGENDA
• What's SQL and when would you use it
• How to find out what's in your database
• How to pull the information you need, with
progressively more realistic exercises
• How to learn more
• Questions and more practice time
• Note: specific syntax today is for MySQL, but any
database will be similar
WHAT IS SQL?
A N D WH Y I T ’ S U S E F U L T O A N M B A
RELATIONAL DATABASE

Billing
address
has an

Date
placed
Shipping
method
containing

Item

Contact
name

Order

Client

• Stores data in a series of tables
• Also stores information about relationships between
data in tables (hence relational)
Item
number
Quantity
Size
Color
WHAT KIND OF DATA?
• Numeric
• Integers with various possible ranges (sometimes TRUE/FALSE
Boolean values are encoded as 0/1 in an integer field) - INT
• Decimals or floating-point numbers – FLOAT

• Time and date - DATETIME
• Text
• With a specified length in characters – VARCHAR
• Longer text – TEXT

• Binary data – BLOB
WHY USE A RELATIONAL
DATABASE
• Think about a list of contacts in Excel – basically one
database table – and adding a phone number.
• Do you have enough phone number columns?
• Does cell phone have its own field or is it just
another phone number?
• How do you mark the primary phone number?
• A database lets you have as many phone numbers
as you want associated with one person, because
you can put phone numbers in a separate table.
STRUCTURED QUERY LANGUAGE
• SQL is a way to pull the information you need out of
a relational database
• You’ll probably use it to fetch summary information
from a central data warehouse and then do
additional analysis in Excel/SAS/etc.
• SQL is also used (by the people who set up the data
warehouse) to create tables, insert data, and
delete unneeded information.
SANDBOX
1. Take out your laptop
2. Go to http://coderzone.org/sqlsandbox/
3. Click “Sign In”
WHAT’S IN YOUR DATABASE?
SHOW TABLES; DESCRIBE <TABLENAME>;
SHOW TABLES;
• Returns a list of tables in the database
• May not need to use this if you have a graphical
user interface (GUI)
• Can limit which tables are returned, e.g. “SHOW
TABLES LIKE ‘%c%’;” will return all the tables with a
“c” in their name
DESCRIBE <TABLENAME>;
• Returns information about each field in table
<tablename>
• Includes field name, type, and other information like
if the field can be NULL or if it’s required to have a
value
• May not need to use this if you have a graphical
user interface (GUI)
TRY IT OUT
• In the sandbox, try looking at tables.
• SHOW TABLES [LIKE “%c%”];
• DESCRIBE sb_css_colors;
• Which tables contain the most types of data?
SQL STYLE
• Capitalize SQL keywords (SELECT, JOIN, AS, etc.)
• Lower-case table and field names
Makes it easy to see what values are specific to the
database you’re using.
BASIC DATA SELECTION
SELECT <FIELDS> FROM <TABLENAME>;
SELECT <FIELDS> FROM <TABLENAME>;
• Returns some data from a table
• You’ll need the field names you found before from
the DESCRIBE <tablename> statement
• <fields> can be:
•
•
•
•

One field name
Multiple field names separated by commas
Special value * (asterisk), which means “everything”
Special value COUNT(*), which means “how many rows are
there?”

• This returns all the rows of the table – why might that
be a problem?
TRY IT OUT
• In the sandbox, try looking at some data in tables.
• SELECT * FROM sb_css_colors;
• SELECT COUNT(*) FROM sb_airports;
• SELECT biz_name, state, phone FROM sb_airports;
LIMITING DATA SELECTION
SELECT <FI ELDS> FROM < TABLENAME> WHERE <LI MITS> ;
WHERE
• SELECT <fields> FROM <tablename> WHERE <limits> ;
• This is how to start picking out only the data you’re
interested in
• WHERE clauses can be:
• <fieldname> = <value> such as 2 or “Bob”
• Similar but with LIKE, >, >=, <, <=, != (note that different SQL
implementations require different representations for
dates/times, so you may have to check documentation to
figure out how to say purchase_date > “2012-01-01”, for
example)
• Things involving functions, like ABS(<fieldname>) > 20
• Several of those joined by AND, OR, etc.
TRY IT OUT
• In the sandbox, try limiting what data you grab.
• SELECT * FROM sb_css_colors WHERE
hexcolor=“#800000”
• SELECT * FROM sb_css_colors WHERE hexcolor LIKE
“%FF%”
• SELECT biz_name, state, zip, phone FROM
sb_airports WHERE (state=“IL” OR state=“IN”) AND
phone LIKE “%(800)%”;
MORE DATA SELECTION
SELECT <FIELDS> FROM < TABLENAME> WHERE <LIMITS>
ORDER BY <FIELD> <ORDER> GROUP BY <FIELD>;
ORDER BY
• SELECT <fields> FROM <tablename> ORDER BY
<field> <order>;
• Like sorting in Excel
• Order can be ASC (ascending) or DESC
(descending)
• Don’t sort and then assume you know what the
possible values were – e.g. what’s at the top if you
do SELECT * FROM sb_css_colors ORDER BY hexcolor
DESC;
GROUP BY
• SELECT <fields and/or functions of fields> FROM
<tablename> GROUP BY <field>;
• Lets you create summary statistics directly instead of
in Excel later
• Commonly used functions: COUNT(),
COUNT(DISTINCT), SUM(), AVG(), MAX(), MIN(),
TRY IT OUT
• In the sandbox, try more complicated SELECTs.
• SELECT * FROM sb_css_colors ORDER BY hexcolor
DESC; (what were the possible values?)
• SELECT state, zip, COUNT(*) from sb_airports GROUP
BY zip;
• SELECT state, AVG(zip) FROM sb_airports GROUP BY
state;
CONNECTING TABLES: JOINS
SELECT <FIELDS> FROM <TABLENAME> JOIN
<TABLENAME> ON <FIELD MATCH>;
JOIN
• SELECT <fields> FROM <tablename> JOIN
<tablename> ON <field match>;
• Joins let you connect related data from multiple
tables, e.g. a customer name from a customers
table and an order date from an orders table
• Normally you’ll join on an ID or “key” column
• Often need to specify both table and field when
writing the field match statement
• customers.id = orders.customer_id
TRY IT OUT
• In the sandbox, try joining tables.
• SELECT comp_dept, first_name, last_name, phone
FROM sb_departments JOIN sb_employees ON
sb_departments.emp_id = sb_employees.emp_id
WHERE comp_dept = “Payroll”;
HOW TO LEARN MORE
USEFUL RESOURCES
ONLINE RESOURCES
• MySQL manuals (MySQL is open source, so there are
lots of resources freely available)
• http://dev.mysql.com/doc/refman/5.6/en/index.html

• Question sites:
• http://www.quora.com/MySQL/
• http://programmers.stackexchange.com/questions/tagged
/sql (pretty technical in general)
SANDBOXES
• We’ve used http://coderzone.org/sqlsandbox/
(nice because it has multiple tables)
• Also http://www.w3schools.com/sql/default.asp
• You can make your own sandbox to try things out if
you have web hosting (e.g. unlimited MySQL
databases on DreamHost)
QUESTIONS?
AND MORE PRACTICE TIME

More Related Content

What's hot

DDL(Data defination Language ) Using Oracle
DDL(Data defination Language ) Using OracleDDL(Data defination Language ) Using Oracle
DDL(Data defination Language ) Using OracleFarhan Aslam
 
Structure query language (sql)
Structure query language (sql)Structure query language (sql)
Structure query language (sql)Nalina Kumari
 
Introduction to structured query language (sql)
Introduction to structured query language (sql)Introduction to structured query language (sql)
Introduction to structured query language (sql)Sabana Maharjan
 
Introduction to SQL
Introduction to SQLIntroduction to SQL
Introduction to SQLMahir Haque
 
SQL Server Learning Drive
SQL Server Learning Drive SQL Server Learning Drive
SQL Server Learning Drive TechandMate
 
Introduction to SQL
Introduction to SQLIntroduction to SQL
Introduction to SQLEhsan Hamzei
 
introdution to SQL and SQL functions
introdution to SQL and SQL functionsintrodution to SQL and SQL functions
introdution to SQL and SQL functionsfarwa waqar
 
SQL Queries
SQL QueriesSQL Queries
SQL QueriesNilt1234
 
Chapter 07 ddl_sql
Chapter 07 ddl_sqlChapter 07 ddl_sql
Chapter 07 ddl_sqlNazir Ahmed
 
Sql notes, sql server,sql queries,introduction of SQL, Beginner in SQL
Sql notes, sql server,sql queries,introduction of SQL, Beginner in SQLSql notes, sql server,sql queries,introduction of SQL, Beginner in SQL
Sql notes, sql server,sql queries,introduction of SQL, Beginner in SQLPrashant Kumar
 

What's hot (19)

DDL(Data defination Language ) Using Oracle
DDL(Data defination Language ) Using OracleDDL(Data defination Language ) Using Oracle
DDL(Data defination Language ) Using Oracle
 
Structure query language (sql)
Structure query language (sql)Structure query language (sql)
Structure query language (sql)
 
Sql Basics And Advanced
Sql Basics And AdvancedSql Basics And Advanced
Sql Basics And Advanced
 
Introduction to structured query language (sql)
Introduction to structured query language (sql)Introduction to structured query language (sql)
Introduction to structured query language (sql)
 
Introduction to SQL
Introduction to SQLIntroduction to SQL
Introduction to SQL
 
SQL Server Learning Drive
SQL Server Learning Drive SQL Server Learning Drive
SQL Server Learning Drive
 
SQL Basics
SQL BasicsSQL Basics
SQL Basics
 
Introduction to SQL
Introduction to SQLIntroduction to SQL
Introduction to SQL
 
Sql fundamentals
Sql fundamentalsSql fundamentals
Sql fundamentals
 
Sql intro & ddl 1
Sql intro & ddl 1Sql intro & ddl 1
Sql intro & ddl 1
 
introdution to SQL and SQL functions
introdution to SQL and SQL functionsintrodution to SQL and SQL functions
introdution to SQL and SQL functions
 
SQL Queries
SQL QueriesSQL Queries
SQL Queries
 
Chapter 07 ddl_sql
Chapter 07 ddl_sqlChapter 07 ddl_sql
Chapter 07 ddl_sql
 
Introduction to (sql)
Introduction to (sql)Introduction to (sql)
Introduction to (sql)
 
Sql notes, sql server,sql queries,introduction of SQL, Beginner in SQL
Sql notes, sql server,sql queries,introduction of SQL, Beginner in SQLSql notes, sql server,sql queries,introduction of SQL, Beginner in SQL
Sql notes, sql server,sql queries,introduction of SQL, Beginner in SQL
 
Sql tutorial
Sql tutorialSql tutorial
Sql tutorial
 
Create table
Create tableCreate table
Create table
 
Introduction to database
Introduction to databaseIntroduction to database
Introduction to database
 
SQL for interview
SQL for interviewSQL for interview
SQL for interview
 

Similar to Introduction to SQL (for Chicago Booth MBA technology club)

Similar to Introduction to SQL (for Chicago Booth MBA technology club) (20)

SQL
SQLSQL
SQL
 
Tk2323 lecture 7 sql
Tk2323 lecture 7   sql Tk2323 lecture 7   sql
Tk2323 lecture 7 sql
 
SQL_Part1
SQL_Part1SQL_Part1
SQL_Part1
 
Creating database using sql commands
Creating database using sql commandsCreating database using sql commands
Creating database using sql commands
 
Introduction to PostgreSQL
Introduction to PostgreSQLIntroduction to PostgreSQL
Introduction to PostgreSQL
 
php basic sql
php basic sqlphp basic sql
php basic sql
 
SQL.pptx for the begineers and good know
SQL.pptx for the begineers and good knowSQL.pptx for the begineers and good know
SQL.pptx for the begineers and good know
 
Rdbms day3
Rdbms day3Rdbms day3
Rdbms day3
 
SQL Reports in Koha
SQL Reports in KohaSQL Reports in Koha
SQL Reports in Koha
 
MS SQL Server
MS SQL ServerMS SQL Server
MS SQL Server
 
Sql
SqlSql
Sql
 
MYSQL.ppt
MYSQL.pptMYSQL.ppt
MYSQL.ppt
 
ORACLE PL SQL
ORACLE PL SQLORACLE PL SQL
ORACLE PL SQL
 
Access 04
Access 04Access 04
Access 04
 
Ms sql-server
Ms sql-serverMs sql-server
Ms sql-server
 
Module 3
Module 3Module 3
Module 3
 
DDL,DML,SQL Functions and Joins
DDL,DML,SQL Functions and JoinsDDL,DML,SQL Functions and Joins
DDL,DML,SQL Functions and Joins
 
Apache TAJO
Apache TAJOApache TAJO
Apache TAJO
 
Database
Database Database
Database
 
Sql introduction
Sql introductionSql introduction
Sql introduction
 

More from Jennifer Berk

Chicago Booth MBA application presentation (2010)
Chicago Booth MBA application presentation (2010)Chicago Booth MBA application presentation (2010)
Chicago Booth MBA application presentation (2010)Jennifer Berk
 
Minimum Viable Project Management
Minimum Viable Project ManagementMinimum Viable Project Management
Minimum Viable Project ManagementJennifer Berk
 
Twitter For Nonprofits
Twitter For NonprofitsTwitter For Nonprofits
Twitter For NonprofitsJennifer Berk
 
Social Media At Work
Social Media At WorkSocial Media At Work
Social Media At WorkJennifer Berk
 
What I Learned on My Fall Vacation
What I Learned on My Fall VacationWhat I Learned on My Fall Vacation
What I Learned on My Fall VacationJennifer Berk
 
Content Cross-promotion
Content Cross-promotionContent Cross-promotion
Content Cross-promotionJennifer Berk
 

More from Jennifer Berk (7)

Chicago Booth MBA application presentation (2010)
Chicago Booth MBA application presentation (2010)Chicago Booth MBA application presentation (2010)
Chicago Booth MBA application presentation (2010)
 
Minimum Viable Project Management
Minimum Viable Project ManagementMinimum Viable Project Management
Minimum Viable Project Management
 
CSS 201
CSS 201CSS 201
CSS 201
 
Twitter For Nonprofits
Twitter For NonprofitsTwitter For Nonprofits
Twitter For Nonprofits
 
Social Media At Work
Social Media At WorkSocial Media At Work
Social Media At Work
 
What I Learned on My Fall Vacation
What I Learned on My Fall VacationWhat I Learned on My Fall Vacation
What I Learned on My Fall Vacation
 
Content Cross-promotion
Content Cross-promotionContent Cross-promotion
Content Cross-promotion
 

Recently uploaded

Call Girls In Panjim North Goa 9971646499 Genuine Service
Call Girls In Panjim North Goa 9971646499 Genuine ServiceCall Girls In Panjim North Goa 9971646499 Genuine Service
Call Girls In Panjim North Goa 9971646499 Genuine Serviceritikaroy0888
 
Quick Doctor In Kuwait +2773`7758`557 Kuwait Doha Qatar Dubai Abu Dhabi Sharj...
Quick Doctor In Kuwait +2773`7758`557 Kuwait Doha Qatar Dubai Abu Dhabi Sharj...Quick Doctor In Kuwait +2773`7758`557 Kuwait Doha Qatar Dubai Abu Dhabi Sharj...
Quick Doctor In Kuwait +2773`7758`557 Kuwait Doha Qatar Dubai Abu Dhabi Sharj...daisycvs
 
Chandigarh Escorts Service 📞8868886958📞 Just📲 Call Nihal Chandigarh Call Girl...
Chandigarh Escorts Service 📞8868886958📞 Just📲 Call Nihal Chandigarh Call Girl...Chandigarh Escorts Service 📞8868886958📞 Just📲 Call Nihal Chandigarh Call Girl...
Chandigarh Escorts Service 📞8868886958📞 Just📲 Call Nihal Chandigarh Call Girl...Sheetaleventcompany
 
Falcon's Invoice Discounting: Your Path to Prosperity
Falcon's Invoice Discounting: Your Path to ProsperityFalcon's Invoice Discounting: Your Path to Prosperity
Falcon's Invoice Discounting: Your Path to Prosperityhemanthkumar470700
 
👉Chandigarh Call Girls 👉9878799926👉Just Call👉Chandigarh Call Girl In Chandiga...
👉Chandigarh Call Girls 👉9878799926👉Just Call👉Chandigarh Call Girl In Chandiga...👉Chandigarh Call Girls 👉9878799926👉Just Call👉Chandigarh Call Girl In Chandiga...
👉Chandigarh Call Girls 👉9878799926👉Just Call👉Chandigarh Call Girl In Chandiga...rajveerescorts2022
 
A DAY IN THE LIFE OF A SALESMAN / WOMAN
A DAY IN THE LIFE OF A  SALESMAN / WOMANA DAY IN THE LIFE OF A  SALESMAN / WOMAN
A DAY IN THE LIFE OF A SALESMAN / WOMANIlamathiKannappan
 
Nelamangala Call Girls: 🍓 7737669865 🍓 High Profile Model Escorts | Bangalore...
Nelamangala Call Girls: 🍓 7737669865 🍓 High Profile Model Escorts | Bangalore...Nelamangala Call Girls: 🍓 7737669865 🍓 High Profile Model Escorts | Bangalore...
Nelamangala Call Girls: 🍓 7737669865 🍓 High Profile Model Escorts | Bangalore...amitlee9823
 
Call Girls Zirakpur👧 Book Now📱7837612180 📞👉Call Girl Service In Zirakpur No A...
Call Girls Zirakpur👧 Book Now📱7837612180 📞👉Call Girl Service In Zirakpur No A...Call Girls Zirakpur👧 Book Now📱7837612180 📞👉Call Girl Service In Zirakpur No A...
Call Girls Zirakpur👧 Book Now📱7837612180 📞👉Call Girl Service In Zirakpur No A...Sheetaleventcompany
 
Insurers' journeys to build a mastery in the IoT usage
Insurers' journeys to build a mastery in the IoT usageInsurers' journeys to build a mastery in the IoT usage
Insurers' journeys to build a mastery in the IoT usageMatteo Carbone
 
Call Girls in Delhi, Escort Service Available 24x7 in Delhi 959961-/-3876
Call Girls in Delhi, Escort Service Available 24x7 in Delhi 959961-/-3876Call Girls in Delhi, Escort Service Available 24x7 in Delhi 959961-/-3876
Call Girls in Delhi, Escort Service Available 24x7 in Delhi 959961-/-3876dlhescort
 
Katrina Personal Brand Project and portfolio 1
Katrina Personal Brand Project and portfolio 1Katrina Personal Brand Project and portfolio 1
Katrina Personal Brand Project and portfolio 1kcpayne
 
Call Girls In DLf Gurgaon ➥99902@11544 ( Best price)100% Genuine Escort In 24...
Call Girls In DLf Gurgaon ➥99902@11544 ( Best price)100% Genuine Escort In 24...Call Girls In DLf Gurgaon ➥99902@11544 ( Best price)100% Genuine Escort In 24...
Call Girls In DLf Gurgaon ➥99902@11544 ( Best price)100% Genuine Escort In 24...lizamodels9
 
BAGALUR CALL GIRL IN 98274*61493 ❤CALL GIRLS IN ESCORT SERVICE❤CALL GIRL
BAGALUR CALL GIRL IN 98274*61493 ❤CALL GIRLS IN ESCORT SERVICE❤CALL GIRLBAGALUR CALL GIRL IN 98274*61493 ❤CALL GIRLS IN ESCORT SERVICE❤CALL GIRL
BAGALUR CALL GIRL IN 98274*61493 ❤CALL GIRLS IN ESCORT SERVICE❤CALL GIRLkapoorjyoti4444
 
Phases of Negotiation .pptx
 Phases of Negotiation .pptx Phases of Negotiation .pptx
Phases of Negotiation .pptxnandhinijagan9867
 
MONA 98765-12871 CALL GIRLS IN LUDHIANA LUDHIANA CALL GIRL
MONA 98765-12871 CALL GIRLS IN LUDHIANA LUDHIANA CALL GIRLMONA 98765-12871 CALL GIRLS IN LUDHIANA LUDHIANA CALL GIRL
MONA 98765-12871 CALL GIRLS IN LUDHIANA LUDHIANA CALL GIRLSeo
 
Uneak White's Personal Brand Exploration Presentation
Uneak White's Personal Brand Exploration PresentationUneak White's Personal Brand Exploration Presentation
Uneak White's Personal Brand Exploration Presentationuneakwhite
 
RSA Conference Exhibitor List 2024 - Exhibitors Data
RSA Conference Exhibitor List 2024 - Exhibitors DataRSA Conference Exhibitor List 2024 - Exhibitors Data
RSA Conference Exhibitor List 2024 - Exhibitors DataExhibitors Data
 

Recently uploaded (20)

Call Girls In Panjim North Goa 9971646499 Genuine Service
Call Girls In Panjim North Goa 9971646499 Genuine ServiceCall Girls In Panjim North Goa 9971646499 Genuine Service
Call Girls In Panjim North Goa 9971646499 Genuine Service
 
VVVIP Call Girls In Greater Kailash ➡️ Delhi ➡️ 9999965857 🚀 No Advance 24HRS...
VVVIP Call Girls In Greater Kailash ➡️ Delhi ➡️ 9999965857 🚀 No Advance 24HRS...VVVIP Call Girls In Greater Kailash ➡️ Delhi ➡️ 9999965857 🚀 No Advance 24HRS...
VVVIP Call Girls In Greater Kailash ➡️ Delhi ➡️ 9999965857 🚀 No Advance 24HRS...
 
Quick Doctor In Kuwait +2773`7758`557 Kuwait Doha Qatar Dubai Abu Dhabi Sharj...
Quick Doctor In Kuwait +2773`7758`557 Kuwait Doha Qatar Dubai Abu Dhabi Sharj...Quick Doctor In Kuwait +2773`7758`557 Kuwait Doha Qatar Dubai Abu Dhabi Sharj...
Quick Doctor In Kuwait +2773`7758`557 Kuwait Doha Qatar Dubai Abu Dhabi Sharj...
 
Chandigarh Escorts Service 📞8868886958📞 Just📲 Call Nihal Chandigarh Call Girl...
Chandigarh Escorts Service 📞8868886958📞 Just📲 Call Nihal Chandigarh Call Girl...Chandigarh Escorts Service 📞8868886958📞 Just📲 Call Nihal Chandigarh Call Girl...
Chandigarh Escorts Service 📞8868886958📞 Just📲 Call Nihal Chandigarh Call Girl...
 
Falcon Invoice Discounting platform in india
Falcon Invoice Discounting platform in indiaFalcon Invoice Discounting platform in india
Falcon Invoice Discounting platform in india
 
Falcon's Invoice Discounting: Your Path to Prosperity
Falcon's Invoice Discounting: Your Path to ProsperityFalcon's Invoice Discounting: Your Path to Prosperity
Falcon's Invoice Discounting: Your Path to Prosperity
 
👉Chandigarh Call Girls 👉9878799926👉Just Call👉Chandigarh Call Girl In Chandiga...
👉Chandigarh Call Girls 👉9878799926👉Just Call👉Chandigarh Call Girl In Chandiga...👉Chandigarh Call Girls 👉9878799926👉Just Call👉Chandigarh Call Girl In Chandiga...
👉Chandigarh Call Girls 👉9878799926👉Just Call👉Chandigarh Call Girl In Chandiga...
 
A DAY IN THE LIFE OF A SALESMAN / WOMAN
A DAY IN THE LIFE OF A  SALESMAN / WOMANA DAY IN THE LIFE OF A  SALESMAN / WOMAN
A DAY IN THE LIFE OF A SALESMAN / WOMAN
 
Nelamangala Call Girls: 🍓 7737669865 🍓 High Profile Model Escorts | Bangalore...
Nelamangala Call Girls: 🍓 7737669865 🍓 High Profile Model Escorts | Bangalore...Nelamangala Call Girls: 🍓 7737669865 🍓 High Profile Model Escorts | Bangalore...
Nelamangala Call Girls: 🍓 7737669865 🍓 High Profile Model Escorts | Bangalore...
 
Call Girls Zirakpur👧 Book Now📱7837612180 📞👉Call Girl Service In Zirakpur No A...
Call Girls Zirakpur👧 Book Now📱7837612180 📞👉Call Girl Service In Zirakpur No A...Call Girls Zirakpur👧 Book Now📱7837612180 📞👉Call Girl Service In Zirakpur No A...
Call Girls Zirakpur👧 Book Now📱7837612180 📞👉Call Girl Service In Zirakpur No A...
 
Insurers' journeys to build a mastery in the IoT usage
Insurers' journeys to build a mastery in the IoT usageInsurers' journeys to build a mastery in the IoT usage
Insurers' journeys to build a mastery in the IoT usage
 
unwanted pregnancy Kit [+918133066128] Abortion Pills IN Dubai UAE Abudhabi
unwanted pregnancy Kit [+918133066128] Abortion Pills IN Dubai UAE Abudhabiunwanted pregnancy Kit [+918133066128] Abortion Pills IN Dubai UAE Abudhabi
unwanted pregnancy Kit [+918133066128] Abortion Pills IN Dubai UAE Abudhabi
 
Call Girls in Delhi, Escort Service Available 24x7 in Delhi 959961-/-3876
Call Girls in Delhi, Escort Service Available 24x7 in Delhi 959961-/-3876Call Girls in Delhi, Escort Service Available 24x7 in Delhi 959961-/-3876
Call Girls in Delhi, Escort Service Available 24x7 in Delhi 959961-/-3876
 
Katrina Personal Brand Project and portfolio 1
Katrina Personal Brand Project and portfolio 1Katrina Personal Brand Project and portfolio 1
Katrina Personal Brand Project and portfolio 1
 
Call Girls In DLf Gurgaon ➥99902@11544 ( Best price)100% Genuine Escort In 24...
Call Girls In DLf Gurgaon ➥99902@11544 ( Best price)100% Genuine Escort In 24...Call Girls In DLf Gurgaon ➥99902@11544 ( Best price)100% Genuine Escort In 24...
Call Girls In DLf Gurgaon ➥99902@11544 ( Best price)100% Genuine Escort In 24...
 
BAGALUR CALL GIRL IN 98274*61493 ❤CALL GIRLS IN ESCORT SERVICE❤CALL GIRL
BAGALUR CALL GIRL IN 98274*61493 ❤CALL GIRLS IN ESCORT SERVICE❤CALL GIRLBAGALUR CALL GIRL IN 98274*61493 ❤CALL GIRLS IN ESCORT SERVICE❤CALL GIRL
BAGALUR CALL GIRL IN 98274*61493 ❤CALL GIRLS IN ESCORT SERVICE❤CALL GIRL
 
Phases of Negotiation .pptx
 Phases of Negotiation .pptx Phases of Negotiation .pptx
Phases of Negotiation .pptx
 
MONA 98765-12871 CALL GIRLS IN LUDHIANA LUDHIANA CALL GIRL
MONA 98765-12871 CALL GIRLS IN LUDHIANA LUDHIANA CALL GIRLMONA 98765-12871 CALL GIRLS IN LUDHIANA LUDHIANA CALL GIRL
MONA 98765-12871 CALL GIRLS IN LUDHIANA LUDHIANA CALL GIRL
 
Uneak White's Personal Brand Exploration Presentation
Uneak White's Personal Brand Exploration PresentationUneak White's Personal Brand Exploration Presentation
Uneak White's Personal Brand Exploration Presentation
 
RSA Conference Exhibitor List 2024 - Exhibitors Data
RSA Conference Exhibitor List 2024 - Exhibitors DataRSA Conference Exhibitor List 2024 - Exhibitors Data
RSA Conference Exhibitor List 2024 - Exhibitors Data
 

Introduction to SQL (for Chicago Booth MBA technology club)

  • 2. AGENDA • What's SQL and when would you use it • How to find out what's in your database • How to pull the information you need, with progressively more realistic exercises • How to learn more • Questions and more practice time • Note: specific syntax today is for MySQL, but any database will be similar
  • 3. WHAT IS SQL? A N D WH Y I T ’ S U S E F U L T O A N M B A
  • 4. RELATIONAL DATABASE Billing address has an Date placed Shipping method containing Item Contact name Order Client • Stores data in a series of tables • Also stores information about relationships between data in tables (hence relational) Item number Quantity Size Color
  • 5. WHAT KIND OF DATA? • Numeric • Integers with various possible ranges (sometimes TRUE/FALSE Boolean values are encoded as 0/1 in an integer field) - INT • Decimals or floating-point numbers – FLOAT • Time and date - DATETIME • Text • With a specified length in characters – VARCHAR • Longer text – TEXT • Binary data – BLOB
  • 6. WHY USE A RELATIONAL DATABASE • Think about a list of contacts in Excel – basically one database table – and adding a phone number. • Do you have enough phone number columns? • Does cell phone have its own field or is it just another phone number? • How do you mark the primary phone number? • A database lets you have as many phone numbers as you want associated with one person, because you can put phone numbers in a separate table.
  • 7. STRUCTURED QUERY LANGUAGE • SQL is a way to pull the information you need out of a relational database • You’ll probably use it to fetch summary information from a central data warehouse and then do additional analysis in Excel/SAS/etc. • SQL is also used (by the people who set up the data warehouse) to create tables, insert data, and delete unneeded information.
  • 8. SANDBOX 1. Take out your laptop 2. Go to http://coderzone.org/sqlsandbox/ 3. Click “Sign In”
  • 9. WHAT’S IN YOUR DATABASE? SHOW TABLES; DESCRIBE <TABLENAME>;
  • 10. SHOW TABLES; • Returns a list of tables in the database • May not need to use this if you have a graphical user interface (GUI) • Can limit which tables are returned, e.g. “SHOW TABLES LIKE ‘%c%’;” will return all the tables with a “c” in their name
  • 11. DESCRIBE <TABLENAME>; • Returns information about each field in table <tablename> • Includes field name, type, and other information like if the field can be NULL or if it’s required to have a value • May not need to use this if you have a graphical user interface (GUI)
  • 12. TRY IT OUT • In the sandbox, try looking at tables. • SHOW TABLES [LIKE “%c%”]; • DESCRIBE sb_css_colors; • Which tables contain the most types of data?
  • 13. SQL STYLE • Capitalize SQL keywords (SELECT, JOIN, AS, etc.) • Lower-case table and field names Makes it easy to see what values are specific to the database you’re using.
  • 14. BASIC DATA SELECTION SELECT <FIELDS> FROM <TABLENAME>;
  • 15. SELECT <FIELDS> FROM <TABLENAME>; • Returns some data from a table • You’ll need the field names you found before from the DESCRIBE <tablename> statement • <fields> can be: • • • • One field name Multiple field names separated by commas Special value * (asterisk), which means “everything” Special value COUNT(*), which means “how many rows are there?” • This returns all the rows of the table – why might that be a problem?
  • 16. TRY IT OUT • In the sandbox, try looking at some data in tables. • SELECT * FROM sb_css_colors; • SELECT COUNT(*) FROM sb_airports; • SELECT biz_name, state, phone FROM sb_airports;
  • 17. LIMITING DATA SELECTION SELECT <FI ELDS> FROM < TABLENAME> WHERE <LI MITS> ;
  • 18. WHERE • SELECT <fields> FROM <tablename> WHERE <limits> ; • This is how to start picking out only the data you’re interested in • WHERE clauses can be: • <fieldname> = <value> such as 2 or “Bob” • Similar but with LIKE, >, >=, <, <=, != (note that different SQL implementations require different representations for dates/times, so you may have to check documentation to figure out how to say purchase_date > “2012-01-01”, for example) • Things involving functions, like ABS(<fieldname>) > 20 • Several of those joined by AND, OR, etc.
  • 19. TRY IT OUT • In the sandbox, try limiting what data you grab. • SELECT * FROM sb_css_colors WHERE hexcolor=“#800000” • SELECT * FROM sb_css_colors WHERE hexcolor LIKE “%FF%” • SELECT biz_name, state, zip, phone FROM sb_airports WHERE (state=“IL” OR state=“IN”) AND phone LIKE “%(800)%”;
  • 20. MORE DATA SELECTION SELECT <FIELDS> FROM < TABLENAME> WHERE <LIMITS> ORDER BY <FIELD> <ORDER> GROUP BY <FIELD>;
  • 21. ORDER BY • SELECT <fields> FROM <tablename> ORDER BY <field> <order>; • Like sorting in Excel • Order can be ASC (ascending) or DESC (descending) • Don’t sort and then assume you know what the possible values were – e.g. what’s at the top if you do SELECT * FROM sb_css_colors ORDER BY hexcolor DESC;
  • 22. GROUP BY • SELECT <fields and/or functions of fields> FROM <tablename> GROUP BY <field>; • Lets you create summary statistics directly instead of in Excel later • Commonly used functions: COUNT(), COUNT(DISTINCT), SUM(), AVG(), MAX(), MIN(),
  • 23. TRY IT OUT • In the sandbox, try more complicated SELECTs. • SELECT * FROM sb_css_colors ORDER BY hexcolor DESC; (what were the possible values?) • SELECT state, zip, COUNT(*) from sb_airports GROUP BY zip; • SELECT state, AVG(zip) FROM sb_airports GROUP BY state;
  • 24. CONNECTING TABLES: JOINS SELECT <FIELDS> FROM <TABLENAME> JOIN <TABLENAME> ON <FIELD MATCH>;
  • 25. JOIN • SELECT <fields> FROM <tablename> JOIN <tablename> ON <field match>; • Joins let you connect related data from multiple tables, e.g. a customer name from a customers table and an order date from an orders table • Normally you’ll join on an ID or “key” column • Often need to specify both table and field when writing the field match statement • customers.id = orders.customer_id
  • 26. TRY IT OUT • In the sandbox, try joining tables. • SELECT comp_dept, first_name, last_name, phone FROM sb_departments JOIN sb_employees ON sb_departments.emp_id = sb_employees.emp_id WHERE comp_dept = “Payroll”;
  • 27. HOW TO LEARN MORE USEFUL RESOURCES
  • 28. ONLINE RESOURCES • MySQL manuals (MySQL is open source, so there are lots of resources freely available) • http://dev.mysql.com/doc/refman/5.6/en/index.html • Question sites: • http://www.quora.com/MySQL/ • http://programmers.stackexchange.com/questions/tagged /sql (pretty technical in general)
  • 29. SANDBOXES • We’ve used http://coderzone.org/sqlsandbox/ (nice because it has multiple tables) • Also http://www.w3schools.com/sql/default.asp • You can make your own sandbox to try things out if you have web hosting (e.g. unlimited MySQL databases on DreamHost)