Download presentation
Presentation is loading. Please wait.
Published byEvan Warner Modified over 9 years ago
1
May 26, 2005MySQL Tutorial - 11 MySQL Tutorial 1 – How to Use MySQL CSCI 2140 TA: Jiye Li jiye@cs.dal.cajiye@cs.dal.ca May 26, 2005 http://flame.cs.dal.ca/~jiye/CSCI2140/
2
May 26, 2005MySQL Tutorial - 12 Agenda Getting familiar with our network system Introducing MySQL SQL basics create, add, select, modify, delete Exercises (see handout)
3
May 26, 2005MySQL Tutorial - 13 How to get a UNIX account Sun workstation or ssh program (putty) Log into torch.cs.dal.ca Username: discover Passwd: query Enter your student number Ask Help Desk
4
May 26, 2005MySQL Tutorial - 14 How to get a Windows account Username: the same as torch account Password: student ID number. Don’t forget ‘B’ is capitalized.
5
May 26, 2005MySQL Tutorial - 15 What is MySQL? MySQL is a database management system (DBMS) for relational databases Online Manual http://dev.mysql.com/doc/ MySQL is installed on torch Each user ID stands for a database Create tables under this database
6
May 26, 2005MySQL Tutorial - 16 How to Login to MySQL Go on torch.cs.dal.ca Run mysql to login torch: ~$ mysql -p Enter password: Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 123943 to server version: 4.0.12 Type 'help;' or '\h' for help. Type '\c' to clear the buffer. mysql> Student ID Lower case
7
May 26, 2005MySQL Tutorial - 17 How to Logout Use the command exit or quit torch: ~$ mysql -p Enter password: Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 123975 to server version: 4.0.12 Type 'help;' or '\h' for help. Type '\c' to clear the buffer. mysql> exit Bye torch: ~$
8
May 26, 2005MySQL Tutorial - 18 Use your database After login MySQL, use your own database before creating tables torch: ~$ mysql -p Enter password: Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 125213 to server version: 4.0.12 Type 'help;' or '\h' for help. Type '\c' to clear the buffer. mysql> use jiye; Database changed mysql> Your user ID
9
May 26, 2005MySQL Tutorial - 19 SQL Basics Suppose we would like to create a few tables, such as employee table, employer table and payment table, representing a database about employee information.
10
May 26, 2005MySQL Tutorial - 110 How to write commands in MySQL How to create a table Primary Keys and Foreign Keys How to add records How to select records How to modify records How to delete records
11
May 26, 2005MySQL Tutorial - 111 How to create tables Use create create table (column_name data_type [not null] …, column_name data_type [not null], primary key (column_name)); To show the structure of the table describe ;
12
May 26, 2005MySQL Tutorial - 112 Example mysql> create table employee ( empno smallint(4) not null auto_increment, name char (8) not null, job char (4), salary int (8) not null, deptno int (4) not null, primary key (empno) );
13
May 26, 2005MySQL Tutorial - 113 Primary Key Primary Key is a column or set of columns Uniquely identifies the rest of the data in any given row. For Example: in the employee table, employee number is the primary key.
14
May 26, 2005MySQL Tutorial - 114 Foreign Key A foreign key is a column in a table This column is a primary key of another table Any data in a foreign key column must have corresponding data in the other table http://dev.mysql.com/doc/mysql/en/innodb-foreign-key- constraints.html
15
May 26, 2005MySQL Tutorial - 115 Foreign Key The goal of using foreign keys is that, tables can be related without repeating data Note that foreign keys in SQL are used to check and enforce referential integrity, not to join tables. If you want to get results from multiple tables from a SELECT statement, you do this by performing a join between them: SELECT * FROM t1, t2 WHERE t1.id = t2.id;
16
May 26, 2005MySQL Tutorial - 116 employer Example – Create table with foreign keys create table employee2 ( empno smallint(4) not null, salary float, primary key (empno) ) type = innodb; create table employer ( id smallint(4), employee_no smallint(4), index employ_ind (employee_no), foreign key(employee_no) references employee2(empno) on delete cascade) type=innodb; empno (PK) salary 100200.85 200129.54 30098.17 idemployee_no(FK) 51100 52100 53200 54300 employee2
17
May 26, 2005MySQL Tutorial - 117 The Syntax of a Foreign Key Constraint Definition [CONSTRAINT [symbol]] FOREIGN KEY (index_col_name,...) REFERENCES table_name (index_col_name,...) [ON DELETE {CASCADE | SET NULL | NO ACTION | RESTRICT}] [ON UPDATE {CASCADE | SET NULL | NO ACTION | RESTRICT}] Both tables have to be InnoDB type InnoDB provides MySQL with a transaction-safe storage engine with commit, rollback, and crash recovery capabilities. http://dev.mysql.com/doc/mysql/en/innodb- overview.html
18
May 26, 2005MySQL Tutorial - 118 The Syntax of a Foreign Key Constraint Definition InnoDB rejects any INSERT or UPDATE operation that attempts to create a foreign key value in a child table without a matching candidate key value in the parent table. CASCADE: Delete or update the row from the parent table and automatically delete or update the matching rows in the child table. SET NULL: Delete or update the row from the parent table and set the foreign key column(s) in the child table to NULL. This is only valid if the foreign key columns do not have the NOT NULL qualifier specified. NO ACTION: NO ACTION means no action in the sense that an attempt to delete or update a primary key value will not be allowed to proceed if there is a related foreign key value in the referenced table. RESTRICT: Rejects the delete or update operation for the parent table. NO ACTION and RESTRICT are the same as omitting the ON DELETE or ON UPDATE clause. (Some database systems have deferred checks, and NO ACTION is a deferred check. In MySQL, foreign key constraints are checked immediately, so NO ACTION and RESTRICT are the same.) SET DEFAULT: This action is recognized by the parser, but InnoDB rejects table definitions containing ON DELETE SET DEFAULT or ON UPDATE SET DEFAULT clauses.
19
May 26, 2005MySQL Tutorial - 119 MySQL Table Types If we want to use Foreign Key InnoDB tables Otherwise Default table type, MyISAM In SQL queries you can freely mix InnoDB type tables with other table types of MySQL, even within the same query.
20
May 26, 2005MySQL Tutorial - 120 How to add records Use insert insert into values (column_value, …, column_value);
21
May 26, 2005MySQL Tutorial - 121 Example insert into employee values (1000,'Wilson','Clrk',1700,10); insert into employee values (1001,'Smith','Slsm',2500,40); insert into employee values (1003,'Reed','Anlt',3500,30); insert into employee values (1005,'Watson','Mngr',4500,30); insert into employee values (1009,'Allen','Mngr',3800,40); insert into employee values (1010,'Turner','Clrk',1800,50); insert into employee values (2000,'Chen','Mngr',2900,10); insert into employee values (2100,'Ramirez','Mngr',3650,50); insert into employee values (2130,'McDonnel','Clrk',1625,60); insert into employee values (2140,'Simpson','Drvr',825,60);
22
May 26, 2005MySQL Tutorial - 122 Example On Slide 17 insert into employee2 values (100, 200.85); insert into employee2 values (200, 129.54); insert into employee2 values (300, 98.17); insert into employer values (51, 100); insert into employer values (52, 100); insert into employer values (53, 200); insert into employer values (54, 300);
23
May 26, 2005MySQL Tutorial - 123 How to Select Records select * from ; select * from where = ; select * from where = order by ; select from ; select from
24
May 26, 2005MySQL Tutorial - 124 Example select * from employee; select * from employee where empno = 1000; select * from employee where job = 'Clrk' order by salary; select name, empno from employee; select job from employee; select distinct job from employee;
25
May 26, 2005MySQL Tutorial - 125 Example On Slide 17 select empno from employee2; select empno from employee2 where salary >=50 and salary < 150; select * from employee2, employer; select id, empno from employer m, employee2 n where m.employee_no = n.empno;
26
May 26, 2005MySQL Tutorial - 126 How to Modify Records Use update to modify attribute values of (some) tuples in a table update set =, …, = [where ];
27
May 26, 2005MySQL Tutorial - 127 Example update employee set job = ‘Drvr’, deptno = 20, salary = salary + 1000 where name = 'Reed’; update employee set salary = salary * 1.15 where deptno in (10, 40);
28
May 26, 2005MySQL Tutorial - 128 How to Delete Records Use delete delete from [where ];
29
May 26, 2005MySQL Tutorial - 129 Example delete from employee where salary < 2000; delete from employee; Note: this command will delete all the records in the “employee” table.
30
May 26, 2005MySQL Tutorial - 130 Tip1: How to Load Command Execute a SQL script file. Take a file name as an argument. Save SQL commands into a file Execute the commands: mysql> source ;
31
May 26, 2005MySQL Tutorial - 131 Example In file “temp.sql” select * from employee; select name from employee where salary < 3000; mysql> source temp.sql;
32
May 26, 2005MySQL Tutorial - 132 Tip2: How to Save Results Save results tee Set outfile. Append everything into given outfile. All the information displayed on screen is stored in.
33
May 26, 2005MySQL Tutorial - 133 Example mysql>tee result; mysql> select * from employee; mysql> notee; mysql> exit torch: ~$ cat result mysql> select * from employee; EMPNO NAME JOB SALARY DEPTNO ---------- -------- ---- ---------- ---------- 1000 Wilson Clrk 1720 10 1001 Smith Slsm 2500 40 ………… 10 rows selected. mysql> notee; torch: ~$
34
May 26, 2005MySQL Tutorial - 134 Appendix: MySQL Data Types TypeSizeDescription tinyint[Length]1 byteRange of –128 to 127 float4 bytesA small number with a floating decimal point Date3 bytesIn the format of YYYY-MM-DD Time3 bytesIn the format of HH:MM:SS varchar[Length]String length + 1 byte A fixed-length field from 0 to 255 characters long
35
May 26, 2005MySQL Tutorial - 135 Appendix: MySQL under Unix A few commands use username; show tables; show columns from employee; help; exit; SQL commands (select, insert, delete,…)
36
May 26, 2005MySQL Tutorial - 136 Appendix: MySQL Control Center Graphical user interface (GUI) to the MySQL database server Supports interactive use, including syntax highlighting and tab completion Download from http://dev.mysql.com/downloads/other/my sqlcc.html
37
May 26, 2005MySQL Tutorial - 137 Appendix: MySQL Control Center Student ID
Similar presentations
© 2024 SlidePlayer.com. Inc.
All rights reserved.