MySQL හි භාවිත වන මූලික command සලකා බලමු
- මුලින්ම database එකක් create කරන ආකාරය බලමු
- Create කරපු database එක භාවිතයට ගැනීම
USE WAPLAK;
- Database එක තුල ඇති tables මොනවදැයි බැලීම
මෙය අලුතින් සාදන ලද්දක් නිස කිසිදු table එකක් නොමැත
- Table නිර්මාණය කිරිම
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 එකෙහි සම්පූර්ණ විස්තරයක් ගැනීමට
- Table එක බලාගැනීමට
- Table එකකින් අපට අවශ්ය දත්තයක් ලබාගැනීම
මෙහිදී සිදුව ඇත්තෙ emp_name එක samith වන පුද්ගලයාගේ සියලුම විස්තර ලබාගැනීමයි
- Like භාවිතය
select emp_name from teacher where b_day like'1990%';
උපන්දිනය 1990වෙන් ආරම්බවන සියලුදෙනගේ නම් ලබාගැනීම මෙමගින් සිදුවේ
- ORDER BY භාවිතය
select * from teacher order by emp_sal;
මෙහිදී emp_sal එක අඩුතම පුද්ගලයාගේ සිට වැඩිතම පුද්ගලයා දක්වා පිලිවෙලට සියලුම තොරතුරු ඉදිරිපත් කරයි
- Table එකේ row එකක් delete කිරීම
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 නිර්මණය කරමු