Standard Query Language (SQL) Hamid Zarrabi-Zadeh Web Programming – Fall 2013 2 Outline
Total Page:16
File Type:pdf, Size:1020Kb
Standard Query Language (SQL) Hamid Zarrabi-Zadeh Web Programming – Fall 2013 2 Outline • Introduction • Local Storage Options Cookies Web Storage • Standard Query Language (SQL) Database Commands Queries • Summary 3 Introduction • Any (web) application needs persistence storage • There are three general storage strategies: server-side storage client-side storage a hybrid strategy 4 Client-Side Storage • Client-side data is stored locally within the user's browser • A web page can only access data stored by itself • For a long time, cookies were the only option to store data locally • HTML5 introduced several new web storage options 5 Server-Side Storage • Server-side data is usually stored within a file or a database system • For large data, database systems are preferable over plain files • Database Management Systems (DBMSs) provide an efficient way to store and retrieve data Cookies 7 Cookies • A cookie is a piece of information stored on a user's browser • Each time the browser requests a page, it also sends the related cookies to the server • The most common use of cookies is to identify a particular user amongst a set of users 8 Cookies Structure • Each cookie has: • a name • a value (a 4000 character string) • expiration date (optional) • path and domain (optional) • if no expiration date is specified, the cookie is considered as a session cookie • Session cookies are deleted when the browser session ends (the browser is closed by the user) 9 Set/Get Cookies • In JavaScript, cookies can be accessed via the document.cookie pseudo-variable • Set cookie: document.cookie = "name=value; expires=date; path=/; domain=ce.sharif.edu" • Read all cookies: var pairs = document.cookie.split(';'); 10 jQuery.Cookie • A simple jQuery plugin for reading, writing and deleting cookies • Read cookie $.cookie(); // all cookies as a dictionary $.cookie('the_cookie'); • Set cookie $.cookie('the_cookie', 'the_value'); $.cookie('the_cookie', 'the_value', {expires: 7, path: '/'}); • Remove cookie $.removeCookie('the_cookie'); Web Storage 12 Web Storage • HTML5 introduces new local storages, which are more secure and faster than cookies they are not included with every server request they can store large amounts of data efficiently • Two new objects for storing data localStorage – stores data with no expiration date sessionStorage – stores data for one session 13 Web Storage Example • Here is an example: if (typeof (Storage) !== 'undefined') { localStorage.student = 'Ali', localStorage.grade = 19.5; } • Note: values are always stored as strings • Use JSON.stringify() to convert objects to string before storing, and use JSON.parse() to retrieve 14 Local Databases • HTML5 has two standard interfaces for supporting local databases: Web SQL Database Indexed Database • Web SQL defines a rational database that can be queried using SQL • IndexedDB is a NoSQL database which uses object stores rather than the typical rational database implementation Standard Query Language (SQL) 16 What is SQL? • SQL is a standard language for accessing and manipulating rational databases • SQL is an ANSI (American National Standards Institute) standard, though there are slightly different versions of the SQL language • Examples of SQL database systems are Oracle MS SQL Server IBM DB 2 MySQL, SQLight, … 17 Rational Databases • Components: databases tables rows fields (corresponds to table columns) • Operations create/drop databases or tables insert/update/delete table rows query/fetch a set of rows 18 SQL Commands • Most database systems provide a command-line tool for issue SQL commands or queries • There are also some GUI tools built upon command-line tools providing a more comfortable user interface • Most databases are configured to be case- insensitive, especially on database commands • Most command-line programs require a trailing semicolon (;) to terminate a SQL statement SELECT * from table_name; 19 Database Operations • Creating a Database CREATE DATABASE test; GRANT ALL ON test.* to user(s); • Using a Database USE test; • Dropping a Database DROP DATABASE test; 20 Table Operations • Creating a Table CREATE TABLE users (name VARCHAR(30), userid INT, groupid INT); • Dropping a Table DROP TABLE users; • Cleaning a Table TRUNCATE TABLE users; 21 Row Operations • Inserting a Row INSERT INTO users VALUES('Ali', 110, 1); • Updating a Row UPDATE users SET groupid=4 WHERE groupid=1; • Deleting a Row DELETE FROM users WHERE groupid=4; SQL Queries 23 SQL Select • The SELECT statement is used to select data from a database • The result is stored in a result table, called the result-set SELECT column_name,column_name FROM table_name; SELECT * FROM table_name; SELECT DISTINCT column_name,column_name FROM table_name; 24 Conditional Select • The WHERE clause is used to extract only those records that fulfill a specified criterion SELECT column_name, column_name FROM table_name WHERE column_name operator value; • Operators: =, <>, >, >=, <, <=, BETWEEN, LIKE, IN, IS, IS NOT AND, OR SELECT name, userid FROM users Where userid > 10 AND groupid <= 4 25 Order Results • The ORDER BY keyword is used to sort the result- set by one or more columns SELECT column_name, column_name FROM table_name ORDER BY column_name,column_name ASC|DESC; • The ORDER BY keyword sorts the records in ascending order by default. • To sort the records in a descending order, you can use the DESC keyword. 26 SQL Functions • SQL has many built-in functions for performing calculations on data • Sample aggregate function: SELECT AVG(column_name) FROM table_name • Sample scalar function: SELECT UCASE(name), userid FROM users; • Combined: SELECT UCASE(name) FROM users WHERE grade > (SELECT AVG(grade) FROM users); 27 Aggregate Functions • SQL aggregate functions return a single value, calculated from values in a column • Useful aggregate functions: AVG() - Returns the average value COUNT() - Returns the number of rows FIRST() - Returns the first value LAST() - Returns the last value MAX() - Returns the largest value MIN() - Returns the smallest value SUM() - Returns the sum 28 Scalar Functions • SQL scalar functions return a single value, based on the input value. • Useful scalar functions: UCASE() - Converts a field to upper case LCASE() - Converts a field to lower case MID() - Extract characters from a text field LEN() - Returns the length of a text field ROUND() - Rounds to the number of decimals specified NOW() - Returns the current system date and time FORMAT() - Formats how a field is to be displayed 29 Summary • There are three general options for storing data on client side: Cookies Web Storage Web SQL / Indexed DB • Most server-side storage systems use rational databases to store data • SQL is a standard language for accessing and manipulating rational databases 30 References • W3Schools http://www.w3schools.com/sql • Core Python Applications Programming By Wesley J. Chun • Internet Programming by Pat Morin http://cg.scs.carleton.ca/~morin/teaching/2405.