-
Advertise Here
Current forum topicsCurrent forum topicsCurrent forum
topicsCurrent forum topics
Signatures
restore down alters the navbar shape
Easy HTML Templates with Mustache
javascript & drop-down nav menu
mysql data transfer
Got a question about making a website?
Ask it in the forums we'd love to help
you. All questions answered!
Popular articlesPopular articlesPopular articlesPopular
articles
jQuery Mobile: What Can It Do for You?
JavaScript Tabs - Create Tabbed Web
Pages Easily
How to Make a Slick Ajax Contact
Form with jQuery and PHP
Making CSS Rollover Buttons
Object-Oriented PHP for Absolute
Beginners
Never made a website before? Read How
to Make a Website.
Search articles...
94
Tweet
Home : Articles : MySQL for Absolute Beginners
MySQL for Absolute Beginners
Tutorial by Matt Doyle | Level: Beginner | Published on 25
August 2011
Never used MySQL before? Start here! This tutorial walks
youNever used MySQL before? Start here! This tutorial walks
youNever used MySQL before? Start here! This tutorial walks
youNever used MySQL before? Start here! This tutorial walks you
through the very basics of MySQL and SQL databases. Learnthrough
the very basics of MySQL and SQL databases. Learnthrough the very
basics of MySQL and SQL databases. Learnthrough the very basics of
MySQL and SQL databases. Learn
how to install MySQL, how to issue commands, and how tohow to
install MySQL, how to issue commands, and how tohow to install
MySQL, how to issue commands, and how tohow to install MySQL, how
to issue commands, and how to
create and use databases.create and use databases.create and use
databases.create and use databases.
A database is an essential part of most websites and blogs, but
setting up
and using a database can be a daunting task for the beginner
web
developer.
In this tutorial you'll learn in simple terms how to install,
set up, and
use a MySQL database on your computer. This will give you a
good
grounding in MySQL that you'll find useful when you start
developing
database-driven websites using PHP, Ruby, or your language of
choice.
You'll explore the following areas in this tutorial:
The concept of a databaseThe concept of a databaseThe concept of
a databaseThe concept of a database, and why databases are
useful
The advantages of using MySQLThe advantages of using MySQLThe
advantages of using MySQLThe advantages of using MySQL to manage
your databases
Free AppDeveloper
Develop & Scale Your AppConcept. Live in Minutes. Sign
Up for Free!
Categories: Web Development
MySQL for Absolute Beginners
http://www.elated.com/articles/mysql-for-absolute-beginners/
1 of 24 05-07-2015 14:35
-
How to install MySQLHow to install MySQLHow to install MySQLHow
to install MySQL on your computer
Using the MySQL Monitor programUsing the MySQL Monitor
programUsing the MySQL Monitor programUsing the MySQL Monitor
program to send commands to your MySQL
server
How to create a database and tablecreate a database and
tablecreate a database and tablecreate a database and table
SQL (Structured Query Language)SQL (Structured Query
Language)SQL (Structured Query Language)SQL (Structured Query
Language), and what it's used for
Adding recordsAdding recordsAdding recordsAdding records to a
table, and retrieving recordsretrieving recordsretrieving
recordsretrieving records from a table
Ready to start exploring MySQL? Let's go!
What is a database?
A databasedatabasedatabasedatabase is a structured collection of
data. Here are some typical
examples of databases:
An online store databaseAn online store databaseAn online store
databaseAn online store database that stores products, customer
details and
orders
A database for a web forumA database for a web forumA database
for a web forumA database for a web forum that stores members,
forums, topics and
posts
A database for a blog systemA database for a blog systemA
database for a blog systemA database for a blog system, such as
WordPress, that stores users,
blog posts, categories, tags, and comments
The software that manages databases is known as a database
managementdatabase managementdatabase managementdatabase
management
systemsystemsystemsystem, or DBMSDBMSDBMSDBMS. MySQL is an
example of a DBMS. Rather confusingly,
DBMSs are often called databases too. Strictly speaking though,
the database
is the data itself, while the DBMS is the software that works
with the
database.
There are many different ways to organize data in a database,
known as
database models. One of the most popular is the relational
model, which is
what MySQL uses (along with PostgreSQL, Oracle, Microsoft SQL
Server, and
other common systems). Consequently, MySQL is known as a
relationalrelationalrelationalrelational
database management systemdatabase management systemdatabase
management systemdatabase management system, or RDBMS.
The following diagram shows how a database, the DBMS, and your
website's
code interact with each other.
MySQL for Absolute Beginners
http://www.elated.com/articles/mysql-for-absolute-beginners/
2 of 24 05-07-2015 14:35
-
A database (left) is a collection of related data, managed by a
DBMSA database (left) is a collection of related data, managed by a
DBMSA database (left) is a collection of related data, managed by a
DBMSA database (left) is a collection of related data, managed by a
DBMS
such as MySQL (centre). Web scripts (right) communicate with
thesuch as MySQL (centre). Web scripts (right) communicate with
thesuch as MySQL (centre). Web scripts (right) communicate with
thesuch as MySQL (centre). Web scripts (right) communicate with
the
DBMS in order to insert, update, delete and retrieve data in
theDBMS in order to insert, update, delete and retrieve data in
theDBMS in order to insert, update, delete and retrieve data in
theDBMS in order to insert, update, delete and retrieve data in
the
database.database.database.database.
Why use a database?
If you haven't used a database for your website before, you may
have stored
data in text files such as comma-separated value (CSV) files.
Here's an
example of a CSV file:
username,password,emailAddress,firstName,lastName
"johnsmith","brickwall53","[email protected]","John","Smith"
"maryjones","garden37","[email protected]","Mary","Jones"
While this technique is fine for simple data structures and
small amounts of
data, you quickly run into problems as your site grows.
Searching and
updating a very large text file is slow and prone to corruption.
What's more,
things start to get messy when you want to link records
together, such as
linking a customer record to the orders that the customer has
made, and
then linking each order record to the products that are in the
order.
Relational databases are designed to take care of all these
problems. Here
are some reasons to use a database instead of text files:
They're fast.They're fast.They're fast.They're fast. Databases
use indexes, or keys, to find records of data
extremely quickly. For example, once you add a key to an
emailAddress
field for member records in a database, you can retrieve a
member record
based on the member's email address almost instantly, no matter
how
many millions of members you may have in your database.
They're reliable.They're reliable.They're reliable.They're
reliable. A DBMS ensures that the data in the database is read
and written reliably, without corrupting the data. Many DBMSs
allow you
to use techniques like locking and transactions to ensure that
records are
inserted and updated in a predictable way.
They let you link records together.They let you link records
together.They let you link records together.They let you link
records together. Relational databases let you store
different types of data in groups known as tables. You can then
link data
together across tables. For example, you can create a customers
table
and an orders table, then link a customer record to all the
order records
associated with the customer. The ability to link records across
tables lets
you create complex databases with lots of different types of
related data.
Why use MySQL?
MySQL for Absolute Beginners
http://www.elated.com/articles/mysql-for-absolute-beginners/
3 of 24 05-07-2015 14:35
-
You now know why databases are useful, and how they can help you
build
complex websites and web apps. But why use MySQL in
particular?
There are many great DBMSs out there, including MySQL,
PostgreSQL,
SQLite, Oracle, and SQL Server, and all of them can be used for
most web
development purposes.
That said, MySQL does have a few advantages for web developers
compared
to some other systems:
It's open sourceIt's open sourceIt's open sourceIt's open
source, which means it's free for anyone to use and modify.
It's widely available.It's widely available.It's widely
available.It's widely available. MySQL can be installed on many
different
platforms, and it usually comes standard with most web hosting
setups.
It's easy to use.It's easy to use.It's easy to use.It's easy to
use. Setting up and working with MySQL databases is
relatively straightforward.
It works well with PHP.It works well with PHP.It works well with
PHP.It works well with PHP. As of version 5.3, PHP has a native
MySQL driver
that is tightly coupled with the PHP engine, making it a good
choice for
PHP coders.
Each DBMS has its own strengths and weaknesses. For example,
PostgreSQL is also open source, is very stable, and has a great
community
behind it. SQLite is extremely fast and self-contained (and is
also free),
while Oracle and SQL Server have a lot of enterprise-level
features that
make it a good choice for large organizations.
Installing MySQL
As I mentioned above, most web hosting accounts come with
MySQL
pre-installed. However, if you're developing websites using
MySQL, you also
want to have the MySQL server running on your own computer, so
that you
can create and test your databases and code without needing to
upload files
to your live server all the time.
There are two main components to MySQL:
The MySQL database server, The MySQL database server, The MySQL
database server, The MySQL database server, mysqld .... This is the
MySQL DBMS that
does the actual work of managing your databases. It runs all the
time in
the background, accepting connections from client programs, web
scripts
and so on.
Various client and utility programs.Various client and utility
programs.Various client and utility programs.Various client and
utility programs. These include mysql , the
command-line MySQL Monitor client that you'll use later in the
tutorial to
issue commands to the server. You'll also find programs like
mysqladmin
for administering MySQL databases, and mysqldump for exporting
and
backing up databases.
MySQL for Absolute Beginners
http://www.elated.com/articles/mysql-for-absolute-beginners/
4 of 24 05-07-2015 14:35
-
In addition, many MySQL installs include documentation, header
files for
developers, and the MySQL test suite.
There are many ways to install the MySQL server and associated
programs.
Here are three ways you can do it:
Using an official MySQL installation package.Using an official
MySQL installation package.Using an official MySQL installation
package.Using an official MySQL installation package. There are
prebuilt
packages available for many different operating systems,
including
Windows, Mac OS X and Linux. The basic procedure is to download
the
package file, extract it, and run the installer. See the
documentation for
the exact steps.
Using a Linux package manager.Using a Linux package
manager.Using a Linux package manager.Using a Linux package
manager. Many Linux distros come with a
package manager for example, Ubuntu includes the Ubuntu
Software
Centre that makes it easy to install MySQL, along with PHP,
Apache
and other web development software. See your distro's
documentation
for details.
Installing an entire LAMP/WAMP/MAMP package.Installing an entire
LAMP/WAMP/MAMP package.Installing an entire LAMP/WAMP/MAMP
package.Installing an entire LAMP/WAMP/MAMP package. This is
arguably the
easiest way to install a complete MySQL-based development setup
on
your computer. These packages contain all you need to start
building
database-driven sites, including the Apache web server, MySQL,
and
PHP/Perl, hence the acronym "AMP". (The L, W and M stand for
Linux,
Windows and Mac OS X respectively.) Since everything's installed
in one
go, you'll find that Apache, MySQL and PHP/Perl all play nicely
together,
with little or no further configuration required.
If you want to get up and running as quickly and easily as
possible, I'd
personally recommend downloading and installing XAMPP. This
LAMP/WAMP/MAMP package is available for Linux, Windows, Mac OS X
and
Solaris, and automatically installs and sets up Apache, MySQL,
PHP and Perl
on your computer. What's more, it's easy to uninstall everything
later if you
want to.
To install XAMPP:
Visit the XAMPP homepage and click the link for your operating
system
(Linux, Windows, Mac OS X or Solaris).
1.
Follow the steps on the page to download, install, start, and
test the
XAMPP system on your computer.
2.
Other popular packages similar to XAMPP include WampServer
and
EasyPHP for Windows, and MAMP for Mac OS X.
MySQL for Absolute Beginners
http://www.elated.com/articles/mysql-for-absolute-beginners/
5 of 24 05-07-2015 14:35
-
XAMPP makes it easy to install a complete Apache, MySQL, PHP
andXAMPP makes it easy to install a complete Apache, MySQL, PHP
andXAMPP makes it easy to install a complete Apache, MySQL, PHP
andXAMPP makes it easy to install a complete Apache, MySQL, PHP
and
Perl setup on Windows, Mac and Linux.Perl setup on Windows, Mac
and Linux.Perl setup on Windows, Mac and Linux.Perl setup on
Windows, Mac and Linux.
Issuing commands to MySQL
Assuming you've now installed and started your MySQL server
using one of
the above techniques, how do you interact with the server? When
you
installed the MySQL server, you also installed mysql , the MySQL
Monitor.
This is a command-line client program that you can use to
connect to the
server and issue commands.
So let's try firing up the MySQL Monitor and see what it can do.
Follow these
two steps:
Open a terminal window:
Windows 7:Windows 7:Windows 7:Windows 7: Click the Windows logo,
then choose All Programs >
Accessories > Command Prompt.
Mac OS X:Mac OS X:Mac OS X:Mac OS X: Open a Finder window, then
choose Applications > Utilities
> Terminal.
Ubuntu:Ubuntu:Ubuntu:Ubuntu: Choose Applications >
Accessories > Terminal, or if you're
using the Unity desktop, click the Ubuntu logo and type terminal
.
(More info)
1.
Run the mysql program in the terminal window:
Windows 7:Windows 7:Windows 7:Windows 7: Assuming you installed
XAMPP, type cd c:\xampp
\mysql\bin and press Enter , then type mysql -u root and
press
Enter .
Mac OS X and Ubuntu:Mac OS X and Ubuntu:Mac OS X and Ubuntu:Mac
OS X and Ubuntu: Just type mysql -u root and press Enter .
The -u root parameter tells the MySQL Monitor to connect to
the
MySQL server using the root user, which is always available
with
2.
MySQL for Absolute Beginners
http://www.elated.com/articles/mysql-for-absolute-beginners/
6 of 24 05-07-2015 14:35
-
MySQL. By default, MySQL's root user doesn't need a password.
This is
OK for a development setup on your computer, but a terrible idea
for a
live server! If you're installing MySQL on a live server, make
sure you
secure it properly. XAMPP also comes with some security scripts
that
can automatically make your XAMPP installation more secure.
Once the MySQL Monitor runs, you'll see something like this in
your
terminal window:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 3893
Server version: 5.5.8 Source distribution
Type 'help;' or '\h' for help. Type '\c' to clear the current
input statement.
mysql> _
The last line, mysql> , is the MySQL prompt. This is where
you type your
commands to send to the MySQL server.
Let's try out a couple of commands. Type the following at the
mysql>
prompt, then press Enter :
select now();
This tells MySQL to get the current date and time and display
it. You'll see
something like this appear:
+---------------------+
| now() |
+---------------------+
| 2011-08-24 11:36:40 |
+---------------------+
1 row in set (0.00 sec)
Now try another command:
show databases;
This command lists all the MySQL databases on your computer.
Since you've
just installed MySQL, there will just be a few default
databases, similar to the
following:
MySQL for Absolute Beginners
http://www.elated.com/articles/mysql-for-absolute-beginners/
7 of 24 05-07-2015 14:35
-
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| test |
+--------------------+
4 rows in set (0.00 sec)
Now that you know how to send commands to your MySQL server,
you're
ready to create your own database and start adding data to it.
You'll do this
in the following sections.
When you're finished with the MySQL Monitor, you can quit it by
typing
exit at the prompt and pressing Enter .
If you're not comfortable with the command line, there are other
ways to
administer MySQL and issue commands. MySQL Workbench is a
free
graphical app that can connect to any MySQL server and
administer it.
There's also the web-based phpMyAdmin, which is included in
many
LAMP/WAMP/MAMP packages.
Creating a database
Let's create a simple database for an imaginary book store. At
your mysql>
prompt, type the following and press Enter :
create database bookstore;
If all goes well, you'll see something like this:
Query OK, 1 row affected (0.05 sec)
MySQL has now created your database. You can check this by
typing show
databases again:
mysql> show databases;
MySQL for Absolute Beginners
http://www.elated.com/articles/mysql-for-absolute-beginners/
8 of 24 05-07-2015 14:35
-
+--------------------+
| Database |
+--------------------+
| information_schema |
| bookstore |
| mysql |
| performance_schema |
| test |
+--------------------+
4 rows in set (0.00 sec)
Congratulations you've just created your first MySQL
database!
Some SQL basics
All of the commands you've issued so far select now() , show
databases , and create database bookstore are SQL statementsSQL
statementsSQL statementsSQL statements.
SQL, or Structured Query Language, is the language you use
to
communicate with most DBMSs, including MySQL. Using SQL, you can
create
and delete databases and tables; insert new data into tables;
update data;
delete data; and retrieve data.
Statements that retrieve data from a database are also commonly
called
queriesqueriesqueriesqueries, hence the name "Structured Query
Language".
You'll use SQL in the rest of this tutorial as you create a
table in your new
database, add a record, and retrieve a record.
Creating a simple table
As with all relational databases, MySQL organizes its data in
tables. A tabletabletabletable
holds one or more records of related data, in a similar way to
an associative
array in JavaScript or PHP. A table consists of:
MySQL for Absolute Beginners
http://www.elated.com/articles/mysql-for-absolute-beginners/
9 of 24 05-07-2015 14:35
-
One or more fields.One or more fields.One or more fields.One or
more fields. Each field holds a specific type of information.
For
example, in a books table, you might have one field for the book
title,
another field for the book's author, and so on.
One or more records.One or more records.One or more records.One
or more records. A record is a set of field values that stores all
the
information about a particular entity in the table. In a books
table, a
record would store all the field values for a specific book.
The easiest way to understand fields and records is to see how
they look
when laid out in a table. Let's set up a books table to hold
books in our
book store:
id title author price
1 The Grapes of Wrath John Steinbeck 12.99
2 Nineteen Eighty-Four George Orwell 8.99
3 The Wind-Up Bird Chronicle Haruki Murakami 7.99
The top row of the table holds the field names: id , title ,
author , and
price . The next three rows are the three book records in our
table. Each
record has its own field values: for example, the first record's
title field
contains "The Grapes of Wrath", while the second record's title
field
contains "Nineteen Eighty-Four".
Since a single column in a table holds all the different record
values for a
specific field, fields are also commonly known as
columnscolumnscolumnscolumns. Similarly, the
records in a table are commonly called rowsrowsrowsrows.
So how do you actually create this table in MySQL? To do this,
you need to
create a schemaschemaschemaschema for the table. This is a text
file containing a series of SQL
statements that create the table and define the table's
fields.
Here's the schema save it as a file called books.sql somewhere
on your
computer:
USE bookstore;
DROP TABLE IF EXISTS books;
CREATE TABLE books
(
id int unsigned NOT NULL auto_increment, # Unique ID for the
record
title varchar(255) NOT NULL, # Full title of the book
author varchar(255) NOT NULL, # The author of the book
price decimal(10,2) NOT NULL, # The price of the book
PRIMARY KEY (id)
);
MySQL for Absolute Beginners
http://www.elated.com/articles/mysql-for-absolute-beginners/
10 of 24 05-07-2015 14:35
-
Let's take a look at the SQL statements in this file and see
what they do:
USE bookstore
This tells MySQL to switch to the bookstore database that you
created
earlier. MySQL will then carry out all further operations on
this database.
DROP TABLE IF EXISTS books
This deletes any previous books table from the database, since
you can't
redefine a table if it already exists.
Be careful when using DROP TABLE . When you delete a table like
this,
any data in the table is gone forever!
CREATE TABLE books ( ... )
This statement creates a new table called books . The stuff in
between
the parentheses defines the table's fields and its primary key,
as we'll see
next.
id int unsigned NOT NULL auto_increment
The first field we define is id . This is a special type of
field that assigns
a unique numeric ID to each book record in the table. Most of
the time,
you'll want your table to have a unique field of some sort, so
that you can
easily identify a particular record. We give the field an int
unsigned
type, which can hold large, positive integer numbers. We also
add the
auto_increment attribute to the field now, whenever we add a
new
record to the table, MySQL will automatically assign a new,
unique value
to the record's id field (starting with 1).
The NOT NULL constraint prevents the field containing NULL
values. In
MySQL, NULL is a special type of value that can be useful in
some
situations. However, it can also be quite confusing for
beginners, so
we won't use them in this tutorial.
title varchar(255) NOT NULL
Next we define the field to hold each book's title. We give it
a
varchar(255) type, which means it can hold a text string up to
255
characters long.
author varchar(255) NOT NULL
The next field is the book's author. As with the title field, we
give it
the varchar(255) type.
price decimal(10,2) NOT NULL
The last field is the book's price. We give this field a
decimal(10,2)
type, which means that the field can hold a 10-digit decimal
number,
MySQL for Absolute Beginners
http://www.elated.com/articles/mysql-for-absolute-beginners/
11 of 24 05-07-2015 14:35
-
with 2 of the digits sitting to the right of the decimal
point.
PRIMARY KEY (id)
Finally, we create a primary key based on the table's id field.
A primaryprimaryprimaryprimary
keykeykeykey uniquely identifies records in the table; a table
can have only one
primary key. MySQL also creates an index using the primary key
this
lets you retrieve a book record extremely quickly by referencing
its id
field, even if the table contains millions of rows.
Now that we've created our schema statements, we need to run
them
through MySQL to create the actual table. To do this, switch
back to the
MySQL Monitor and type the following command at the mysql>
prompt:
source /path/to/books.sql
...where /path/to/books.sql is the full path to your books.sql
file. (If
you ran mysql in the same folder as your books.sql file then you
can just
type source books.sql .)
You should see the following output in MySQL Monitor:
Database changed
Query OK, 0 rows affected, 1 warning (0.00 sec)
Query OK, 0 rows affected (0.10 sec)
To check that your books table was created, you can type show
tables :
mysql> show tables;
+---------------------+
| Tables_in_bookstore |
+---------------------+
| books |
+---------------------+
1 row in set (0.00 sec)
You can even inspect the table schema to make sure it's correct.
To do this,
use the explain command, like this:
mysql> explain books;
+--------+------------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+--------+------------------+------+-----+---------+----------------+
| id | int(10) unsigned | NO | PRI | NULL | auto_increment |
MySQL for Absolute Beginners
http://www.elated.com/articles/mysql-for-absolute-beginners/
12 of 24 05-07-2015 14:35
-
| title | varchar(255) | NO | | NULL | |
| author | varchar(255) | NO | | NULL | |
| price | decimal(10,2) | NO | | NULL | |
+--------+------------------+------+-----+---------+----------------+
4 rows in set (0.00 sec)
Adding records
You've now created a database called bookstore , and added a
books table
to it. Let's try adding a record to the books table.
To add a record to a table, you use the SQL INSERT statement,
passing in
the record's field names and values. Type the following line in
the MySQL
Monitor to insert a book record into your table:
INSERT INTO books ( title, author, price )
VALUES ( "The Grapes of Wrath", "John Steinbeck", 12.99 );
You should see the following output, indicating that MySQL has
added the
row to the table:
Query OK, 1 row affected (0.06 sec)
As you can see, we've used an INSERT statement to add the book
"The
Grapes of Wrath" to the table. We specified INTO books to tell
MySQL which
table to insert the record into, then listed the field names
that we want to
supply values for in parentheses, followed by the keyword VALUES
, followed
by the field values in the same order as the field names, again
in
parentheses.
Notice that we haven't specified a value for the id field. Since
it's an
auto_increment field, MySQL generates the field value
automatically.
Let's add another couple of books to the table:
mysql> INSERT INTO books ( title, author, price )
VALUES ( "Nineteen Eighty-Four", "George Orwell", 8.99 ),
( "The Wind-Up Bird Chronicle", "Haruki Murakami", 7.99 );
Query OK, 2 rows affected (0.00 sec)
Records: 2 Duplicates: 0 Warnings: 0
As you can see, you can insert multiple rows at once by
supplying multiple
sets of field values, enclosed in parentheses and separated by
commas.
MySQL for Absolute Beginners
http://www.elated.com/articles/mysql-for-absolute-beginners/
13 of 24 05-07-2015 14:35
-
Retrieving records
Now that we've added some records to the table, how can we
retrieve them?
This is where SQL queries come in. The SQL SELECT statement lets
you
retrieve one or more records from a table or even multiple
tables at once
based on criteria that you supply. The basic syntax is:
SELECT fieldNames FROM tableName [WHERE criteria]
There's a lot more to the SELECT statement than this, but we'll
keep
things simple in this tutorial!
Let's try a basic SELECT query on our books table using the
MySQL
Monitor:
mysql> SELECT * FROM books;
+----+----------------------------+-----------------+-------+
| id | title | author | price |
+----+----------------------------+-----------------+-------+
| 1 | The Grapes of Wrath | John Steinbeck | 12.99 |
| 2 | Nineteen Eighty-Four | George Orwell | 8.99 |
| 3 | The Wind-Up Bird Chronicle | Haruki Murakami | 7.99 |
+----+----------------------------+-----------------+-------+
3 rows in set (0.00 sec)
This SELECT query retrieves all fields ( * ) from the books
table. Since we
haven't supplied any additional criteria, the query retrieves
all the records in
the table, and displays the field values in the MySQL
monitor.
As you can see, MySQL has auto-generated the values for the id
field,
MySQL for Absolute Beginners
http://www.elated.com/articles/mysql-for-absolute-beginners/
14 of 24 05-07-2015 14:35
-
beginning with 1.
What if we want to retrieve just one record from the table, such
as the book
"Nineteen Eighty-Four"? To narrow down the selection, we can add
a WHERE
clause, like this:
mysql> SELECT * FROM books WHERE id = 2;
+----+----------------------+---------------+-------+
| id | title | author | price |
+----+----------------------+---------------+-------+
| 2 | Nineteen Eighty-Four | George Orwell | 8.99 |
+----+----------------------+---------------+-------+
1 row in set (0.00 sec)
As well as selecting by the id field, we can select by any other
field we like:
mysql> SELECT * FROM books WHERE title = "Nineteen
Eighty-Four";
+----+----------------------+---------------+-------+
| id | title | author | price |
+----+----------------------+---------------+-------+
| 2 | Nineteen Eighty-Four | George Orwell | 8.99 |
+----+----------------------+---------------+-------+
1 row in set (0.01 sec)
We can also use other operators, such as < (less than), >
(greater than),
and the boolean AND operator, to retrieve a range of
records:
mysql> SELECT * FROM books WHERE price < 10 AND price >
5;
+----+----------------------------+-----------------+-------+
| id | title | author | price |
+----+----------------------------+-----------------+-------+
| 2 | Nineteen Eighty-Four | George Orwell | 8.99 |
| 3 | The Wind-Up Bird Chronicle | Haruki Murakami | 7.99 |
+----+----------------------------+-----------------+-------+
2 rows in set (0.00 sec)
Finally, instead of retrieving all fields using * , we can
specify just the field
or fields we want to retrieve. Here's an example:
mysql> SELECT title, author FROM books;
+----------------------------+-----------------+
MySQL for Absolute Beginners
http://www.elated.com/articles/mysql-for-absolute-beginners/
15 of 24 05-07-2015 14:35
-
| title | author |
+----------------------------+-----------------+
| The Grapes of Wrath | John Steinbeck |
| Nineteen Eighty-Four | George Orwell |
| The Wind-Up Bird Chronicle | Haruki Murakami |
+----------------------------+-----------------+
3 rows in set (0.00 sec)
As you can see, SELECT queries make it easy to retrieve just the
records and
fields you want from your table.
Summary
This tutorial has introduced you to databases in general, and
MySQL in
particular. You've covered the following topics:
The concept of a databaseThe concept of a databaseThe concept of
a databaseThe concept of a database, which lets you easily store
large amounts of
structured data for your websites and web apps.
Why databases are a good ideaWhy databases are a good ideaWhy
databases are a good ideaWhy databases are a good idea compared to,
say, flat text files of data.
Some reasons to choose MySQLSome reasons to choose MySQLSome
reasons to choose MySQLSome reasons to choose MySQL for your
DBMS.
How to install MySQLHow to install MySQLHow to install MySQLHow
to install MySQL in three different ways: installing the
official
packages, using a Linux package manager, and installing a
LAMP/WAMP/MAMP package such as XAMPP.
How to use the MySQL Monitor programHow to use the MySQL Monitor
programHow to use the MySQL Monitor programHow to use the MySQL
Monitor program, mysql , to connect to your
MySQL server and issue commands.
How to create databasesHow to create databasesHow to create
databasesHow to create databases with the CREATE DATABASE
command.
How to create tablesHow to create tablesHow to create tablesHow
to create tables with the CREATE TABLE command.
A few MySQL data typesA few MySQL data typesA few MySQL data
typesA few MySQL data types, including int , varchar , and decimal
.
The concepts of NULL values values values values, auto-increment
fieldsauto-increment fieldsauto-increment fieldsauto-increment
fields, unique fieldsunique fieldsunique fieldsunique fields,
and primary keysprimary keysprimary keysprimary keys.
Adding recordsAdding recordsAdding recordsAdding records to a
table using the INSERT statement, and
Retrieving recordsRetrieving recordsRetrieving recordsRetrieving
records from a table with the SELECT statement.
MySQL databases are a big topic, and there are lot more
important areas to
explore, including updating and deleting records; table
relationships;
normalization; joining tables; and grouping results. However, I
hope you've
found this article useful as a general introduction to
MySQL.
If you want to learn more, the MySQL manual has a decent
tutorial section,
including more details on using the MySQL Monitor, creating
databases, and
adding tables and data. It also includes some common queries
that you can
take and adapt for your own uses. You might also like to read my
article
MySQL for Absolute Beginners
http://www.elated.com/articles/mysql-for-absolute-beginners/
16 of 24 05-07-2015 14:35
-
94
Tweet
LinkHTML:
-
fozz52fozz52fozz52fozz52 04-Feb-14 17:12
Hi Chris
Thanks for helping...this is what I get
+--------------------+
| Database |
+--------------------+
| information_schema |
| cdcol
| mysql |
| performance_schema |
| phpmyadmin
| test |
| users |
| webauth |
+--------------------+
8 rows in set (0.37 sec)
Cheers
Fozz52
chrishirstchrishirstchrishirstchrishirst 05-Feb-14 19:38
Ok so your user database has been created
The db.opt file is the "characteristics" of the database and
contains
information about the character set, structure, collation etc.
MySQL does
not work like Access or Excel where you have a database 'file'
per se, the
folder is the data location and the data is then held in the
'table' datafiles.
When you start creating tables the data files will be created in
the dbname
folder.
tablename.MYD are the datafiles
tablename.MYI are the table index(es)
tablename.frm are the format files for the tables.
These will not exist until you create tables and add data to
them. You only
need to be concerned with the file structure unless you have to
do a
manual recovery, hopefully that will not happen,
A .sql file is a text file that contains a set of command lines
to rebuild the
database, table structures and data, that is used for exporting,
importing
or taking backups of the database.
MySQL for Absolute Beginners
http://www.elated.com/articles/mysql-for-absolute-beginners/
18 of 24 05-07-2015 14:35
-
Does that help?
[Edited by chrishirst on 05-Feb-14 19:39]
fozz52fozz52fozz52fozz52 06-Feb-14 10:48
Hi Chris
Does it help... well Yes and No I still can't create the
table!
I'm still getting the same reaction when I put the following
into the mysql
monitor so how do I create my table in the users database if the
users.sql
text file was saved in xammp/mysql/
I've put into the command line...
/xammp/mysql/users.sql
but it does nothing and just goes to the next line showing the
prompt ->
what am I doing wrong?
chrishirstchrishirstchrishirstchrishirst 06-Feb-14 15:47
To tell mysql to run the command you have to terminate the line
with a
semicolon ';' this is because you can type in several lines of a
query
seperated by the key but the mysql server will not parse the
input
until it gets ; as an input line.
Or if you prefer a Windows GUI as MySQL CLI takes a bit of
getting used to
download and install HeidiSQL ( http://www.heidisql.com/ )
You can see the CLI command assemble in the "command" pane and
learn
how it works.
to load a .sql command script at the mysql comman prompt
http://dev.mysql.com/doc/refman/5.0/en/mysql-batch-commands.html
fozz52fozz52fozz52fozz52 06-Feb-14 16:52
Hi Chris
Ok sorry about that should have noticed.... however.... after
putting the
following into the command line
MySQL for Absolute Beginners
http://www.elated.com/articles/mysql-for-absolute-beginners/
19 of 24 05-07-2015 14:35
-
/xammp/mysql/users.sql;
I get this error message...
ERROR 1064 (42000): You have an error in your SQL syntax; check
the
manual that corresponds to your MYSQL server version for the
right syntax
to use near '/xammp/mysql/users.sql' at line 1
I'm really confused now!
chrishirstchrishirstchrishirstchrishirst 07-Feb-14 09:12
.sql files are not like batch (.bat) or command (.cmd) files in
Windows you
have to tell the mysql daemon what to do with it.
the command line to import a text file is
mysql db < file.ext
Which is equivalent to
use db_name
source file.ext;
The mysql command is to start the mysql CLI daemon so it can
accept
instructions
The USE command says "Open 'db_name' and set it as the current
working
database.
The SOURCE command says Open the named file and execute the
commands in the sequence they appear.
[Edited by chrishirst on 07-Feb-14 09:12]
fozz52fozz52fozz52fozz52 07-Feb-14 11:04
MySQL for Absolute Beginners
http://www.elated.com/articles/mysql-for-absolute-beginners/
20 of 24 05-07-2015 14:35
-
Hi Chris
Not sure whats going on here but perhaps this was the problem
before
and hadn't realised.
I did a show databases; command and got the following;
+--------------------+
| Database |
+--------------------+
| information_schema |
| test |
+--------------------+
2 rows in set (0.01 sec)
Where did the other databases go including the users.sql !
So decided to restart my laptop and create a new database. This
time I
followed the instructions and created a database called
bookstore.sql but
then got this error message !
=====================================================================
ERROR 1044 (42000) Access denied for user @localhost to
database
bookstore
=====================================================================
Puzzled as to whats happening but Im sure you will be able to
help...
chrishirstchrishirstchrishirstchrishirst 07-Feb-14 16:33
You are logged as a user without sufficient privileges to see
them or
change them.
fozz52fozz52fozz52fozz52 07-Feb-14 17:01
Hi Chris
Without wishing to be flippant you're stating the obvious... I
realise what
the error message is saying but as I'm the only user of the
computer but
nothing has changed since I started working through this
tutorial a few
days ago and created the original user.sql database.
So have you any idea as to why it's suddenly telling me I don't
have
permission and if you do could you set out the steps I should
take ?
chrishirstchrishirstchrishirstchrishirst 08-Feb-14 07:56
For mysql in a "WAMP" environment it does not matter how many
users are
on the machine, or who is logged in to Windows. It is who is
logged in at
the mysql command window that matters.
MySQL has an entirely seperate user list to the Windows user
list, and uses
a UNIX privilege/permissions hierarchy NOT the comparatively
weak
MySQL for Absolute Beginners
http://www.elated.com/articles/mysql-for-absolute-beginners/
21 of 24 05-07-2015 14:35
-
Windows permissions hierarchy.
When you installed MySQL it will have asked you for a root user
password,
it is THAT user / password combination that you need to login to
the
command window with, otherwise you are simply a "user" with
no
privileges beyond USEUSEUSEUSE to open a database and running
SELECT queries
against that DB.
Once you are logged in to a 'root' command window (called a
'shell' in UNIX
parlance) you will then have full privileges to see, read,
change and 'drop'
(delete) databases and tables, create users and set privileges
to specific
databases or actions.
paulniemanpaulniemanpaulniemanpaulnieman 09-Mar-14 04:31
First of all a big thank you for this very helpful guide which
understands
what it means to begin. It gives clear conceptual ideas without
swamping
(this beginner) with too much detail.
Now to my first question.
Having successfully installed XAMPP.1.8.3-3 on a mac I have it
all up and
running perfectly.
I used terminal to set passwords for xampp, mySQL/phpAmin, mySQL
root
and FTP "daemon".
Now I tried mysql -u root and I get "command not found"
Is this because I'm not using terminal as a root user?
If so how do I log in as a root user.
Thanks - Paul
paulniemanpaulniemanpaulniemanpaulnieman 09-Mar-14 04:45
Ah now I have it! With apologies I didn't read enough of the
previous
conversations and I realise my question has been answered
with:-
/Applications/XAMPP/xamppfiles/bin/mysql
to accommodate the current Mac OS
Thanks and let me save you a reply.
paulniemanpaulniemanpaulniemanpaulnieman 10-Mar-14 07:45
Working through commands I have success until I try to create a
data base.
Then I get (see below) Working on an iMac with mysql on an
external drive
but all appearing to work normally.
MySQL for Absolute Beginners
http://www.elated.com/articles/mysql-for-absolute-beginners/
22 of 24 05-07-2015 14:35
-
mysql> select now();
mysql> show databases;
mysql> create database bookstore;
ERROR 1044 (42000): Access denied for user ''@'localhost' to
database
'bookstore'
mysql>
chrishirstchrishirstchrishirstchrishirst 10-Mar-14 13:33
start the mysql CLI with a user that has 'create' pivileges
e.g;
mysql --user=root --password=password
paulniemanpaulniemanpaulniemanpaulnieman 10-Mar-14 14:15
BrilliantBrilliantBrilliantBrilliant thank you. Paul
Katire JnaniKatire JnaniKatire JnaniKatire Jnani 07-Aug-14
12:14
That was real beginner stuff. It was great. Now the problem is,
how to go
further
Jnani
chrishirstchrishirstchrishirstchrishirst 08-Aug-14 04:23
http://dev.mysql.com/doc/
yibsyibsyibsyibs 08-Sep-14 18:45
Hi.. Im at the very beginning. I installed XAMPP and have the
mySQL
MySQL for Absolute Beginners
http://www.elated.com/articles/mysql-for-absolute-beginners/
23 of 24 05-07-2015 14:35
-
Home
Articles
Forums
Contact Us
Spamwars
RSS
Twitter
Facebook
This site Elated Communications
1996-2015. Unauthorised copying or
redistribution prohibited. By using this
Website, you are indicating your
acceptance of our Terms of Use.
Please read our Privacy Policy.
Database Server running. I'm using a MAC and when I go into the
Terminal
and enter "mysql -u root" and hit ENTER, I get mysql: command
not found
Is there something I'm missing?
chrishirstchrishirstchrishirstchrishirst 09-Sep-14 06:12
Quite probably the path to your mysql executable is not in the
PATH
environment variable.
use the full path to the executable IN the command line or add
the location
to $PATH
View all 56 responses
Post a responsePost a responsePost a responsePost a response
Want to add a comment, or ask a question about this article?
Post a
response.
To post responses you need to be a member. Not a member yet?
Signing up
is free, easy and only takes a minute. Sign up now.
Top of Page
MySQL for Absolute Beginners
http://www.elated.com/articles/mysql-for-absolute-beginners/
24 of 24 05-07-2015 14:35