Presentation is loading. Please wait.

Presentation is loading. Please wait.

Using SQL for online databases A very quick introduction to SQL Data and tables Normalisation Relational databases The Structured Query Language Using.

Similar presentations


Presentation on theme: "Using SQL for online databases A very quick introduction to SQL Data and tables Normalisation Relational databases The Structured Query Language Using."— Presentation transcript:

1 Using SQL for online databases A very quick introduction to SQL Data and tables Normalisation Relational databases The Structured Query Language Using SQL in PHP (with Object Oriented syntax) Common SQL constructs Nic Shulver, FCES, Staffordshire University

2 Using SQL for online databases A lot of collected data is repetitive in form Data may be repetitive in content, too For example, if we have the following information for 15 people; [Age in years], [Name], [Height in metres] then we have 15 records of 3 fields, in this format; [whole number], [text], [fractional number] Ways to structure information

3 Using SQL for online databases Here is some simple information: Danny DeVito(USA), Hugh Jackman (Australia), Halle Berry(USA), Patrick Stewart (UK), … This kind of information has a simple structure or format We can put the information into a table Examples

4 Using SQL for online databases No.First NameLast NameOrigin 1DannyDeVitoUnited States of America 2ArnoldSchwarzeneggerAustria 3HalleBerryUnited States of America 4PatrickStewartUnited Kingdom 5KarismaKapoorIndia 6HughJackmanAustralia 7AlecGuinnessUnited Kingdom 8JackNicholsonUnited States of America 9KylieMinogueAustralia Table with repeats

5 Using SQL for online databases No.First NameLast NameOrigin 1DannyDeVito1 2ArnoldSchwarzenegger2 3HalleBerry1 4PatrickStewart3 5KarismaKapoor5 6HughJackman4 7AlecGuinness3 8JackNicholson1 9KylieMinogue4 No.Country Name 1 United States of America 2 Austria 3 United Kingdom 4 Australia 5 India This is an example of a simple one-to-many relationship. Normalised table

6 Using SQL for online databases No.First NameLast NameOriginFilms 1DannyDeVitoUnited States of AmericaBatman Returns Twins 2ArnoldSchwarzeneggerAustriaTerminator True Lies Twins Complex Table

7 Using SQL for online databases No.First NameLast NameOrigin 1DannyDeVito1 2ArnoldSchwarzenegger2 No.Country Name 1United States of America 2Austria 3United Kingdom 4Australia 5India This is an example of several linked tables No.Films 1Batman Returns 2Terminator 1Hook 1Twins 2 Multiple tables…

8 Using SQL for online databases The previous example does not solve the problem What about the other actors/actresses in the films? Databases can soon get complicated Need to think carefully about structure before you start – may be difficult later on For this module, we should only need a few tables (at minimum) …still too complex?

9 Using SQL for online databases Rows and Columns Broad view of the table – each row is a record, each column is a set of fields This is analogous to a spreadsheet view Records and Fields Detailed view of the information Each record (entry) in the database is made up of fields, possibly with some fields from joined tables Terminology

10 Using SQL for online databases Tables may be joined together – this is very powerful but can get complex Database systems which allow join relationships are known as Relational Databases (see RDSD) To build, use and maintain joins between tables, it is often easiest to use tools built into database programs (e.g. MS Access, SQLyog) Relationships, Joins

11 Using SQL for online databases Structured Query Language (SQL), is a set of commands that all programs and users may use to access data within databases Application programs and tools often allow users to access SQL databases without directly using SQL, but these applications in turn must use SQL when executing the user’s request Structured Query Language

12 Using SQL for online databases SQL provides commands for a variety of tasks including: querying data, inserting, updating, and deleting rows in a table, creating, replacing, altering, and dropping objects, controlling access to the database and its objects, guaranteeing database consistency and integrity. Capabilities

13 Using SQL for online databases Why bother with SQL? SQL gives us the power to access the contents of a database in a simple, powerful way SQL is (mostly) independent of the underlying database engine So you can use SQL with many different kinds of database This is simpler than learning how to access each type of database in a proprietary way

14 Using SQL for online databases The restaurant model The query engine provides a layer between programming languages and database. It allows a developer to write programs which access data, without knowing how the database is implemented.

15 Using SQL for online databases // grabs matching record(s) from the “tblstudent" table $sSQL="SELECT * FROM tblstudent WHERE Email='$sEmail' "; $rsMain = $ mysqli->query ($sSQL); // grabs matching record(s) from the “tblstudent" table $sSQL="SELECT * FROM tblstudent WHERE Email='$sEmail' "; $rsMain = $ mysqli->query ($sSQL); Example SQL usage in PHP What does the SQL do? How does PHP use SQL? How does the SQL get sent to the database? Where do the results of the query appear?

16 Using SQL for online databases Useful SQL SELECT examples SELECT lastname, age FROM tblstudent WHERE firstname=‘Naomi’; SELECT * FROM tblstudent WHERE firstname LIKE ‘Naom*’; SELECT * FROM tblstudent WHERE age BETWEEN 16 AND 25; SELECT firstname, studentnumber FROM tblstudent WHERE age>=25; SELECT * FROM tblstudent WHERE studentnumber IS NOT NULL;

