My sql università di enna a.a. 2005-06

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

description

MySQL - Università di Enna A.A. 2005-06 http://www.ossez.com/forum.php?mod=viewthread&tid=26898&fromuid=426 (出处: OSSEZ)

Transcript of My sql università di enna a.a. 2005-06

Page 1: My sql   università di enna a.a. 2005-06

Mysql

Basi di Dati

Università di Enna A.A. 2005/06

Page 2: My sql   università di enna a.a. 2005-06

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: My sql   università di enna a.a. 2005-06

License

The MySQL software is Dual Licensed

Users 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: My sql   università di enna a.a. 2005-06

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: My sql   università di enna a.a. 2005-06

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: My sql   università di enna a.a. 2005-06

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: My sql   università di enna a.a. 2005-06

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: My sql   università di enna a.a. 2005-06

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: My sql   università di enna a.a. 2005-06

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: My sql   università di enna a.a. 2005-06

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: My sql   università di enna a.a. 2005-06

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: My sql   università di enna a.a. 2005-06

The Main Features of MySQL

Written in C and C++

Tested with a broad range of different compilers

Works on many different platforms

Uses GNU Automake, Autoconf, and Libtool for portability

APIs for C, C++, Eiffel, Java, Perl, PHP, Python, Ruby, and Tcl are available

Page 13: My sql   università di enna a.a. 2005-06

Column Types

Many column types:

signed/unsigned integers 1, 2, 3, 4, and 8 bytes long

FLOAT, DOUBLE

CHAR, VARCHAR

TEXT

BLOB

DATE, TIME, DATETIME, TIMESTAMP, YEAR

SET, ENUM

Fixed-length and variable-length records

Page 14: My sql   università di enna a.a. 2005-06

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: My sql   università di enna a.a. 2005-06

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: My sql   università di enna a.a. 2005-06

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: My sql   università di enna a.a. 2005-06

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: My sql   università di enna a.a. 2005-06

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: My sql   università di enna a.a. 2005-06

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: My sql   università di enna a.a. 2005-06

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: My sql   università di enna a.a. 2005-06

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: My sql   università di enna a.a. 2005-06

Connecting to and Disconnecting from

the Server

Page 23: My sql   università di enna a.a. 2005-06

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: My sql   università di enna a.a. 2005-06

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: My sql   università di enna a.a. 2005-06

Entering Queries

mysql> SELECT VERSION( ), CURRENT_DATE;

Page 26: My sql   università di enna a.a. 2005-06

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: My sql   università di enna a.a. 2005-06

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: My sql   università di enna a.a. 2005-06

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: My sql   università di enna a.a. 2005-06

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: My sql   università di enna a.a. 2005-06

• Here's another query. It demonstrates that you can use

mysql as a simple calculator

Entering Queries

Page 31: My sql   università di enna a.a. 2005-06

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

Entering Queries

Page 32: My sql   università di enna a.a. 2005-06

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: My sql   università di enna a.a. 2005-06

Entering Queries

Page 34: My sql   università di enna a.a. 2005-06

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: My sql   università di enna a.a. 2005-06

"> 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: My sql   università di enna a.a. 2005-06

Entering Queries

Page 37: My sql   università di enna a.a. 2005-06

Entering Queries

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

'>

Page 38: My sql   università di enna a.a. 2005-06

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: My sql   università di enna a.a. 2005-06

Use the SHOW statement to find out what databases

currently exist on the server

Creating and Using a Database

Page 40: My sql   università di enna a.a. 2005-06

If the test database exists, try to access it

Creating and Using a Database

Page 41: My sql   università di enna a.a. 2005-06

USE

USE, like QUIT, does not require a semicolon

You 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: My sql   università di enna a.a. 2005-06

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: My sql   università di enna a.a. 2005-06

Creating and Selecting a Database

Page 44: My sql   università di enna a.a. 2005-06

Creating a Table

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

Page 45: My sql   università di enna a.a. 2005-06

Creating a Table

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

Page 46: My sql   università di enna a.a. 2005-06

Creating a Table

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

Page 47: My sql   università di enna a.a. 2005-06

Creating a Table

mysql> show tables;

Page 48: My sql   università di enna a.a. 2005-06

Creating a Table

mysql> describe slides;

Page 49: My sql   università di enna a.a. 2005-06

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: My sql   università di enna a.a. 2005-06

Loading Data into a Table

Page 51: My sql   università di enna a.a. 2005-06

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: My sql   università di enna a.a. 2005-06

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: My sql   università di enna a.a. 2005-06

Retrieving Information from a Table

mysql> select * from slides;

Page 54: My sql   università di enna a.a. 2005-06

mysql> select contents from slides;

Retrieving Information from a Table

Page 55: My sql   università di enna a.a. 2005-06

mysql> delete from slides;

Retrieving Information from a Table

Page 56: My sql   università di enna a.a. 2005-06

mysql> select * from slides;

Retrieving Information from a Table

Page 57: My sql   università di enna a.a. 2005-06

Source

Page 58: My sql   università di enna a.a. 2005-06

Source