Mysqlppt3510

58
Mysql Basi di Dati Università di Enna A.A. 2005/06

Transcript of Mysqlppt3510

Page 1: Mysqlppt3510

Mysql

Basi di Dati

Università di Enna A.A. 2005/06

Page 2: Mysqlppt3510

Intro

MySQL® and the MySQL logo are registered trademarks of MySQL AB (a Swedish company)

The MySQL® software delivers a very fast, multi-threaded, multi-user, and robust SQL (Structured Query Language) database server

The MySQL Web site (http://www.mysql.com/) provides the latest information about MySQL and MySQL AB

the “AB” part of the company name is the acronym for the Swedish “aktiebolag,” or “stock company”

Page 3: Mysqlppt3510

License

The MySQL software is Dual LicensedUsers can choose to use the MySQL software as an Open

Source product under the terms of the GNU General Public License

Users can purchase a standard commercial license from MySQL AB

See http://www.mysql.com/company/legal/licensing/ for more information on our licensing policies.

Page 4: Mysqlppt3510

Documentation

The MySQL Database Software is under constant development, and the Reference Manual is updated frequently as well. The most recent version of the manual is available online in searchable form at http://dev.mysql.com/doc/

Formats available: HTML PDF CHM

Page 5: Mysqlppt3510

Operating Systems Supported by MySQL

It is possible to port MySQL to all modern systems that have a C++ compiler and a working implementation of POSIX threads

Thread support is needed for the server. To compile only the client code, the only requirement is a C++ compiler

“We use and develop the software ourselves primarily on Linux (SuSE and Red Hat), FreeBSD, and Sun Solaris (Versions 8 and 9)”

Page 6: Mysqlppt3510

Operating Systems Supported by MySQL

MySQL has been reported to compile successfully on the following operating systems: AIX 4.x, 5.x Amiga BSDI 2.x Digital Unix 4.x FreeBSD 2.x, 3.x, 4.x Mac OS X Windows 9x, Me, NT, 2000, XP, and 2003

Page 7: Mysqlppt3510

Installing MySQL on Windows

A native Windows version of MySQL has been available from MySQL AB since version 3.21 and represents a sizable percentage of the daily downloads of MySQL

The installer for the Windows version of MySQL 5.0, combined with a GUI Configuration Wizard, automatically installs MySQL, creates an option file, starts the server, and secures the default user accounts

Page 8: Mysqlppt3510

Installing MySQL on Windows

MySQL 5.0 for Windows is available in three distribution formats: The binary distribution contains a setup program that installs

everything you need so that you can start the server immediately

The source distribution contains all the code and support files for building the executables using the Visual Studio 2003 compiler system

Generally speaking, you should use the binary distribution. It is simpler to use than the others, and you need no additional tools to get MySQL up and running

Page 9: Mysqlppt3510

Installing MySQL on Windows

A copy of the MySQL binary distribution for Windows, which can be downloaded from http://dev.mysql.com/downloads/

You may also have the following optional requirements: If you plan to connect to the MySQL server via ODBC,

you also need a Connector/ODBC driver If you need tables with a size larger than 4GB, install

MySQL on an NTFS or newer filesystem

Page 10: Mysqlppt3510

For MySQL 5.0, there are three installation packages to choose from when installing MySQL on Windows. The packages are as follows:

Essential package Complete package Noinstall archive

The Essentials package is recommended for most users

Installing MySQL on Windows

Page 11: Mysqlppt3510

The following entries are created within the new Start menu section: MySQL Command Line Client : This is a shortcut to the

mysql command-line client and is configured to connect as the root user. The shortcut prompts for a root user password when connecting

MySQL Server Instance Config Wizard : This is a shortcut to the MySQL Configuration Wizard. Use this shortcut to configure a newly installed server, or to re-configure an existing server

MySQL Documentation : This is a link to the MySQL server documentation that is stored locally in the MySQL server installation directory. This option is not available when the MySQL server is installed using the Essentials installation package.

Installing MySQL on Windows

Page 12: Mysqlppt3510

The Main Features of MySQL

Written in C and C++Tested with a broad range of different

compilersWorks on many different platformsUses GNU Automake, Autoconf, and Libtool

for portabilityAPIs for C, C++, Eiffel, Java, Perl, PHP,

Python, Ruby, and Tcl are available…

Page 13: Mysqlppt3510

Column Types

Many column types:

signed/unsigned integers 1, 2, 3, 4, and 8 bytes long FLOAT, DOUBLECHAR, VARCHARTEXTBLOBDATE, TIME, DATETIME, TIMESTAMP, YEAR SET, ENUM

Fixed-length and variable-length records

Page 14: Mysqlppt3510

Statements and Functions

Full operator and function support in the SELECT and WHERE clauses of queries.

Full support for SQL GROUP BY and ORDER BY clauses. Support for group functions (COUNT(), COUNT(DISTINCT ...), AVG(), STD(), SUM(), MAX(), MIN()

Support for LEFT OUTER JOIN and RIGHT OUTER JOIN

Support for aliases on tables and columns as required by standard SQL

Page 15: Mysqlppt3510

Statements and Functions (2)

DELETE, INSERT, REPLACE, and UPDATE return the number of rows that were changed (affected)

The MySQL-specific SHOW command can be used to retrieve information about databases, database engines, tables, and indexes. The EXPLAIN command can be used to determine how the optimizer resolves a query

Function names do not clash with table or column names. For example, ABS is a valid column name. The only restriction is that for a function call, no spaces are allowed between the function name and the ‘(’ that follows it

You can mix tables from different databases in the same query

Page 16: Mysqlppt3510

Limits

Handles large databases. “We use MySQL Server with databases that

contain 50 million records …”“… We also know of users who use MySQL

Server with 60,000 tables and about 5,000,000,000 rows …”

Page 17: Mysqlppt3510

Connectivity

Clients can connect to the MySQL server using TCP/IP sockets on any platform

The Connector/ODBC (MyODBC) interface provides MySQL support for client programs that use ODBC (Open Database Connectivity) connections. For example, you can use MS Access to connect to your

MySQL server.

The Connector/J interface provides MySQL support for Java client programs that use JDBC connections

Page 18: Mysqlppt3510

How Big MySQL Tables Can Be

MySQL 3.22 had a 4GB (4 gigabyte) limit on table size.

With the MyISAM storage engine in MySQL 3.23, the maximum table size was increased to 65536 terabytes (2567 – 1 bytes).

With this larger allowed table size, the maximum effective table size for MySQL databases is usually determined by operating system constraints on file sizes, not by MySQL internal limits

Page 19: Mysqlppt3510

The following table lists some examples of operating system file-size limits. This is only a rough guide and is not intended to be definitive

Win32 (FAT/FAT32) 2GB/4GB Win32 (NTFS) 2TB Linux 2.2-Intel 2GB Linux 2.4+ (ext3) 4TB

Windows users please note: FAT and VFAT (FAT32) are not considered suitable for production use with MySQL. Use NTFS instead

How Big MySQL Tables Can Be

Page 20: Mysqlppt3510

Connecting to and Disconnecting from the Server

To connect to the server, you will usually need to provide a MySQL username when you invoke mysql and, most likely, a password. If the server runs on a machine other than the one where you log in, you will also need to specify a hostname

shell> mysql -h host -u user –p

Enter password: ********

Page 21: Mysqlppt3510

Connecting to and Disconnecting from the Server

shell> mysql -h host -u user –p

Enter password: ******** host and user represent the hostname where your

MySQL server is running and the username of your MySQL account

The ******** represents your password; enter it when mysql displays the Enter password: prompt.

Page 22: Mysqlppt3510

Connecting to and Disconnecting from the Server

Page 23: Mysqlppt3510

Connecting to and Disconnecting from the Server

Some MySQL installations allow users to connect as the anonymous (unnamed) user to the server running on the local host.

If this is the case on your machine, you should be able to connect to that server by invoking mysql without any options:

shell> mysql

Page 24: Mysqlppt3510

Connecting to and Disconnecting from the Server

After you have connected successfully, you can disconnect any time by typing QUIT (or EXIT) at the mysql > prompt:

shell> QUIT

Bye shell> EXIT

Bye On Unix, you can also disconnect by pressing Control-D

Page 25: Mysqlppt3510

Entering Queries

mysql> SELECT VERSION( ), CURRENT_DATE;

Page 26: Mysqlppt3510

Notes • When you issue a command, mysql sends it to the

server for execution and displays the results, then prints another mysql> prompt to indicate that it is ready for another command.

Page 27: Mysqlppt3510

Notes (2) mysql displays query output in tabular form (rows

and columns). The first row contains labels for the columns. The rows following are the query results.

Page 28: Mysqlppt3510

Notes (3) mysql shows how many rows were returned and how

long the query took to execute, which gives you a rough idea of server performance

Page 29: Mysqlppt3510

Entering 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;

Page 30: Mysqlppt3510

• Here's another query. It demonstrates that you can use mysql as a simple calculator

Entering Queries

Page 31: Mysqlppt3510

You can even enter multiple statements on a single line. Just end each one with a semicolon

Entering Queries

Page 32: Mysqlppt3510

A command need not be given all on a single line, so lengthy commands that require several lines are not a problem

mysql determines where your statement ends by looking for the terminating semicolon, not by looking for the end of the input line

Entering Queries

Page 33: Mysqlppt3510

Entering Queries

Page 34: Mysqlppt3510

The following table shows each of the prompts you may see and summarizes what they mean about the state that mysql is in:mysql> Ready for new command.-> Waiting for next line of multiple-line command‘> Waiting for next line, waiting for completion of

a string that began with a single quote (‘'’)

Entering Queries

Page 35: Mysqlppt3510

"> Waiting for next line, waiting for completion of a

string that began with a double quote (‘"’) `> Waiting for next line, waiting for completion of an

identifier that began with a backtick (‘`’) /*> Waiting for next line, waiting for completion of a comment

that began with /*

Entering Queries

Page 36: Mysqlppt3510

Entering Queries

Page 37: Mysqlppt3510

Entering Queries

mysql> SELECT * FROM my_table WHERE name = 'Smith AND age < 30;

'>

Page 38: Mysqlppt3510

Creating and Using a Database

This section shows you how to:

Create a database Create a table Load data into the table Retrieve data from the table in various ways Use multiple tables

Page 39: Mysqlppt3510

Use the SHOW statement to find out what databases currently exist on the server

Creating and Using a Database

Page 40: Mysqlppt3510

If the test database exists, try to access it

Creating and Using a Database

Page 41: Mysqlppt3510

USEUSE, like QUIT, does not require a semicolonYou can terminate such statements with a

semicolon if you like; it does no harm It must be given on a single line

Creating and Using a Database

Page 42: Mysqlppt3510

Creating and Selecting a Database If the administrator creates your database for you when setting

up your permissions, you can begin using it. Otherwise, you need to create it yourself

Page 43: Mysqlppt3510

Creating and Selecting a Database

Page 44: Mysqlppt3510

 Creating a Table

Creating the database is the easy part, but at this point it's empty, as SHOW TABLES tells you:

Page 45: Mysqlppt3510

 Creating a Table

Creating the database is the easy part, but at this point it's empty, as SHOW TABLES tells you:

Page 46: Mysqlppt3510

 Creating a Table Create table slides (id integer, contents varchar(30), images char);

Page 47: Mysqlppt3510

 Creating a Table mysql> show tables;

Page 48: Mysqlppt3510

 Creating a Table mysql> describe slides;

Page 49: Mysqlppt3510

Loading Data into a Table

After creating your table, you need to populate it. The

LOAD DATA statement is useful for this Because you are beginning with an empty table, an

easy way to populate it is to create a text file containing a row for each of your slide, then load the contents of the file into the table with a single statement

Page 50: Mysqlppt3510

Loading Data into a Table

Page 51: Mysqlppt3510

Loading Data into a Table mysql> LOAD DATA LOCAL INFILE - > 'C:\\Documents and Settings\\User\\Documenti\\Didattica\\ceri\\Mysql\\dati\\‘ > slides.txt' INTO TABLE slides;

Page 52: Mysqlppt3510

Loading Data into a Table mysql> LOAD DATA LOCAL INFILE - > 'C:\\Documents and Settings\\User\\Documenti\\Didattica\\ceri\\Mysql\\dati\\‘ > slides.txt' INTO TABLE slides;

Page 53: Mysqlppt3510

Retrieving Information from a Table mysql> select * from slides;

Page 54: Mysqlppt3510

mysql> select contents from slides;

Retrieving Information from a Table

Page 55: Mysqlppt3510

mysql> delete from slides;

Retrieving Information from a Table

Page 56: Mysqlppt3510

mysql> select * from slides;

Retrieving Information from a Table

Page 57: Mysqlppt3510

Source

Page 58: Mysqlppt3510

Source