MySQL Notes
MySQL Notes
WHAT IS MYSQL?
MySQL is a freely available open
source Relational Database
Management System (RDBMS) that
uses Structured Query Language (SQL).
SQL is the most popular language for
adding, accessing and managing
content in a database. It is most noted
for its quick processing, proven
reliability, ease and flexibility of use.
2
WHAT IS MYSQL?
MySQL is a database system used on
the web.
MySQL is a database system that runs
on a server.
MySQL is ideal for both small and large
applications.
MySQL is very fast, reliable, and easy to
use.
MySQL uses standard SQL
3
WHAT IS MYSQL?
MySQL is free to download and use.
MySQL is developed, distributed, and
supported by Oracle Corporation
Officially pronounced “my Ess Que
Ell” (not my sequel).
The data in a MySQL database are
stored in tables. A table is a collection
of related data, and it consists of
columns and rows. 4
BASIC MYSQL OPERATIONS
Create table Join table
Insert records
Drop table
Load data
Optimize table
Retrieve records
Count, Like, Order
Update records by, Group by
Delete records
Modify table
5
CONNECTING TO MYSQL
MySQL provides an interactive
shell for creating tables, inserting
data, etc.
On Windows, just go to
c:\mysql\bin, and type:
mysql
Type 'help;' or '\h' for help. Type '\c' to clear the buffer.
mysql>
To
exit the MySQL Shell, just type QUIT or
EXIT:
mysql> QUIT
mysql> exit 7
BASIC QUERIES
Once logged in, you can try some simple queries.
For example:
mysql> SELECT
-> USER()
-> ,
-> CURRENT_DATE;
+--------------------+--------------+
| USER() | CURRENT_DATE |
+--------------------+--------------+
| joesmith@localhost | 1999-03-18 |
11
+--------------------+--------------+
CANCELING A COMMAND
If
you decide you don't want to execute
a command that you are in the process
of entering, cancel it by typing \c
mysql> SELECT
-> USER()
-> \c
mysql>
12
CREATE DATABASE
To get started on your own database, first
check which databases currently exist.
Use the SHOW statement to find out which
databases currently exist on the server:
14
CREATING A TABLE
Once you have selected a database, you
can view all database tables:
mysql> show tables;
Empty set (0.02 sec)
An empty set indicates that I have not
created any tables yet.
15
CREATING A TABLE
Let’screate a table for storing pets.
Table: pets
name: VARCHAR(20)
owner: VARCHAR(20)
species: VARCHAR(20)
sex: CHAR(1) VARCHAR is
usually used
birth: DATE to store string
date: DATE data.
16
CREATING A TABLE
To
create a table, use the CREATE
TABLE command:
Example
mysql> INSERT INTO student SET
student_ID=101, name='Shannon', major='BCB',
grade='A';
+-------+-------+
| major| grade|
+-------+-------+
| BCB | A |
+-------+-------+
1 row in set (0.00 sec)
Logout MySQL
mysq> quit;
DELETING A TABLE
To
delete an entire table, use the
DROP TABLE command:
27
LOADING SAMPLE DATA
You could create a text file `pet.txt'
containing one record per line.
Values must be separated by tabs, and
given in the order in which the
columns were listed in the CREATE
TABLE statement.
Then load the data via the LOAD
DATA Command.
28
SAMPLE DATA FILE
Fluffy Harold cat f 1993-02-04 \N
Claws Gwen cat m 1994-03-17 \N
Buffy Harold dog f 1989-05-13 \N
Fang Benny dog m 1990-08-27 \N
Bowser Diane dog m 1979-08-31 1995-07-29
Chirpy Gwen bird f 1998-09-11 \N
WhistlerGwen bird \N 1997-12-09 \N
Slim Benny snake m 1996-04-29 \N
To Load pet.txt:
SELECT what_to_select
FROM which_table
WHERE conditions_to_satisfy
30
SELECTING ALL DATA
The simplest form of SELECT retrieves everything
from a table
33
SELECTING PARTICULAR
COLUMNS
Ifyou don’t want to see entire rows
from your table, just name the
columns in which you are interested,
separated by commas.
For example, if you want to know
when your pets were born, select the
name and birth columns.
(see example next slide.)
34
SELECTING PARTICULAR
COLUMNS
mysql> select name, birth from pet;
+----------+------------+
| name | birth |
+----------+------------+
| Fluffy | 1999-02-04 |
| Claws | 1994-03-17 |
| Buffy | 1989-05-13 |
| Fang | 1999-08-27 |
| Bowser | 1998-08-31 |
| Chirpy | 1998-09-11 |
| Whistler | 1997-12-09 |
| Slim | 1996-04-29 |
+----------+------------+
8 rows in set (0.01 sec) 35
SORTING DATA
To sort a result, use an ORDER BY clause.
For example, to view animal birthdays, sorted by date:
38
WORKING WITH NULLS
For example, to find all your dead pets (what a
morbid example!)
39
PATTERN MATCHING
MySQL provides:
standard SQL pattern matching; and
regular expression pattern matching, similar to those used
by Unix utilities such as vi, grep and sed.
SQL Pattern matching:
To perform pattern matching, use the LIKE or NOT LIKE
comparison operators
By default, patterns are case insensitive.
Special Characters:
_ Used to match any single character.
% Used to match an arbitrary number of characters.
40
PATTERN MATCHING
EXAMPLE
To find names beginning with ‘b’:
42
PATTERN MATCHING
EXAMPLE
To find names containing a ‘w’:
43
PATTERN MATCHING
EXAMPLE
To find names containing exactly five characters, use the _
pattern character:
44
REGULAR EXPRESSION
MATCHING
The other type of pattern matching
provided by MySQL uses extended
regular expressions.
When you test for a match for this type
of pattern, use the REGEXP and NOT
REGEXP operators (or RLIKE and
NOT RLIKE, which are synonyms).
45
REGULAR EXPRESSIONS
Some characteristics of extended regular
expressions are:
. matches any single character.
A character class [...] matches any character within the
brackets. For example, [abc] matches a, b, or c. To name a
range of characters, use a dash. [a-z] matches any
lowercase letter, whereas [0-9] matches any digit.
* matches zero or more instances of the thing preceding it.
For example, x* matches any number of x characters, [0-
9]* matches any number of digits, and .* matches any
number of anything.
To anchor a pattern so that it must match the beginning or
end of the value being tested, use ^ at the beginning or $ at
the end of the pattern.
46
REG EX EXAMPLE
To find names beginning with b, use ^ to match the
beginning of the name:
47
REG EX EXAMPLE
To find names ending with `fy', use `$' to match the
end of the name:
mysql> SELECT * FROM pet WHERE name REGEXP "fy$";
+--------+--------+---------+------+------------+-------+
| name | owner | species | sex | birth | death |
+--------+--------+---------+------+------------+-------+
| Fluffy | Harold | cat | f | 1993-02-04 | NULL |
| Buffy | Harold | dog | f | 1989-05-13 | NULL |
+--------+--------+---------+------+------------+-------+
48
COUNTING ROWS
Databases are often used to answer the question,
"How often does a certain type of data occur in a
table?"
For example, you might want to know how many
pets you have, or how many pets each owner has.
Counting the total number of animals you have is
the same question as “How many rows are in the
pet table?” because there is one record per pet.
The COUNT() function counts the number of non-
NULL results.
49
COUNTING ROWS
EXAMPLE
A query to determine total number of pets:
mysql> SELECT COUNT(*) FROM pet;
+----------+
| COUNT(*) |
+----------+
| 9 |
+----------+
50
BATCH MODE
In the previous sections, you used
mysql interactively to enter queries
and view the results.
You can also run mysql in batch mode.
To do this, put the commands you
want to run in a file, then tell mysql to
read its input from the file:
shell> mysql < batch-file
51
IS THAT ALL THERE IS TO
MYSQL?
Of course not!
Understanding databases and MySQL
could take us several weeks (perhaps
months!)
For now, focus on:
using the MySQL shell
creating tables
creating basic SQL queries
52
VIEW IN MYSQL
VIEW Syntax
CREATEVIEW view_name AS
SELECT column1, column2, ...
FROM table_name
WHERE condition; 56
VIEW IN MYSQL …..
DROP VIEW Syntax
DROP VIEW view_name;
57
SUMMARY
SQL provides a structured language for
querying/updating multiple databases.
The more you know SQL, the better.
58