17 Using SQL for online databases More SQL SELECT examples SELECT * FROM tblstudent ORDER BY age DESC; SELECT * FROM tblstudent WHERE postcode IN(‘ST1’, ‘ST4’, ‘ST6’); SELECT * FROM tblstudent WHERE age BETWEEN 16 AND 25 ORDER BY age, studentnumber DESC; SELECT firstname, studentnumber FROM tblstudent WHERE age>=55 AND studentnumber IS NOT NULL; SELECT COUNT(*) AS “Total” FROM tblstudent WHERE age>=55;

18 Using SQL for online databases The Four SQL Statements There are four main SQL statements you will use. The most useful is SELECT, which we have just seen. It is usually used in this format; SELECT column_name(s) FROM table_name SELECT column_name(s) FROM table WHERE column operator value e.g. SELECT lastname, age FROM emp WHERE firstname=‘Naomi’;

19 Using SQL for online databases The Insert Statement INSERT INTO table_name VALUES (value1, value2,....) Inserts a new row into an existing table INSERT INTO Persons VALUES (‘Lightman', ‘David‘, ‘dlightman@gtnw.org’); INSERT INTO Authorisation VALUES (‘Joshua’, ‘BURGR’); Insert Data in Specified Columns INSERT INTO Persons (LastName, Address) VALUES (‘Smith', '7 Lee Avenue');

20 Using SQL for online databases The Update Statement UPDATE table_name SET column_name=new_value WHERE column_name=some_value; Update one Column in a Row: UPDATE Person SET FirstName='Bob' WHERE Email='ab123456'; Update several Columns in a Row: UPDATE Person SET Address='21 Jump Street', City='Los Angeles' WHERE LastName='Hanson';

21 Using SQL for online databases The Delete Statement DELETE FROM table_name WHERE column_name = some_value Delete one Row: DELETE FROM Person WHERE Email='ab123456'; Delete several Rows: DELETE FROM Person WHERE LastName='Smith'; Delete all Rows in a Table: [Beware!] DELETE FROM Person; → Same as: DELETE FROM Person WHERE LastName='*';

22 Using SQL for online databases The Database Connection Creates a new connection, configured for student ID codes // Note: username is “xy123456”, password is “xy123456” // This is unusual – normally the user, pwd and dbname differ $id= 'xy123456'; $mysqli = new mysqli("web.fcet.staffs.ac.uk", $id, $id, $id); if ($mysqli->connect_errno) {die( "Failed to connect to MySQL: (". $mysqli->connect_errno. ") ". $mysqli->connect_error ); }

23 Using SQL for online databases Using the Statements - Select // Receives values from Form, assigns values entered to vars $npage_code = $_REQUEST['code']; $sSQL = "SELECT * FROM PageElements WHERE PageCode='$npage_code' "; $rsSearch = $mysqli->query($sSQL); // fetches a row of fields and steps to the next one $row = $rsSearch->fetch_assoc(); // gets each field by name $linkcode=$row['LinkAd']; $buycode=$row['BuyAd'];

24 Using SQL for online databases Using the Statements - Insert // Receives values from Form, assigns values entered to vars $formname = $_REQUEST["name"]; $formemail = $_REQUEST["email"]; $formcomments = $_REQUEST["comments"]; // Declares SQL statement that will add data to the database $sSQL = "INSERT INTO users (usrName, usrEmail, usrComments) VALUES ('$formname', '$formemail', '$formcomments')"; // Just runs the SQL query (but better if we checked for errors) $mysqli->query($sSQL); $mysqli->close();

25 Using SQL for online databases Using the Statements - Update // Declares SQL statement that will update a database $sSQL = "UPDATE Members SET FirstName='Mike' WHERE LastName='North' "; // Executes the SQL… $mysqli->query($sSQL); // note that SELECT, UPDATE, DELETE and INSERT SQL statements all work with the “query()” method

26 Using SQL for online databases Using the Statements - Delete // Declares SQL statement to delete from a DB $sSQL="DELETE FROM Members WHERE CITY='BELFAST' "; // Executes the SQL statement If( !$mysqli->query($sSQL) ) {die("Could not delete from table: ". $mysqli->error); }

27 Using SQL for online databases Prepared Statements Prepared statements use a template system to avoid SQL injection attacks. Example code below – look for the placeholder character $stmt = $mysqli->prepare("SELECT id FROM tblMsgHubUser WHERE tuName=?"); $stmt->bind_param("s", $sUser); // s=string $stmt->execute();

28 Using SQL for online databases Conclusion We have seen What SQL can be used for, The value of SQL as a cross-platform database interface language, Many examples of SQL clauses, Examples of SQL in PHP. http://uk3.php.net/manual/en/class.mysqli.php


Download ppt "Using SQL for online databases A very quick introduction to SQL Data and tables Normalisation Relational databases The Structured Query Language Using."

Similar presentations


Ads by Google