Download document

Document related concepts

Database wikipedia , lookup

Microsoft SQL Server wikipedia , lookup

Microsoft Jet Database Engine wikipedia , lookup

Clusterpoint wikipedia , lookup

SQL wikipedia , lookup

Open Database Connectivity wikipedia , lookup

Entity–attribute–value model wikipedia , lookup

PL/SQL wikipedia , lookup

Object-relational impedance mismatch wikipedia , lookup

Ingres (database) wikipedia , lookup

Join (SQL) wikipedia , lookup

Relational model wikipedia , lookup

Extensible Storage Engine wikipedia , lookup

Database model wikipedia , lookup

Transcript
MYSQL
What is MYSQL?
a multithreaded, multi-user SQL database
management system.
A Database Management System which is
available for both Linux and Windows.
Popular Open Source Database.
a relational database management system
(RDBMS) that has more than 6 million
installations.
INSTALLATOIN, CONFIGURATION
&
COMMANDS
-BY H. ANKUSH. JAIN
INSTALLATION
&
CONFIGURATION
download the latest MySQL install package from the
MySQL site.
I recommend you use the Windows Essentials package.

Double click on the
installation
package to
initilize the
installation
wizard
Step 1: Choose the setup type


use the Custom
option so that you
can define your
installation path.
Press the Next button
Step 2
Use the Change botton
to specify your
installation path,use a
path without
spaces(recommended).


Click the Next button
Step 3


select the Skip SignUp option(Account
not needed)
click the Next button
Step 4


Check the “Configure
the MySQL Server
now”
click the Finish button
to complete the
installtion wizard and
start the configuration
wizard.
Step 5: Configuring MySQL


You should now be
presented with the
MySQL Server
Instance
Configuration
Wizard.
Click the Next
button to continue.
Step 6


Select the Detailed
Configuration option
Click the Next
button
Step 7


choose the server type
click the Next button
to continue
Step 8


Select your database
usage option
Click the Next
button
Step 9



If you selected to
enables the InnoDB
database engine, then
you will be prompted to
set a path for use by the
InnoDB datafile.
Leave this as the
defaultu
Click the Next button
Step 10



set the estimated
conccurrent connection
usage.
using the Decision
Support (DSS)/OLAP
option which sets the
concurrent connection
limit to 20 which is
pretty safe.
Click next button
Step 11



Check the Enable
TCP/IP Networking
option
uncheck the Enable
Strict Mode option
even though it is on
by default and
recommended.
Click next
Step 12


Select Standard
Character Set as
default
Click next button
Step 13


Check the Install As
Windows Service and
Launch MySQL Server
Automatically & Include
Bin Directory in Windows
PATH options so that you
can execute the MySQL
tools from anywhere when
using the command line.
This can be handy when
creating automated scripts
for backups, etc.
click the Next button
Step 14



Set a strong password
(atleast 6 characters)
DON'T CHECK the
Enable root access for
remote machines option
& Create An
Anonymous Account
option.
Click next button
Step 15



Confrim your
settings.
Click the Execute
button
Press Finish to
complete the
configuration
wizard and exit.
COMMANDS
Login to MySQL monitor
..\mysql\bin\mysql u[username] p[password]
Example:
..\mysql\bin\mysql uroot -pmysecret
Create a database on the sql server.
SYNTAX:
CREATE {DATABASE | SCHEMA}
[IF NOT EXISTS] db_name
[create_specification] ...
create_specification:
[DEFAULT] CHARACTER SET
[=] charset_name
| [DEFAULT] COLLATE [=]
collation_name
Example:
u-1@srv-1 mysqlart $ mysql -u root
Welcome to the MySQL monitor. Commands
end with ; or \g.
Your MySQL connection id is 5 to server
version: 4.0.14-log
Type 'help;' or '\h' for help. Type '\c'
to clear the buffer.
mysql> create database sysops;
Query OK, 1 row affected (0.00 sec)
mysql> quit
Bye
u-1@srv-1 mysqlart $
List all databases on the sql
server.
mysql> SHOW DATABASES;
SYNTAX:
+----------+
| Database |
mysql> show databases;
+----------+
| info
|
| java2s |
| mysql
|t
|
| test
| ttt
|
|
|
+----------+
6 rows in set (0.00 sec)
Switch to a database.
mysql> use [db name];
To see all the tables in the db.
mysql> show tables;
CREATE TABLE
Example:
SYNTAX: CREATE TABLE [table_name] (
CREATE TABLE user (
[column_name1] INT AUTO_INCREMENT,
userid INT AUTO_INCREMENT,
[column_name2] VARCHAR(30) NOT NULL,
username VARCHAR(30) NOT NULL,
[column_name3] ENUM('guest', 'customer',
'admin')NULL,
group_type ENUM('guest', 'customer',
'admin') NULL,
[column_name4] DATE NULL,
date_of_birth DATE NULL,
[column_name5] VARCHAR(30) NOT NULL,
password VARCHAR(30) NOT NULL,
[column_name6] DATETIME NOT NULL,
registration_date DATETIME NOT NULL,
[column_name7] CHAR(1) NULL,
account_disable CHAR(1) NULL,
[column_name8] BLOB NULL,
image BLOB NULL,
[column_name9] TEXT NOT NULL,
comment TEXT NOT NULL,
UNIQUE(username),
UNIQUE(username),
PRIMARY KEY (column_name1)
PRIMARY KEY (userid)
);
);
INSERT STATEMENTS

