Download Lecture 2 PowerPoint

Survey
yes no Was this document useful for you?
   Thank you for your participation!

* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project

Document related concepts

Extensible Storage Engine wikipedia , lookup

Entity–attribute–value model wikipedia , lookup

Team Foundation Server wikipedia , lookup

Oracle Database wikipedia , lookup

Relational algebra wikipedia , lookup

DBase wikipedia , lookup

Ingres (database) wikipedia , lookup

Tandem Computers wikipedia , lookup

Microsoft Access wikipedia , lookup

Database wikipedia , lookup

Btrieve wikipedia , lookup

Microsoft Jet Database Engine wikipedia , lookup

Clusterpoint wikipedia , lookup

Database model wikipedia , lookup

Null (SQL) wikipedia , lookup

Relational model wikipedia , lookup

Open Database Connectivity wikipedia , lookup

Microsoft SQL Server wikipedia , lookup

SQL wikipedia , lookup

PL/SQL wikipedia , lookup

Transcript
Instructor: Craig Duckett
Lecture 02: Thursday, March 30th, 2017
SQL Basics and SELECT, FROM, WHERE
1
Assignment 1 is due LECTURE 5, Tuesday, April 11th, 2017
in StudentTracker by MIDNIGHT
• MID-TERM EXAM is LECTURE 10, Thursday, April 27th, 2017
• Assignment 2 is due LECTURE 12, Tuesday, May 9th, 2017
in StudentTracker by MIDNIGHT
2
3 x 150 Points (450 points Total)
• Assignment 1 (Stage 1): DUE LECTURE 5 Tuesday, April 11th
• Assignment 2 (Stage 2): DUE LECTURE 12 Tuesday, May 9th
• Assignment 3 (Stage 3): DUE LECTURE 20 Tuesday, June 6th
• Database Presentation: DUE LECTURE 20 Tuesday, June 6th
3
Tuesday (LECTURE 1)
• Database Design for Mere Mortals: Chapter 1
Thursday (LECTURE 2)
• The Language of SQL:
• Chapter 1: Relational Databases and SQL
• Chapter 2: Basic Data Retrieval
4
•
•
•
•
•
•
•
SQL Basics
SQL Syntax
SQL Keywords
The SELECT Statement
The FROM Clause
The WHERE Clause
BIT275: ICE 02
5
SQL Basics
6
SQL Basics
SQL,
Structured Query Language,
is the common language that lies at the heart of every Relational Database
Management System* (the application that actually gets the SQL to run and do something) that you'll likely to use. Now, you've
probably noticed the different pronunciation already. Some people say S-Q-L, some people say sequel. I tend to say S-Q-L in
general and when talking about MySQL (the MySQL official documentation says that’s how it should be pronounced), but I will say
Microsoft Sequel Server (because that’s how they pronounce it on-campus AT Microsoft) although will sometimes revert to S-Q-L
Server if I’ve been talking about SQL in general just before hand. In short, both ways are correct, but I would defer to what and
how they are calling it where you work 
or
Now SQL, the language, has been around since the 1970s, and that's one of the few languages I was writing 20 years ago that I'm
still writing now. A lot of other programming languages have come and gone, become fashionable and unfashionable, but SQL has
stuck around, and I expect it to stay for a long time to come. But SQL is a very small, very focused language, and the key to first
learning it is to understand that it's a little different from other programming languages you might have come across, like C, C++,
Java, or C#. SQL is what's considered a declarative query language, as opposed to procedural or imperative languages. What it
means is you use SQL to describe what you want, and you let the Database Management System (DBMS) handle how that's
actually done. You don't have to manually lay out the algorithm, the different steps of the procedure as you would do in other
programming languages.
*How Does SQL Run?
A .java files is simply a text file that needs a compiler like jGrasp to run. An .html or .css or .js
file are also all text files that need a browser application to run. A C or C++ or C# file are
simply text files as well that also need a compiler to run.
Like them, a .sql file is also a text file that needs a Database Management System (DBMS)*
to run, although you can also enter your SQL queries directly into the DBMS without the need
of a separate .sql file (as we shall see throughout the quarter, and starting with today’s ICE).
Different Types of Database Management Systems
•
•
•
•
Access
FileMaker Pro
DB2
Sybase
•
•
•
•
dBase
InGres
PostgreSQL
Rocket U2
•
•
•
•
MySQL
MariaDB
SQL Server
Oracle
See: http://en.wikipedia.org/wiki/List_of_relational_database_management_systems
SQL Basics: How Does It Work?
If I have a Books table with, perhaps, thousand different books in it, and I want to know which
books have a list price of more than $40. Well, in a procedural or imperative language like C or Java,
I'll have to write the steps to do this…
SQL Basics
I would probably write some (pseudo) code that would start at the first book and then would loop
through all of them one by one. And every time going through this loop you're asking the question,
"Is this more than $40? If so, do one thing. If not, do something else." Even writing this in pseudo
code, I'd be writing a loop. I'd be writing conditions. I'd be writing returns.
SQL Basics
With SQL, you don't describe all the steps, you just describe the outcome. You describe what you
want the same way you might do in English, where you just say:
or this written in SQL:
That's it. Select or go get everything from the Books table where the price is more than $40. The
Database Management System will take this, it will look at all your data, figure it out, and return the
result set, whether that would be one book, 500 books, or even none, based on your query.
SQL Basics
So SQL can be used to select, to retrieve, or read data, and to ask questions of it.
Books Table
SQL Basics
In fact, all of these things are referred to with the wonderful acronym of
Update, Delete.
CRUD: Create, Read,
An SQL can be used to create not just your data, but to define the databases themselves.
FYI: I will be discussing Data Manipulation Language (DML) and Data Definition Language (DDL) in Lecture 5
SQL Syntax
http://www.w3schools.com/sql/sql_syntax.asp
14
SQL Syntax
1. Comment A comment is optional text that explains you program. Comments usually describe what a program does or why code
was changed. Compilers are for humans—the compiler ignores them. A comment is introduced by two consecutive hypens and
continues until the end of the line. -- This is a comment
Some DBMS (like Microsoft SQL Server) support the /* ... */ (forward slash-asterisk character pairs) multiline
comments (those who've taken Java or C# should recognize these).
2. SQL Statement An SQL statement is a valid combination of tokens introduced by a keyword. Tokens are the basic indivisible parts
of the SQL language; they can’t be reduced grammatically. Tokens include keywords, identifiers, operators, constants, and
punctuation symbols.
3. Clauses An SQL statement has one or more clauses. In general, a clause is a fragment of an SQL statement introduced by a
keyword, is required or optional, and must be given in a particular order. SELECT, FROM, WHERE, and ORDER BY are examples of
clauses.
4. Keywords Keywords are words that SQL reserves because they have special meaning in the language. Using a keyword outside its
specific context (as an identifier, for example)) causes an error. DBMSs use a mix of standard and nonstandard (proprietary)
keywords. Search your DBMS documentation for keywords or reserved words.
5. Identifiers Identifiers are words that you (or the database designer) use to name database objects such as tables, columns,
aliases, indexes, and views.
6. Terminating Semicolon AN SQL statement ends with a semicolon.
Authors Table
16
SQL Syntax
SQL is a "freeform" language whose statements can:
•
•
•
•
Be in uppercase or lowercase (SELECT, select, or SeLECt are considered to be identical keywords)
Continue on the next line as long as you don't split words, tokens, or quoted strings in two.
Be on the same line as other statements
Start in any column
Despite its flexibility, you should adopt a consistent style. I prefer to use uppercase keywords (e.g., SELECT) and an
uppercase/lowercase mix for identifiers using Pascal case (e.g., FirstName).
Although I don't do it myself, some SQL coders also like to indent each clause on its own line:
SQL Syntax
Common Errors
•
•
•
•
•
•
•
•
Omitting the terminating semicolon when using multiple statements (or Transact-SQL)
Misspelling a keyword or identifier
Mismatched or unmatched parentheses or quotes (e.g., double quotes instead of single quotes)
Listing clauses out of order
Not surrounding a string or datetime literal with single quotes
Surrounding a numeric constant (literal) or the keyword NULL with quotes
Mismatching a table and column name
Creating a table with a bad name
SQL Keywords
19
SQL Keywords
Structured Query Language is the shared vocabulary of relational databases. That's not for general purpose programming. It's
a small language focused purely on working with databases and the first handful of keywords that you'll learn (maybe a dozen)
will take care of 90% of everything you'd ever do in SQL.
The SELECT Statement
See: http://www.w3schools.com/sql/sql_select.asp
22
The SELECT Statement
In terms of frequency, there's one that's head and shoulders above all the others. By far the most common word you'll ever
write in SQL is SELECT. This is the word we start with when we want to SELECT or read information from one of the tables in
one of our databases. We're using it to ask the database a question, and we expect a reply. Actually, the better word is not
question but query. A query as in the Q in SQL: Structured Query Language.
if I want to SELECT some data out of my database, I'm going to have multiple tables and multiple columns in each table. So, I
need to say what specific part of this database am I interested in selecting. The general format of a SELECT statement is the
word SELECT, what columns you're interested in, then the word FROM what table? SELECT and FROM are your SQL keywords.
They're part of the SQL language itself. Now, the columns and table names are up to you. It's whatever you named your
columns and your tables in your database.
See: http://www.w3schools.com/sql/sql_select.asp
The FROM Clause
24
SELECT Statement, FROM Clause
SELECT Statement, FROM Clause
SELECT Statement, FROM Clause
SELECT Statement, FROM Clause
The WHERE Clause
29
The WHERE Clause
See: http://www.w3schools.com/sql/sql_where.asp
The WHERE Clause
See: http://www.w3schools.com/sql/sql_where.asp
Uppercase, Lowercase, Semicolon?
Database Name with Dot Notation
Dot notation allows you to prefix a table name to a column
name to avoid ambiguity and to query multiple tables.
More About the WHERE Clause
More About the WHERE Clause
More About the WHERE Clause
Single ‘=‘ sign
‘<>’ NOT equal
More About the WHERE Clause
AND
OR
See: http://www.w3schools.com/sql/sql_and_or.asp
More About the WHERE Clause
IN
(note the single quotes, and comma)
See: http://www.w3schools.com/sql/sql_in.asp
More About the WHERE Clause
‘%’ wildcard
See: http://www.w3schools.com/sql/sql_wildcards.asp
A substitute for 0 or more characters
More About the WHERE Clause
‘_’ wildcard
A substitute for a single character
See: http://www.w3schools.com/sql/sql_wildcards.asp
More About the WHERE Clause
IS NULL
See: http://www.w3schools.com/sql/sql_null_values.asp
More About the WHERE Clause
IS NOT NULL
See: http://www.w3schools.com/sql/sql_notnull.asp
BIT 275 ICE 02
43
BIT275: In-Class Exercises (ICE)
SQL Query Exercise (solo, no partner )
Using what you've learned today about SQL, use the remainder of the class time to write SQL
queries as part of the BIT275 ICE 02 exercise. Feel free to utilize whatever you might find
useful in building these queries (a book, the PowerPoint slides, Google, etc).
http://faculty.cascadia.edu/cduckett/bit275/lecture_02/ice02.html