e> .: MySQL

MySQL



MySQL  හි භාවිත වන මූලික command සලකා බලමු 


  • මුලින්ම database එකක් create කරන ආකාරය බලමු 
CREATE DATABASE WAPLAK;




  • Create කරපු database එක භාවිතයට ගැනීම 
අපි විසින් සාදා ගන්න ලද database එක භාවිතයට ගැනිම සදහා මෙය සිදුකලයුතු වේ
USE WAPLAK;







  • Database එක තුල ඇති tables මොනවදැයි බැලීම 
SHOW TABLES;
මෙය අලුතින් සාදන ලද්දක් නිස කිසිදු table එකක් නොමැත




  • Table නිර්මාණය කිරිම 
table එකක් නිර්මානයේදි මුලින්ම table එකෙහි ඇති columns  වල නම් සහ එම columns වල data type එකද ,primary key එකද හදුන්වා දියයුතු වේ .


create table teacher(
emp_name varchar(10) not null,emp_id char(3),
b_day date,emp_sal float(7,2),emp_age int default 22,primary key(emp_id)
) ;






අනතුරුව සාදන ලද table එකට value ඇතුලත් කිරීම සිදුකල යුතුය 

insert into teacher(emp_name,emp_id,b_day,emp_sal)
 value ('pamitha','001','1990-11-07','70000'),
 ('samith','002','1990-06-22','75000'),
 ('dulanga','003','1990-02-01','80000'),
 ('nadun','004','1991-01-26','85000');







  • සාදා ගන්නාලද table එකෙහි සම්පූර්ණ විස්තරයක් ගැනීමට 
desc teacher;









  • Table එක බලාගැනීමට 
select * from teacher;








  • Table එකකින් අපට අවශ්‍ය දත්තයක් ලබාගැනීම 
select * from teacher where emp_name='samith';
මෙහිදී සිදුව ඇත්තෙ emp_name එක samith වන පුද්ගලයාගේ සියලුම විස්තර ලබාගැනීමයි






  • Like භාවිතය 
කිසියම් දත්තයක කොටසක් පමනක් ඇතුලත් කොට එම කොටස පමනක් සහිත දත්තයන් සියල්ල ගැනීම සදහා මෙය භාවිතා කරයි
select emp_name from teacher where b_day like'1990%';
උපන්දිනය 1990වෙන් ආරම්බවන සියලුදෙනගේ නම් ලබාගැනීම මෙමගින් සිදුවේ







  • ORDER BY භාවිතය 
ලබාගැනීමට අවශ්‍ය දත්තයක් කිසියම් Order එකකට ලබාගැනීම
select * from teacher order by emp_sal;
මෙහිදී emp_sal එක අඩුතම පුද්ගලයාගේ සිට වැඩිතම පුද්ගලයා දක්වා පිලිවෙලට සියලුම තොරතුරු ඉදිරිපත් කරයි







  • Table එකේ row එකක් delete කිරීම 
delete from teacher
where emp_name='samith';
මෙමගින් teacher කියන table එකෙහි samith යන පුද්ගලයාට අදාල තොරතුරු සියල්ල delete වේ .










  • select සමග < > = භාවිතය 
select emp_name,emp_sal
 from teacher
 where b_day>='1990/01/01';
මෙමගින් දැක් වෙනුයේ 1990/01/01 දිනට පසුව උපත ලද පුද්ගලයන්ගේ නම සහ වැටුප යන තොරතුරු ලබාගැනිමයි .










select emp_name,emp_sal
 from teacher
 where emp_sal<>'80000';
 <> ලකුන මගින් අදහස් කරනුයේ අසමාන යන්නයි ඒ අනුව වැටුප 80000ට අසමාන පුද්ගලයන් පිලිබද මෙමගින් ලැබේ .









  • Distinct භාවිතය 
select distinct emp_age from teacher;
මෙමගින් emp_age හි ඇති dublicate ඉවත්කොට එහි ඇති සියලුම දත්තයන් ලබාදිමයි .







  • Between භාවිතය 
 select emp_name,emp_sal,b_day
 from teacher
 where b_day between '1990-01-01'and '1991-01-01';
 1990/01/01 ත් 1991/01/01ත් අතර කාලසීමාවේදී උපත ලැබුවන් පිලිබදව මෙහිදි දක්වා ඇත 









  • Alter සහ default භාවිතය 
alter table teacher add d_no char(2)default '07';
alter භාවිතයෙන් table එකකට column එකක් add කිරීම හෝ delete කිරීම සිදුකල හැකිය .
.මෙහිදී gender නැමැති column එක  table එකට add කර ඇති අතර එම column එකෙහි 
සියල්ලම male ලබාදීම සදහා එයට default ව male යන්න ලබදී ඇත .







alter table teacher drop d_no;










  • is null සහ is not null භාවිතය 
 select emp_name from teacher where emp_sal is not null;
 මෙහිදී emp_sal එක null නොව්නු අයගේ තොරතුරු ලබාගෙන ඇත 







  • updata භවිතයෙන් දත්තයන් වෙනස් කිරීම 
update teacher 
set emp_sal ='90000'
where emp_name='samith';
මෙහිදී සිදුකරනුයේ emp_name එක samith වූ පුද්ගලයාගෙ වැටුප තිබූ අගයෙන් 90000ට වෙනස් කිරීමයි .









  • මුලින් අපි අධ්‍යනය කල ආකරයට tables කිහිපයක් සාදා ගනිමු 

create table OFFICES(OFFICE int primary key,CITY varchar(20),
 REGION varchar(20),MGR int,TARGET float(8,2),SALES float(8,2));
 insert into OFFICES value
 (22,'Denver','Western',108,'300000','186042'),
 (11,'New York','Eastern',106,'575000','692637'),
 (12,'chicago','Eastern',104,'800000','737042'),
 (13,'Atlanta','Eastern',null,'350000','367911'),
 ('21','Los Angeles','Western','108','725000','835915');



create table SALESREPS(EMPL_NUM int primary key,NAME varchar(20),
AGE int,REP_OFFICE int,TITLE varchar(20));
insert into SALESREPS value
(105,'Bill Adams',37,13,'Sales Rep'),
(109,'Mary Jones',31,11,'Sales Rep'),
(102,'Sue Smith',48,21,'Sales Rep'),
(106,'Sam Clark',52,11,'VP Sales'),
(104,'Bob Smith',33,12,'Sales Mgr'),
(101,'Dan Roberts',45,12,'Sales Rep'),
(110,'Tom Snyder',41,null,'Sales Rep'),
(108,'Larry Fitch',62,21,'Sales Mgr'),
(103,'Paul Cruz',29,12,'Sales Rep'),
(107,'Nancy Angelli',49,22,'Sales Rep');



create table orders(ORDER_NUM char(6) primary key,ORDER_DATE date,
CUST char(4),REP char(3),QTY int,AMOUNT float);
insert into orders value ('112961','1989-12-16','2117','106','7','315000'),
('113012','1990-01-11','2111','105','35','3745'),
('112989','1990-01-1-3','2101','106','6','1458');

create table customers(CUST_NUM char(4)primary key ,COMPANY varchar(30) ,
CUST_REP char(3) ,CREDIT_LIMIT float);
insert into  customers value
('2108','h&l','109','55000'),
('2117','jps','106','35000'),
('2122','treeway','105','30000');

JOIN භවිතය 

***List each salesperson and the city and region where they work.

SELECT NAME, CITY, REGION
FROM SALESREPS JOIN OFFICES
ON REP_OFFICE = OFFICE;









***List orders over $25,000, including the name of the salesperson who took the order and the name of
the customer who placed it.
SELECT ORDER_NUM, AMOUNT, COMPANY, NAME
FROM ORDERS JOIN CUSTOMERS ON CUST = CUST_NUM
JOIN SALESREPS ON REP = EMPL_NUM
WHERE AMOUNT > 25000.00;





Non-Equi-Joins
***List all combinations of salespeople and offices where the salesperson’s quota is more than that office’s
target, regardless of whether the salesperson works there.
SELECT NAME, QUOTA, CITY, TARGET
FROM SALESREPS, OFFICES
WHERE QUOTA > TARGET;


වැඩි දුර අධ්‍යනය සදහා 

තවත් table 2k නිර්මණය කරමු 













  • join භාවිතයෙන් 









  • outer join භාවිතය 








  • Inner join භාවිතය