Syntax:
INSERT INTO
table_name (
`col_A`, `col_B`,
`col_C`) VALUES (
`col_A_data`,
`col_B_data`,
`col_C_data`) ;

Example:
INSERT INTO music
( 'id', `artist`,
`album`) VALUES (
'1', `the beatles`,
`Abbey Road`);
REPLACE STATEMENTS

Syntax:
REPLACE INTO
table_name (
`col_A`, `col_B`)
VALUES ( `col A
data`, `col B data`) ;

Example:
REPLACE INTO
music ( 'id', `artist`,
`album`) VALUES (
'1', `the beatles`,
`abbey road`);
UPDATE STATEMENTS

Syntax:

Example:
UPDATE table_name UPDATE music SET
SET
title='Come
col_B='new_data'
Together' WHERE
WHERE
id=1;
col_A='reference_d
ata' ;
Add a new column "male" in table user.
Syntax:
ALTER TABLE
[table_name]
ADD COLUMN
[column_name]
CHAR(1) NOT NULL;
Example:



ALTER TABLE user
ADD COLUMN
male
CHAR(1) NOT
NULL;
Change column name "male" into "gender" in table user and
change the type to VARCHAR(3) and allow NULL values.
Syntax:
Example:
ALTER TABLE
[table_name]
ALTER TABLE user
CHANGE [old_column]
[new_column]
VARCHAR(3) NULL;
CHANGE male gender
VARCHAR (3) NULL;
Change the size of column "gender" from 3 to 6 in
table user.
Syntax:
ALTER TABLE
[table_name]
Example:
ALTER TABLE user
MODIFY [column_name] MODIFY gender
VARCHAR(6);
VARCHAR(6);
SELECT STATEMENTS

Syntax:
SELECT * FROM
table_name
WHERE 1 ;

Example:
SELECT * FROM
music WHERE 1;
DELETE STATEMENTS

Syntax:
DELETE FROM
table_name
WHERE
column_name='sea
rch_data';

