SlideShare a Scribd company logo
MySQL Tutorial
Introduction to Database
Introduction of MySQL
 MySQL is an SQL (Structured Query Language)
based relational database management system
(DBMS)
 MySQL is compatible with standard SQL
 MySQL is frequently used by PHP and Perl
 Commercial version of MySQL is also provided
(including technical support)
Resource
 MySQL and GUI Client can be downloaded
from
http://dev.mysql.com/downloads/
 The SQL script for creating database ‘bank’
can be found at
 http://www.cs.kent.edu/~mabuata/DB10_lab/bank_db.sql
 http://www.cs.kent.edu/~mabuata/DB10_lab/bank_data.sql
Command for accessing MySQL
 Access from DB server
>ssh dbdev.cs.kent.edu
Start MySQL
>mysql –u [username] –p
>Enter password:[password]
 From a departmental machine
>mysql -u [username] -h dbdev.cs.kent.edu –p
>Enter password:[password]
Entering & Editing commands
 Prompt mysql>
 issue a command
 Mysql sends it to the server for execution
 displays the results
 prints another mysql>
 a command could span multiple lines
 A command normally consists of SQL
statement followed by a semicolon
Command prompt
prompt meaning
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 (“'”).
“> 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 /*.
MySQL commands
 help h
 Quit/exit q
 Cancel the command c
 Change database use
 …etc
Info about databases and tables
 Listing the databases on the MySQL server host
 >show databases;
 Access/change database
 >Use [database_name]
 Showing the current selected database
 > select database();
 Showing tables in the current database
 >show tables;
 Showing the structure of a table
 > describe [table_name];
Banking Example
branch (branch-name, branch-city, assets)
customer (customer-name, customer-street,
customer-city)
account (account-number, branch-name, balance)
loan (loan-number, branch-name, amount)
depositor (customer-name, account-number)
borrower (customer-name, loan-number)
employee (employee-name, branch-name, salary)
CREATE DATABASE
 An SQL relation is defined using the CREATE
DATABASE command:
 create database [database name]
 Example
 create database mydatabase
SQL Script for creating tables
 The SQL script for creating database ‘bank’
can be found at
http://www.cs.kent.edu/~mabuata/DB10_lab/bank_db.sql
http://www.cs.kent.edu/~mabuata/DB10_lab/bank_data.sql
Notice: we do not have permission to create database,
so you have to type command “use [your_account]” to
work on your database.
Query
 To find all loan number for loans made at the Perryridge
branch with loan amounts greater than $1100.
select loan_number from loan
where branch_name = ‘Perryridge’ and amount>1100;
 Find the loan number of those loans with loan amounts
between $1,000 and $1,500 (that is, $1,000 and $1,500)
select loan_number from loan
where amount between 1000 and 1500;
Query
 Find the names of all branches that have greater assets than
some branch located in Brooklyn.
select distinct T.branch_name
from branch as T, branch as S
where T.assets > S.assets and S.branch_city = ‘Brooklyn’;
 Find the customer names and their loan numbers for all customers
having a loan at some branch.
select customer_name, T.loan_number, S.amount
from borrower as T, loan as S
where T.loan_number = S.loan_number;
Set Operation
 Find all customers who have a loan, an account, or both:
(select customer_name from depositor)
union
(select customer_name from borrower);
 Find all customers who have an account but no loan.
(no minus operator provided in mysql)
select customer_name from depositor
where customer_name not in
(select customer_name from borrower);
Aggregate function
 Find the number of depositors for each branch.
select branch_name, count (distinct customer_name)
from depositor, account
where depositor.account_number = account.account_number
group by branch_name;
 Find the names of all branches where the average account
balance is more than $500.
select branch_name, avg (balance)
from account
group by branch_name
having avg(balance) > 500;
Nested Subqueries
 Find all customers who have both an account and a loan at
the bank.
select distinct customer_name
from borrower
where customer_name in
(select customer_name from depositor);
 Find all customers who have a loan at the bank but do not
have an account at the bank
select distinct customer_name
from borrower
where customer_name not in
(select customer_name from depositor);
Nested Subquery
 Find the names of all branches that have greater assets
than all branches located in Horseneck.
select branch_name
from branch
where assets > all
(select assets
from branch
where branch_city = ‘Horseneck’);
Create View (new feature in mysql 5.0)
 A view consisting of branches and their customers
create view all_customer as
(select branch_name, customer_name
from depositor, account
where depositor.account_number =
account.account_number)
union
(select branch_name, customer_name
from borrower, loan
where borrower.loan_number=loan.loan_number);
Joined Relations
 Join operations take two relations and return as a result
another relation.
 These additional operations are typically used as subquery
expressions in the from clause
 Join condition – defines which tuples in the two relations
match, and what attributes are present in the result of the join.
 Join type – defines how tuples in each relation that do not
match any tuple in the other relation (based on the join
condition) are treated.
Joined Relations – Datasets for Examples
 Relation loan  Relation borrower
 Note: borrower information missing for L-260 and loan
information missing for L-155
Joined Relations – Examples
 Select * from loan inner join borrower on
loan.loan-number = borrower.loan-number
branch-name amount
Downtown
Redwood
3000
4000
customer-name loan-number
Jones
Smith
L-170
L-230
loan-number
L-170
L-230
Example
 Select * from loan left join borrower on
loan.loan-number = borrower.loan-number
branch-name amount
Downtown
Redwood
Perryridge
3000
4000
1700
customer-name loan-number
Jones
Smith
null
L-170
L-230
null
loan-number
L-170
L-230
L-260
Modification of Database
 Increase all accounts with balances over $800 by 7%, all
other accounts receive 8%.
update account
set balance = balance  1.07
where balance > 800;
update account
set balance = balance  1.08
where balance  800;
Modification of Database
 Increase all accounts with balances over $700 by 6%, all
other accounts receive 5%.
update account
set balance =case
when balance <= 700 then balance *1.05
else balance * 1.06
end;
Modification of Database
 Delete the record of all accounts with balances below the
average at the bank.
delete from account
where balance < (select avg (balance) from account);
 Add a new tuple to account
insert into account
values (‘A-9732’, ‘Perryridge’,1200);

More Related Content

PPT
My sql advacnce topics
PPT
Mysql classes in navi-mumbai,mysql course-provider-in-navi-mumbai
PDF
SQL express course for begginers
PDF
Introduction to the Structured Query Language SQL
PPT
Mysql tutorial
PPT
Mysql tutorial
PPT
Mysql tutorial
PPTX
SQL - Structured query language introduction
My sql advacnce topics
Mysql classes in navi-mumbai,mysql course-provider-in-navi-mumbai
SQL express course for begginers
Introduction to the Structured Query Language SQL
Mysql tutorial
Mysql tutorial
Mysql tutorial
SQL - Structured query language introduction

Similar to MySQL 指南 (20)

PPTX
Database : Relational Data Model
PDF
Sm relationaldatamodel-150423084157-conversion-gate01
PDF
Sm relationaldatamodel-150423084157-conversion-gate01
PPT
5. Other Relational Languages in DBMS
PDF
Assignment#04
PPT
sql- introduction-notmine- uploading share
PDF
DBMS LAB FILE1 task 1 , task 2, task3 and many more.pdf
DOCX
dbms first unit
PPT
SQL PPT.ppt
PPTX
BITM3730Week15.pptx
PPTX
Marcus Matthews
PPT
Unit04 dbms
PDF
Assignment#09
PPT
chapter4 contains details about sql queries.ppt
PDF
MySQL USER MANAGEMENT,ROUTINES & TRIGGERS.
PPTX
DBMS UNIT 9.pptx..................................
PPT
PPTX
Using Mysql.pptx
PPTX
Quick Revision on DATA BASE MANAGEMENT SYSTEMS concepts.pptx
Database : Relational Data Model
Sm relationaldatamodel-150423084157-conversion-gate01
Sm relationaldatamodel-150423084157-conversion-gate01
5. Other Relational Languages in DBMS
Assignment#04
sql- introduction-notmine- uploading share
DBMS LAB FILE1 task 1 , task 2, task3 and many more.pdf
dbms first unit
SQL PPT.ppt
BITM3730Week15.pptx
Marcus Matthews
Unit04 dbms
Assignment#09
chapter4 contains details about sql queries.ppt
MySQL USER MANAGEMENT,ROUTINES & TRIGGERS.
DBMS UNIT 9.pptx..................................
Using Mysql.pptx
Quick Revision on DATA BASE MANAGEMENT SYSTEMS concepts.pptx
Ad

More from YUCHENG HU (20)

PDF
Confluencewiki 使用空间
PDF
PDF
Presta shop 1.6 如何安装简体中文语言文件
PDF
Logback 介绍
PDF
Presta shop 1.6 详细安装指南
PDF
Presta shop 1.6 的安装环境
PDF
Presta shop 1.6 如何安装简体中文语言文件
PDF
Presta shop 1.6 图文安装教程
PDF
V tiger 5.4.0 图文安装教程
PDF
Confluence 回顾(retrospectives) 蓝图 cwikiossez
PDF
Confluence 会议记录(meeting notes)蓝图 cwikiossez
PDF
VTIGER - 销售机会 - CWIKIOSSEZ
PDF
Confluence 使用一个模板新建一个页面 cwikiossez
PDF
Confluence 使用模板
PDF
Cwikiossez confluence 订阅页面更新邮件通知
PDF
Cwikiossez confluence 关注页面 博客页面和空间
PDF
My sql università di enna a.a. 2005-06
PDF
My sql would you like transactions
PDF
MySQL 简要介绍
PDF
mysql 5.5.25 用户安装备忘
Confluencewiki 使用空间
Presta shop 1.6 如何安装简体中文语言文件
Logback 介绍
Presta shop 1.6 详细安装指南
Presta shop 1.6 的安装环境
Presta shop 1.6 如何安装简体中文语言文件
Presta shop 1.6 图文安装教程
V tiger 5.4.0 图文安装教程
Confluence 回顾(retrospectives) 蓝图 cwikiossez
Confluence 会议记录(meeting notes)蓝图 cwikiossez
VTIGER - 销售机会 - CWIKIOSSEZ
Confluence 使用一个模板新建一个页面 cwikiossez
Confluence 使用模板
Cwikiossez confluence 订阅页面更新邮件通知
Cwikiossez confluence 关注页面 博客页面和空间
My sql università di enna a.a. 2005-06
My sql would you like transactions
MySQL 简要介绍
mysql 5.5.25 用户安装备忘
Ad

Recently uploaded (20)

PDF
Building Integrated photovoltaic BIPV_UPV.pdf
PPTX
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
PDF
Diabetes mellitus diagnosis method based random forest with bat algorithm
PPTX
A Presentation on Artificial Intelligence
PDF
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
PDF
NewMind AI Weekly Chronicles - August'25 Week I
PPT
“AI and Expert System Decision Support & Business Intelligence Systems”
PDF
How UI/UX Design Impacts User Retention in Mobile Apps.pdf
PDF
The Rise and Fall of 3GPP – Time for a Sabbatical?
PDF
Network Security Unit 5.pdf for BCA BBA.
DOCX
The AUB Centre for AI in Media Proposal.docx
PPTX
Effective Security Operations Center (SOC) A Modern, Strategic, and Threat-In...
PDF
Approach and Philosophy of On baking technology
PDF
Machine learning based COVID-19 study performance prediction
PPTX
MYSQL Presentation for SQL database connectivity
PDF
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
PDF
Per capita expenditure prediction using model stacking based on satellite ima...
PDF
Shreyas Phanse Resume: Experienced Backend Engineer | Java • Spring Boot • Ka...
PDF
Dropbox Q2 2025 Financial Results & Investor Presentation
PDF
Unlocking AI with Model Context Protocol (MCP)
Building Integrated photovoltaic BIPV_UPV.pdf
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
Diabetes mellitus diagnosis method based random forest with bat algorithm
A Presentation on Artificial Intelligence
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
NewMind AI Weekly Chronicles - August'25 Week I
“AI and Expert System Decision Support & Business Intelligence Systems”
How UI/UX Design Impacts User Retention in Mobile Apps.pdf
The Rise and Fall of 3GPP – Time for a Sabbatical?
Network Security Unit 5.pdf for BCA BBA.
The AUB Centre for AI in Media Proposal.docx
Effective Security Operations Center (SOC) A Modern, Strategic, and Threat-In...
Approach and Philosophy of On baking technology
Machine learning based COVID-19 study performance prediction
MYSQL Presentation for SQL database connectivity
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
Per capita expenditure prediction using model stacking based on satellite ima...
Shreyas Phanse Resume: Experienced Backend Engineer | Java • Spring Boot • Ka...
Dropbox Q2 2025 Financial Results & Investor Presentation
Unlocking AI with Model Context Protocol (MCP)

MySQL 指南

  • 2. Introduction of MySQL  MySQL is an SQL (Structured Query Language) based relational database management system (DBMS)  MySQL is compatible with standard SQL  MySQL is frequently used by PHP and Perl  Commercial version of MySQL is also provided (including technical support)
  • 3. Resource  MySQL and GUI Client can be downloaded from http://dev.mysql.com/downloads/  The SQL script for creating database ‘bank’ can be found at  http://www.cs.kent.edu/~mabuata/DB10_lab/bank_db.sql  http://www.cs.kent.edu/~mabuata/DB10_lab/bank_data.sql
  • 4. Command for accessing MySQL  Access from DB server >ssh dbdev.cs.kent.edu Start MySQL >mysql –u [username] –p >Enter password:[password]  From a departmental machine >mysql -u [username] -h dbdev.cs.kent.edu –p >Enter password:[password]
  • 5. Entering & Editing commands  Prompt mysql>  issue a command  Mysql sends it to the server for execution  displays the results  prints another mysql>  a command could span multiple lines  A command normally consists of SQL statement followed by a semicolon
  • 6. Command prompt prompt meaning 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 (“'”). “> 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 /*.
  • 7. MySQL commands  help h  Quit/exit q  Cancel the command c  Change database use  …etc
  • 8. Info about databases and tables  Listing the databases on the MySQL server host  >show databases;  Access/change database  >Use [database_name]  Showing the current selected database  > select database();  Showing tables in the current database  >show tables;  Showing the structure of a table  > describe [table_name];
  • 9. Banking Example branch (branch-name, branch-city, assets) customer (customer-name, customer-street, customer-city) account (account-number, branch-name, balance) loan (loan-number, branch-name, amount) depositor (customer-name, account-number) borrower (customer-name, loan-number) employee (employee-name, branch-name, salary)
  • 10. CREATE DATABASE  An SQL relation is defined using the CREATE DATABASE command:  create database [database name]  Example  create database mydatabase
  • 11. SQL Script for creating tables  The SQL script for creating database ‘bank’ can be found at http://www.cs.kent.edu/~mabuata/DB10_lab/bank_db.sql http://www.cs.kent.edu/~mabuata/DB10_lab/bank_data.sql Notice: we do not have permission to create database, so you have to type command “use [your_account]” to work on your database.
  • 12. Query  To find all loan number for loans made at the Perryridge branch with loan amounts greater than $1100. select loan_number from loan where branch_name = ‘Perryridge’ and amount>1100;  Find the loan number of those loans with loan amounts between $1,000 and $1,500 (that is, $1,000 and $1,500) select loan_number from loan where amount between 1000 and 1500;
  • 13. Query  Find the names of all branches that have greater assets than some branch located in Brooklyn. select distinct T.branch_name from branch as T, branch as S where T.assets > S.assets and S.branch_city = ‘Brooklyn’;  Find the customer names and their loan numbers for all customers having a loan at some branch. select customer_name, T.loan_number, S.amount from borrower as T, loan as S where T.loan_number = S.loan_number;
  • 14. Set Operation  Find all customers who have a loan, an account, or both: (select customer_name from depositor) union (select customer_name from borrower);  Find all customers who have an account but no loan. (no minus operator provided in mysql) select customer_name from depositor where customer_name not in (select customer_name from borrower);
  • 15. Aggregate function  Find the number of depositors for each branch. select branch_name, count (distinct customer_name) from depositor, account where depositor.account_number = account.account_number group by branch_name;  Find the names of all branches where the average account balance is more than $500. select branch_name, avg (balance) from account group by branch_name having avg(balance) > 500;
  • 16. Nested Subqueries  Find all customers who have both an account and a loan at the bank. select distinct customer_name from borrower where customer_name in (select customer_name from depositor);  Find all customers who have a loan at the bank but do not have an account at the bank select distinct customer_name from borrower where customer_name not in (select customer_name from depositor);
  • 17. Nested Subquery  Find the names of all branches that have greater assets than all branches located in Horseneck. select branch_name from branch where assets > all (select assets from branch where branch_city = ‘Horseneck’);
  • 18. Create View (new feature in mysql 5.0)  A view consisting of branches and their customers create view all_customer as (select branch_name, customer_name from depositor, account where depositor.account_number = account.account_number) union (select branch_name, customer_name from borrower, loan where borrower.loan_number=loan.loan_number);
  • 19. Joined Relations  Join operations take two relations and return as a result another relation.  These additional operations are typically used as subquery expressions in the from clause  Join condition – defines which tuples in the two relations match, and what attributes are present in the result of the join.  Join type – defines how tuples in each relation that do not match any tuple in the other relation (based on the join condition) are treated.
  • 20. Joined Relations – Datasets for Examples  Relation loan  Relation borrower  Note: borrower information missing for L-260 and loan information missing for L-155
  • 21. Joined Relations – Examples  Select * from loan inner join borrower on loan.loan-number = borrower.loan-number branch-name amount Downtown Redwood 3000 4000 customer-name loan-number Jones Smith L-170 L-230 loan-number L-170 L-230
  • 22. Example  Select * from loan left join borrower on loan.loan-number = borrower.loan-number branch-name amount Downtown Redwood Perryridge 3000 4000 1700 customer-name loan-number Jones Smith null L-170 L-230 null loan-number L-170 L-230 L-260
  • 23. Modification of Database  Increase all accounts with balances over $800 by 7%, all other accounts receive 8%. update account set balance = balance  1.07 where balance > 800; update account set balance = balance  1.08 where balance  800;
  • 24. Modification of Database  Increase all accounts with balances over $700 by 6%, all other accounts receive 5%. update account set balance =case when balance <= 700 then balance *1.05 else balance * 1.06 end;
  • 25. Modification of Database  Delete the record of all accounts with balances below the average at the bank. delete from account where balance < (select avg (balance) from account);  Add a new tuple to account insert into account values (‘A-9732’, ‘Perryridge’,1200);