sql workshop
play

SQL Workshop Introduction Queries Doug Shook SQL Server As its - PowerPoint PPT Presentation

SQL Workshop Introduction Queries Doug Shook SQL Server As its name implies: its a data base server! Technically it is a database management system (DBMS) Competitors: Oracle, MySQL, DB2 End users (thats you!) interact


  1. SQL Workshop  Introduction  Queries Doug Shook

  2. SQL Server  As its name implies: its a data base server! – Technically it is a database management system (DBMS) – Competitors: Oracle, MySQL, DB2  End users (that’s you!) interact as clients – Queries formed on the client and passed to the server 2

  3. SQL Server Database server Network ` ` Client Client ` Client 3

  4. Relational database model  Data is stored in tables – One or more columns (fields) – Many, many, rows (records)  Modeled after real world entities – Attributes – Instances  Primary keys are used to identify each record – Must be unique! 4

  5. Relational database model Primary key Columns Rows 5

  6. Relational database model  Relationships are defined between two tables by foreign keys – One-to-one – One-to-many – Many-to-many  Primary key -> foreign key 6

  7. Relational database model Primary key Foreign key 7

  8. Columns  Columns have associated properties – Data type – Null? – Default value – Identity column 8

  9. Comparison with file systems  Databases... – Are consistent • Same basic structure for all data – Are easier to maintain • Due to centralization – Can perform validations – Can enforce relationships – Can access many records at once – Allow concurrent access  Performance considerations? 9

  10. SQL  Forms the basis of all DBMS – Basic statements will work (mostly) regardless of platform – Each vendor adds “extensions”  Two main categories – Data Manipulation Language – Data Definition Language 10

  11. SQL SQL DML statements  SELECT  INSERT  UPDATE  DELETE SQL DDL statements  CREATE DATABASE, TABLE, INDEX  ALTER TABLE, INDEX  DROP DATABASE, TABLE, INDEX 11

  12. SQL Coding Guidelines  Freeform – Lines, spaces, linebreaks do not affect code  Not case sensitive (!)  Comments – Block /* */ – Single line -- 12

  13. SQL Coding Guidelines  Recommendations: – Each clause should be on a new line – Break up long clauses and indent – Keywords should be capatalized (or in all caps) • Column and table names should use CamelCase – Each statement should end with a semicolon • Technically not required by SQL Server but... 13

  14. SQL Coding Guidelines A SELECT statement that’s difficult to read select invoicenumber, invoicedate, invoicetotal, invoicetotal – paymenttotal – credittotal as balancedue from invoices where invoicetotal – paymenttotal – credittotal > 0 order by invoicedate A SELECT statement that’s coded with a readable style Select InvoiceNumber, InvoiceDate, InvoiceTotal, InvoiceTotal – PaymentTotal – CreditTotal As BalanceDue From Invoices Where InvoiceTotal – PaymentTotal – CreditTotal > 0 Order By InvoiceDate; 14

  15. Our Setup  Server set up for us – We'll be sharing...so be nice!  Need a client – DBVisualizer  washu.cyteeotxp6ae.us-east-1.rds.amazonaws.com 15

  16. Connecting to the DB  Server name: supplied to you  Authentication – Username: washu – Password: workshop 16

  17. Database Diagrams  Shows: – Table relationships – Column names – Primary keys  Great for visualizing the database as a whole 17

  18. Queries  Click the green triangle – SQL Commander  Ensure that the DB you’d like to work with is selected in the combobox  Type in the query – Execute button  Results displayed at the bottom  Once a query works the way you want, save it! 18

  19. Syntax Errors  Sometimes detected by the query editor  Common mistakes – Wrong DB selected in combobox – Misspellings – Missing quotation/parentheses 19

  20. Documentation  Short version: Use it!  Long version: It will save you time and effort. Use it! 20

  21. SELECT  Used to retrieve information  (Up to) four clauses: – SELECT • Column name(s) – FROM • Table name – WHERE (Optional) • Conditional statement(s) – ORDER BY (Optional) • Column name(s) 21

  22. SELECT Examples A simple SELECT statement SELECT * FROM Invoices; A SELECT statement that retrieves and sorts rows SELECT InvoiceNumber, InvoiceDate, InvoiceTotal FROM Invoices ORDER BY InvoiceTotal; A SELECT statement that retrieves a calculated value SELECT InvoiceID, InvoiceTotal, CreditTotal + PaymentTotal AS TotalCredits FROM Invoices WHERE InvoiceID = 17; A SELECT statement that retrieves all invoices between given dates SELECT InvoiceNumber, InvoiceDate, InvoiceTotal FROM Invoices WHERE InvoiceDate BETWEEN '2012-01-01' AND '2012-05-31' ORDER BY InvoiceDate; 22

  23. Column Specifications The expanded syntax of the SELECT clause SELECT [ALL|DISTINCT] [TOP n [PERCENT] [WITH TIES]] column_specification [[AS] result_column] [, column_specification [[AS] result_column]] ... Five ways to code column specifications  All columns in a base table  Column name in a base table  Arithmetic expression  String expression  Function 23

  24. Column Specifications Column specifications that use base table values The * is used to retrieve all columns SELECT * Column names are used to retrieve specific columns SELECT VendorName, VendorCity, VendorState Column specifications that use calculated values An arithmetic expression is used to calculate BalanceDue SELECT InvoiceNumber, InvoiceTotal - PaymentTotal – CreditTotal AS BalanceDue A string expression is used to calculate FullName SELECT VendorContactFName + ' ' + VendorContactLName AS FullName A function is used to calculate CurrentDate SELECT InvoiceNumber, InvoiceDate, GETDATE() AS CurrentDate 24

  25. Naming Columns Two ways to name the columns in a result set Using the AS keyword (the preferred technique) SELECT InvoiceNumber AS [Invoice Number], InvoiceDate AS Date, InvoiceTotal AS Total FROM Invoices; Using the equal operator (an older technique) SELECT [Invoice Number] = InvoiceNumber, Date = InvoiceDate, Total = InvoiceTotal FROM Invoices; The result set for both SELECT statements 25

  26. String Expressions How to concatenate string data SELECT VendorCity, VendorState, VendorCity + VendorState FROM Vendors; How to format string data using literal values SELECT VendorName, VendorCity + ', ' + VendorState + ' ' + VendorZipCode AS Address FROM Vendors; How to include apostrophes in literal values SELECT VendorName + '''s Address: ', VendorCity + ', ' + VendorState + ' ' + VendorZipCode FROM Vendors; 26

  27. Functions A SELECT statement that uses the LEFT function SELECT VendorContactFName, VendorContactLName, LEFT(VendorContactFName, 1) + LEFT(VendorContactLName, 1) AS Initials FROM Vendors; A SELECT statement that uses the CONVERT function SELECT 'Invoice: #' + InvoiceNumber + ', dated ' + CONVERT(char(8), PaymentDate, 1) + ' for $' + CONVERT(varchar(9), PaymentTotal, 1) FROM Invoices; A SELECT statement that computes the age of an invoice SELECT InvoiceDate, GETDATE() AS 'Today''s Date', DATEDIFF(day, InvoiceDate, GETDATE()) AS Age FROM Invoices; 27

  28. DISTINCT A SELECT statement that returns all rows SELECT VendorCity, VendorState FROM Vendors ORDER BY VendorCity; A SELECT statement that eliminates duplicate rows SELECT DISTINCT VendorCity, VendorState FROM Vendors; 28

  29. TOP A SELECT statement with a TOP clause SELECT TOP 5 VendorID, InvoiceTotal FROM Invoices ORDER BY InvoiceTotal DESC; A SELECT statement with a TOP clause and the PERCENT keyword SELECT TOP 5 PERCENT VendorID, InvoiceTotal FROM Invoices ORDER BY InvoiceTotal DESC; A SELECT statement with a TOP clause and the WITH TIES keyword SELECT TOP 5 WITH TIES VendorID, InvoiceDate FROM Invoices ORDER BY InvoiceDate ASC; 29

  30. WHERE  Recall that this is optional! Examples of WHERE clauses that retrieve… Vendors located in Iowa WHERE VendorState = 'IA' Invoices with a balance due (two variations) WHERE InvoiceTotal – PaymentTotal – CreditTotal > 0 WHERE InvoiceTotal > PaymentTotal + CreditTotal Vendors with names from A to L WHERE VendorName < 'M' Invoices on or before a specified date WHERE InvoiceDate <= '2012-05-31' Invoices on or after a specified date WHERE InvoiceDate >= '5/1/12' Invoices with credits that don’t equal zero WHERE CreditTotal <> 0 30

  31. Logical Operators The syntax of the WHERE clause with logical operators WHERE [NOT] search_condition_1 {AND|OR} [NOT] search_condition_2 ... Examples of queries using logical operators The AND operator WHERE VendorState = 'NJ' AND YTDPurchases > 200 The OR operator WHERE VendorState = 'NJ' OR YTDPurchases > 200 The NOT operator WHERE NOT (InvoiceTotal >= 5000 OR NOT InvoiceDate <= '2012-07-01') The same condition without the NOT operator WHERE InvoiceTotal < 5000 AND InvoiceDate <= '2012-07-01' 31

  32. IN The syntax of the WHERE clause with an IN phrase WHERE test _ expression [NOT] IN ({subquery|expression_1 [, expression_2]...}) Examples of the IN phrase An IN phrase with a list of numeric literals WHERE TermsID IN (1, 3, 4) An IN phrase preceded by NOT WHERE VendorState NOT IN ('CA', 'NV', 'OR') An IN phrase with a subquery WHERE VendorID IN (SELECT VendorID FROM Invoices WHERE InvoiceDate = '2012-05-01') 32

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend