3. definition: Database
• A database which structures data in the form
of tables. Each table contains information
relevant to a particular feature, and is linked
to other tables by a common value. For
example, two attribute tables could be linked
to a spatial data table via a Geocode, such as
the postcode.
4. A very short explanation
• In one database. There are many tables.
• One table represents a set of entity. For example ‘People’ ,
‘Cars’ , ‘Movies’
• Table has many rows. One row in table represents instance of
entities. For example Toni Meechai’ , ‘Kobota Sedan’ ,
‘Twilight’
• Table also has many column. One column represents property
of an instance. For example Nationality’ , ‘How fast’ , ‘How
boring it is’
• When you want get or do something with Database Tables,
you can query it like ‘Please show me all people’.
Unfortunately, you have to follow SQL format.
5. Play with PHP MyAdmin
• Pay attention to demonstration.
• Try to understand ideas of ‘Database’ , ‘Table’,
‘Row’, ‘Basic usage of SQL’.
• Learners can follow this article:
http://www.php-editors.com/articles/sql_phpmyadmin.php
7. Selecting from 1 table
• SELECT * FROM COUNTRY;
• SELECT * FROM COUNTRY
WHERE CONTINECT=‘ASIA’;
• SELECT CODE,NAME,CONTINENT,POPULATION
FROM COUNTRY
WHERE CONTINENT=‘ASIA’;
8. • SELECT NAME,POPULATION
FROM COUNTRY
WHERE CONTINENT=‘ASIA’
ORDER BY POPULATION DESC;
• If we want to reverse it, change DESC to ASC
instead
9. • If it has many rows, we want just 10 rows
• SELECT NAME,POPULATION
FROM COUNTRY
WHERE CONTINENT=‘ASIA’
ORDER BY POPULATION DESC
LIMIT 10;
10. • If we want to change column name
• SELECT NAME AS “ประเทศ สุ่ม”
FROM COUNTRY
WHERE CONTINENT=‘ASIA’
ORDER BY RAND()
LIMIT 10;
• NOTE, If you want to change name to be
something like ประเทศ สุ่ม, it will throws an
error
• Because that word contains whitespace.
11. • List all countries started with ‘t’
SELECT NAME FROM COUNTRY
WHERE NAME LIKE ‘T%’;
• List all countries ended with ‘land’
SELECT NAME FROM COUNTRY
WHERE NAME LIKE ‘%land’;
• List all countries contains ‘ko’
SELECT NAME FROM COUNTRY
WHERE NAME LIKE ‘%ko%’;
12. Tables joining
Why joining?
• Refer to database course. It is better to store
different content into different table.
Reducing data redundant.
• MySQL, a database server we use is a
Relational engine. We can say one table can
has relationship to other tables.
• To get data across tables, we have to do
joining selection.
13. Relationship in our 3 tables
• Consider our 3 tables: Country, City,
CountryLanguage
• Table: Country has column ‘Code’
Table: City has column ‘CountryCode’
Table: CountryLanguage has column
‘CountryCode’
• Country.Code, City.CountryCode,
CountryLanguage.CountryCode are sharing
relationship.
14. • List all city in Thailand
SELECT * FROM CITY,COUNTRY
WHERE CODE=‘THA’
AND CODE=COUNTRYCODE;
• Remember. To join 2 tables we have to do 2
things.
1)Include 2 tables’name in From clause
2)Match the related columns in each 2 tables by
using equality in where clause
15. • If we have same columns name in 2 tables,
you will get error cause there are ambiguous
column names.
• To fix this problem, specific table name before
column name by using .(dot)
SELECT CITY.NAME,COUNTRY.NAME
FROM CITY,COUNTRY
WHERE CODE=‘THA’
AND COUNTRY.CODE=CITY.COUNTRYCODE;
16. Count and Sum
• Find surface area of Thailand + Malaysia
• SELECT SUM(SURFACEAREA)
FROM COUNTRY
WHERE NAME=‘THAILAND’
OR NAME=‘MALAYSIA’;
17. • Find how many cities located in Asia
• SELECT COUNT(CITY.NAME)
FROM CITY,COUNTRY
WHERE CONTINENT=‘ASIA’
AND COUNTRY.CODE=CITY.COUNTRYCODE;
20. Inserting
• — 1. Use SQL: “DESCRIBE tablename” to see
the target table’s structure.
Remember column name, type and sequence
• 2. Use SQL: “INSERT INTO
VALUES(xxx,yyy,zzz)” Replace xxx,yyy,zzz with
actual values you want to insert ordering as
the table column’s sequence.