0% found this document useful (0 votes)
453 views

MySQL Notes

MySQL is a freely available open source relational database management system that uses SQL. It runs as a server and allows for storage of data in tables which can then be manipulated using SQL statements. Basic MySQL operations include creating and modifying tables, inserting, retrieving, updating and deleting records.

Uploaded by

Precious Waseni
Copyright
© © All Rights Reserved
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
453 views

MySQL Notes

MySQL is a freely available open source relational database management system that uses SQL. It runs as a server and allows for storage of data in tables which can then be manipulated using SQL statements. Basic MySQL operations include creating and modifying tables, inserting, retrieving, updating and deleting records.

Uploaded by

Precious Waseni
Copyright
© © All Rights Reserved
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
You are on page 1/ 58

INTRODUCTION TO MYSQL

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

Or, click on the Windows icon


6
SAMPLE SESSION
 For example:
Enter password: *****
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 241 to server version: 3.23.49

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 VERSION(), CURRENT_DATE;


+-----------+--------------+
| VERSION() | CURRENT_DATE |
+-----------+--------------+
| 3.23.49 | 2002-05-26 |
+-----------+--------------+
1 row in set (0.00 sec)

 Note that most MySQL commands end with a semicolon (;)


 MySQL returns the total number of rows found, and the total
time to execute the query.
8
BASIC QUERIES
Keywords may be entered in any
lettercase.
The following queries are
equivalent:
mysql> SELECT VERSION(),
CURRENT_DATE;
mysql> select version(),
current_date;
mysql> SeLeCt vErSiOn(),
current_DATE; 9
BASIC QUERIES
 Youcan also enter multiple statements
on a single line. Just end each one with a
semicolon:

mysql> SELECT VERSION(); SELECT NOW();


+--------------+
| VERSION() |
+--------------+
| 3.22.20a-log |
+--------------+
+---------------------+
| NOW() |
+---------------------+
| 2004 00:15:33 | 10
+---------------------+
MULTI-LINE COMMANDS
 mysql determines where your statement ends
by looking for the terminating semicolon, not
by looking for the end of the input line.
 Here's a simple multiple-line statement:

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:

mysql> show databases;


+----------+
| Database |
+----------+
| mysql |
| test |
+----------+ 13

2 rows in set (0.01 sec)


CREATE AND USE
DATABASE
 Tocreate a new database, issue the
“create database” command:
 mysql> create database webdb;

 Tothe select (use) a database, issue the


“use” command:
 mysql> use webdb;

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:

mysql> CREATE TABLE pet (


-> name VARCHAR(20),
-> owner VARCHAR(20),
-> species VARCHAR(20),
-> sex CHAR(1),
-> birth DATE, death DATE);
Query OK, 0 rows affected (0.04 17
sec)
CREATE TABLE
 CREATE TABLE Table_Name
(column_specifications)
Example
mysql> CREATE TABLE student
-> (
-> student_ID INT UNSIGNED NOT NULL,
-> name VARCHAR(20) NOT NULL,
-> major VARCHAR(50),
-> grade VARCHAR(5)
-> );
Query OK, 0 rows affected (0.00 sec)
SHOWING TABLES
 Toverify that the table has been created:
mysql> show tables;
+------------------+
| Tables_in_test |
+------------------+
| pet |
+------------------+
1 row in set (0.01 sec)
19
DESCRIBING TABLES
 Toview a table structure, use the DESCRIBE
command:
mysql> describe pet;
+---------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+---------+-------------+------+-----+---------+-------+
| name | varchar(20) | YES | | NULL | |
| owner | varchar(20) | YES | | NULL | |
| species | varchar(20) | YES | | NULL | |
| sex | char(1) | YES | | NULL | |
| birth | date | YES | | NULL | |
| death | date | YES | | NULL | |
+---------+-------------+------+-----+---------+-------+
6 rows in set (0.02 sec) 20
INSERT RECORD
INSERT INTO table_name SET
col_name1=value1, col_name2=value2,
col_name3=value3, …

Example
mysql> INSERT INTO student SET
student_ID=101, name='Shannon', major='BCB',
grade='A';

Query OK, 1 row affected (0.00 sec)


RETRIEVE RECORD
 SELECTwhat_columns
FROM table_name
WHERE condition
Example
mysql> SELECT major, grade FROM student WHERE
name='Shannon';

+-------+-------+
| major| grade|
+-------+-------+
| BCB | A |
+-------+-------+
1 row in set (0.00 sec)

mysql> SELECT * FROM student;


MODIFY TABLE STRUCTURE
 ALTER TABLE table name Operations