Example:
DELETE FROM
music WHERE
artist='the beatles';
Show field formats of the selected table.
Syntax:
Example:
DESCRIBE
[table_name];
DESCRIBE
mos_menu;
To see database's field formats.
mysql> describe [table name];
To delete a db.
mysql> drop database Example:
[database name];
DROP DATABASE
demodb;
To delete a table.
mysql> drop table
[table name];
Example:
DROP TABLE user;
Show all data in a table.
mysql> SELECT *
FROM [table name];
Example:
SELECT *
FROM mos_menu;
Show all records from mos_menu table
containing name "Home".
SELECT *
Example:
FROM [table_name]
SELECT *
WHERE
[field_name]=[value];
FROM mos_menu
WHERE name =
"Home";
Returns the columns and column
information pertaining to the
designated table.
mysql> show columns from [table name];
Show certain selected rows with
the value "whatever".
mysql> SELECT * FROM [table name]
WHERE [field name] = "whatever";
Show all records containing the
name "Bob" AND the phone
number '3444444'.
mysql> SELECT * FROM [table name]
WHERE name = "Bob" AND phone_number =
'3444444';
Show all records not containing
the name "Bob" AND the phone
number '3444444' order by the
phone_number field.
mysql> SELECT * FROM [table name]
WHERE name != "Bob" AND phone_number
= '3444444' order by phone_number;
Show all records starting with the
letters 'bob' AND the phone
number '3444444'.
mysql> SELECT * FROM [table name]
WHERE name like "Bob%" AND
phone_number = '3444444';
Show all records starting with the
letters 'bob' AND the phone number
'3444444' limit to records 1 through
5.
mysql> SELECT * FROM [table name]
WHERE name like "Bob%" AND
phone_number = '3444444' limit 1,5;
Use a regular expression to find
records. Use "REGEXP BINARY" to
force case-sensitivity. This finds any
record beginning with a.
mysql> SELECT * FROM [table name]
WHERE rec RLIKE "^a";
Show unique records.
mysql> SELECT DISTINCT [column name]
FROM [table name];
Show selected records sorted in an
ascending (asc) or descending
(desc).
mysql> SELECT [col1],[col2] FROM [table
name] ORDER BY [col2] DESC;
Return number of rows.
mysql> SELECT COUNT(*) FROM [table
name];
Sum column.
mysql> SELECT SUM(*) FROM [table name];
Join tables on common columns.
mysql> select lookup.illustrationid,
lookup.personid,person.birthday from lookup
left join person on
lookup.personid=person.personid=statement
to join birthday in person table with primary
illustration id;
Creating a new user. Login as root.
Switch to the MySQL db. Make the
user. Update privs.
# mysql -u root -p
mysql> use mysql;
mysql> INSERT INTO user (Host,User,Password)
VALUES('%','username',PASSWORD('password'));
mysql> flush privileges;
Change a users password from
unix shell.
# [mysql dir]/bin/mysqladmin -u username -h
hostname.blah.org -p password 'newpassword'
Change a users password from
MySQL prompt. Login as root. Set
the password. Update privs.
# mysql -u root -p
mysql> SET PASSWORD FOR
'user'@'hostname' =
PASSWORD('passwordhere');
mysql> flush privileges;
Recover a MySQL root password. Stop the MySQL
server process. Start again with no grant tables.
Login to MySQL as root. Set new password. Exit
MySQL and restart MySQL server.
# /etc/init.d/mysql stop
# mysqld_safe --skip-grant-tables &
# mysql -u root
mysql> use mysql;
mysql> update user set
password=PASSWORD("newrootpassword") where
User='root';
mysql> flush privileges;
mysql> quit
# /etc/init.d/mysql stop
# /etc/init.d/mysql start
Set a root password if there is on
root password.
# mysqladmin -u root password newpassword
Update a root password.
# mysqladmin -u root -p oldpassword
newpassword
Allow the user "bob" to connect to the
server from localhost using the password
"passwd". Login as root. Switch to the
MySQL db. Give privs. Update privs.
# mysql -u root -p
mysql> use mysql;
mysql> grant usage on *.* to bob@localhost
identified by 'passwd';
mysql> flush privileges;
Give user privilages for a db. Login as
root. Switch to the MySQL db. Grant
privs. Update privs.
# mysql -u root -p
mysql> use mysql;
mysql> INSERT INTO db
(Host,Db,User,Select_priv,Insert_priv,Update_priv,Delete_priv,Crea
te_priv,Drop_priv) VALUES
('%','databasename','username','Y','Y','Y','Y','Y','N');
mysql> flush privileges;
or
mysql> grant all privileges on databasename.* to
username@localhost;
mysql> flush privileges;
To update info already in a table.
mysql> UPDATE [table name] SET
Select_priv = 'Y',Insert_priv = 'Y',Update_priv
= 'Y' where [field name] = 'user';
Delete a row(s) from a table.
mysql> DELETE from [table name] where
[field name] = 'whatever';
Update database
permissions/privilages.
mysql> flush privileges;
Delete a column.
mysql> alter table [table name] drop column
[column name];
Add a new column to db.
mysql> alter table [table name] add column
[new column name] varchar (20);
Change column name.
mysql> alter table [table name] change [old
column name] [new column name] varchar
(50);
Make a unique column so you
get no dupes.
mysql> alter table [table name] add unique
([column name]);
Make a column bigger.
mysql> alter table [table name] modify
[column name] VARCHAR(3);
Delete unique from table.
mysql> alter table [table name] drop index
[colmn name];
Load a CSV file into a table.
mysql> LOAD DATA INFILE
'/tmp/filename.csv' replace INTO TABLE
[table name] FIELDS TERMINATED BY ','
LINES TERMINATED BY '\n'
(field1,field2,field3);
Dump all databases for backup.
Backup file is sql commands to
recreate all db's.
# [mysql dir]/bin/mysqldump -u root ppassword --opt >/tmp/alldatabases.sql
Dump one database for backup.
# [mysql dir]/bin/mysqldump -u username ppassword --databases databasename
>/tmp/databasename.sql
Dump a table from a database.
# [mysql dir]/bin/mysqldump -c -u username ppassword databasename tablename >
/tmp/databasename.tablename.sql
Restore database (or database
table) from backup.
# [mysql dir]/bin/mysql -u username ppassword databasename <
/tmp/databasename.sql
Thank You