mysql> alter table student add primary key (student_ID);
Query OK, 0 rows affected (0.00 sec)
Records: 0 Duplicates: 0 Warnings: 0

mysql> describe student;


+---------------+--------------------- +-------+------+----------+-------+
| Field | Type | Null | Key | Default | Extra |
+---------------+----------------------+-------+------+----------+-------+
| student_ID | int(10) unsigned | | PRI | 0 | |
| name | varchar(20) | | | | |
| major | varchar(10) | YES | | NULL | |
| grade | varchar(5) | YES | | NULL | |
+---------------+----------------------+-------+------+-----------+-------+
4 rows in set (0.00 sec)
UPDATE RECORD
 UPDATE table_name
SET which columns to change
WHERE condition
Example
mysql> UPDATE student SET grade='B' WHERE name='Shannon';
Query OK, 1 row affected (0.00 sec)
Rows matched: 1 Changed: 1 Warnings: 0

mysql> SELECT * FROM student WHERE name=‘Shannon’;


+------------+---------------+--------+--------+
| name | student_ID | major | grade |
+------------+---------------+--------+--------+
| Shannon | 101 | BCB | B |
+------------+---------------+--------+--------+
1 row in set (0.00 sec)
DELETE RECORD
 DELETE FROM table_name WHERE
condition
 Example
mysql> DELETE FROM student WHERE
name='Shannon';
Query OK, 1 row affected (0.00 sec)

Mysql> DELETE FROM student;


Will delete ALL student records!
DROP TABLE
DROP TABLE table_name
Example
mysql> drop table student;
Query OK, 0 rows affected (0.00 sec)

Logout MySQL
mysq> quit;
DELETING A TABLE
 To
delete an entire table, use the
DROP TABLE command:

mysql> drop table pet;


Query OK, 0 rows affected (0.02 sec)

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:

mysql> LOAD DATA LOCAL INFILE "pet.txt" INTO TABLE pet;


29
SQL SELECT
 The SELECT statement is used to pull
information from a table.
 The general format is:

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

mysql> select * from pet;


+----------+--------+---------+------+------------+------------+
| name | owner | species | sex | birth | death |
+----------+--------+---------+------+------------+------------+
| Fluffy | Harold | cat | f | 1999-02-04 | NULL |
| Claws | Gwen | cat | f | 1994-03-17 | NULL |
| Buffy | Harold | dog | f | 1989-05-13 | NULL |
| Fang | Benny | dog | m | 1999-08-27 | NULL |
| Bowser | Diane | dog | m | 1998-08-31 | 1995-07-29 |
| Chirpy | Gwen | bird | f | 1998-09-11 | NULL |
| Whistler | Gwen | bird | | 1997-12-09 | NULL |
| Slim | Benny | snake | m | 1996-04-29 | NULL |
+----------+--------+---------+------+------------+------------+
8 rows in set (0.00 sec) 31
SELECTING PARTICULAR
ROWS
 You can select only particular rows from
your table.
 For example, if you want to verify the
change that you made to Bowser's birth
date, select Bowser's record like this:
mysql> SELECT * FROM pet WHERE name = "Bowser";
+--------+-------+---------+------+------------+-----------
-+
| name | owner | species | sex | birth | death
|
+--------+-------+---------+------+------------+-----------
-+
| Bowser | Diane | dog | m | 1998-08-31 | 1995-07-29
|
+--------+-------+---------+------+------------+-----------
-+
1 row in set (0.00 sec) 32
SELECTING PARTICULAR
ROWS
 To find all animals born after 1998
SELECT * FROM pet WHERE birth >= "1998-1-1";

 To find all female dogs, use a logical AND


SELECT * FROM pet WHERE species = "dog" AND sex = "f";

 To find all snakes or birds, use a logical OR


SELECT * FROM pet WHERE species = "snake"
OR species = "bird";

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:

mysql> SELECT name, birth FROM pet ORDER BY birth;


+----------+------------+
| name | birth |
+----------+------------+
| Buffy | 1989-05-13 |
| Claws | 1994-03-17 |
| Slim | 1996-04-29 |
| Whistler | 1997-12-09 |
| Bowser | 1998-08-31 |
| Chirpy | 1998-09-11 |
| Fluffy | 1999-02-04 |
| Fang | 1999-08-27 |
+----------+------------+ 36
8 rows in set (0.02 sec)
SORTING DATA
 Tosort in reverse order, add the DESC
(descending keyword)
mysql> SELECT name, birth FROM pet ORDER BY birth DESC;
+----------+------------+
| name | birth |
+----------+------------+
| Fang | 1999-08-27 |
| Fluffy | 1999-02-04 |
| Chirpy | 1998-09-11 |
| Bowser | 1998-08-31 |
| Whistler | 1997-12-09 |
| Slim | 1996-04-29 |
| Claws | 1994-03-17 |
| Buffy | 1989-05-13 |
+----------+------------+ 37
8 rows in set (0.02 sec)
WORKING WITH NULLS
 NULL means missing value or
unknown value.
 To test for NULL, you cannot use the
arithmetic comparison operators, such
as =, < or <>.
 Rather, you must use the IS NULL and
IS NOT NULL operators instead.

38
WORKING WITH NULLS
 For example, to find all your dead pets (what a
morbid example!)

mysql> select name from pet where death


>IS NOT NULL;
+--------+
| name |
+--------+
| Bowser |
+--------+
1 row in set (0.01 sec)

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’:

mysql> SELECT * FROM pet WHERE name LIKE "b%";


+--------+--------+---------+------+------------+----------
--+
| name | owner | species | sex | birth | death
|
+--------+--------+---------+------+------------+----------
--+
| Buffy | Harold | dog | f | 1989-05-13 | NULL
|
| Bowser | Diane | dog | m | 1989-08-31 | 1995-07-
29 |
+--------+--------+---------+------+------------+---------- 41
--+
PATTERN MATCHING
EXAMPLE
 To find names ending with `fy':

mysql> SELECT * FROM pet WHERE name LIKE "%fy";


+--------+--------+---------+------+------------+-------+
| name | owner | species | sex | birth | death |
+--------+--------+---------+------+------------+-------+
| Fluffy | Harold | cat | f | 1993-02-04 | NULL |
| Buffy | Harold | dog | f | 1989-05-13 | NULL |
+--------+--------+---------+------+------------+-------+

42
PATTERN MATCHING
EXAMPLE
 To find names containing a ‘w’:

mysql> SELECT * FROM pet WHERE name LIKE "%w%";


+----------+-------+---------+------+------------+------------+
| name | owner | species | sex | birth | death |
+----------+-------+---------+------+------------+------------+
| Claws | Gwen | cat | m | 1994-03-17 | NULL |
| Bowser | Diane | dog | m | 1989-08-31 | 1995-07-29 |
| Whistler | Gwen | bird | NULL | 1997-12-09 | NULL |
+----------+-------+---------+------+------------+------------+

43
PATTERN MATCHING
EXAMPLE
 To find names containing exactly five characters, use the _
pattern character:

mysql> SELECT * FROM pet WHERE name LIKE "_____";


+-------+--------+---------+------+------------+-------+
| name | owner | species | sex | birth | death |
+-------+--------+---------+------+------------+-------+
| Claws | Gwen | cat | m | 1994-03-17 | NULL |
| Buffy | Harold | dog | f | 1989-05-13 | NULL |
+-------+--------+---------+------+------------+-------+

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:

mysql> SELECT * FROM pet WHERE name REGEXP "^b";


+--------+--------+---------+------+------------+----------
--+
| name | owner | species | sex | birth | death
|
+--------+--------+---------+------+------------+----------
--+
| Buffy | Harold | dog | f | 1989-05-13 | NULL
|
| Bowser | Diane | dog | m | 1989-08-31 | 1995-07-
29 |
+--------+--------+---------+------+------------+----------
--+

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

 What are views?


VIEWS are virtual tables .By virtual, we
mean, the tables do not store any data of
their own but display data stored in other
tables.
o a view is a virtual table based on the
result-set of an SQL statement.
o A view contains rows and columns, just
like a real table. 53
VIEW IN MYSQL…..
 The view must include the PRIMARY KEY of the
table based upon which the view has been
created.
 A database view allows you to simplify complex
queries.
 a database view is defined by an SQL statement
that associates with many underlying tables.
 Through a database view, you only have to use
simple SQL statements instead of complex ones
with many joins.
54
VIEW IN MYSQL…..
 VIEWS increase re-usability. You will not
have to create complex queries involving
joins repeatedly.
 VIEWS help in data security. You can use
views to show only authorized information
to users and hide sensitive data like credit
card numbers.
 Views make life easy as you do not have
write complex queries time and again.
55
VIEW IN MYSQL …..
 The
fields in a view are fields from one or
more real tables in the database.

 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.

 The most important part of SQL is learning


to retrieve data.
 selecting rows, columns, boolean operators,
pattern matching, etc.
 Keep playing around in the MySQL Shell.

58

You might also like