نقطه سرخط

تلفیق دنیای مجازی ,علوم ,احساسات و تجربیات

نقطه سرخط

تلفیق دنیای مجازی ,علوم ,احساسات و تجربیات

مشوش استــ حــالم
خیــال رفتــنـ دارمـ

طبقه بندی موضوعی
آخرین نظرات

۸ مطلب با کلمه‌ی کلیدی «esay learning sql» ثبت شده است

حذف, فعال و غیر فعال کردن CONSTRAINTع

 برای حذف یک constraint  ابتدا می بایست نام ان را از جدول user_constraint مشخص کنیم و سپس با استفاده از این دستور که در زیر عرض میکنم خدمتتون بتونیم ذفش کنیم

ALTER TABLE table_name DROP PRIMARY KEY |UNIQUE(column)CONSTRAINT  constraint (CASCADE);

دقت داشته باشید که cascade  سبب حذف تمامی CONSTRAINT هــا د

 

برای حذف یک ستون از این دستور بهره می بریم

ALTER TABLE tablname DROP CoLUMN column_name;

مثال

ALTER TABLE student  DROP COLUMN age;

oR

تغییر ستون در اسکوال

 

برای تغییر data type ستون , اندازه , مقدار پیشفرض و constraint  از نوع  NOT NULL از دستور ALTER TABLE با عبارت MODIFY  استفاده می کنیم

ALTER TABLE tablename

MODIFY(column datatyp [DEFULT EXPR][NOT NULL][,column datatyp]…);

برای مثال

ALTER TABLE student

MODIFY (Lname varchar , name Nvarchar2);

با استفاده از این دستور می شود اعمال زیر را انجام داد

افزاریش اندازه یک ستون با مقدار اعشار

کاهش اندازه یک ستون اگر جدول خالی یا مقدار ستون NULL باشد

تغییر قدار پیشفرض

تعریف Constraint  از نوع NOT NULL اگر جدول  دارای هیچ مقدار تکراری در ان ستون نبشد

 

با استفاده از دستورALTER TABLE  امکان افزودن ستون جدید وجود دارد

ALTER TABLE tabalename

Add(clumn datatype [DEFULT EXPR][NOT NULL][,clumn datataype..]);

برای نمونه

ALTER TABLE student

Add(Nom NUMBER);

نکاتی که در استفاده از این دستور می بایست بدان توجه ویژه داشت

اول اینکه با استفاده از دستور فوق امکان ایجاد ستون و ستون های جدید در یک جدول وجود دارد

دوم امکان تعریف مقدار پیشفرض برای هر ستون وجود دارد

و سوم اینکه نمی توان محل فیزیکی ستون ها را مشخص کرد و ستون ها به پیشفرض بعد از اخرین ستن جدول ایجاد ی شود

 

HAVING clause IN sql

با روش استفاده از group byE  اشنا شدیم حالا در ادامه لازمه تا ذکر کنیم که برای اینکه شرطی برای دستور SELECT مون که دارای GROUP BYE هست تعیین کنیم در ادامه ی کد از having استفاده می کنیم 

SELECT column1, 
SUM(column2)

FROM "list-of-tables"

GROUP BY "column-list"

HAVING "condition";

برای مثال 

SELECT name,avg(salary)  from employe

group bye name

کد بالا میگه نام و میانگین حقوق افراد رو از جدول گفته شده بگیر. خوب اگه برای ما یه شرط دیگه هم گداشته باشن مثلا کسانی که میانگین حقوقشون بالاتر از 200000 باشه رو بگن بگیر باید اینظور عمل کنیم 

select name,avg(salary)  from employe 

group by name

having avg(salary)>200000;

انشاا.. که تونسته باشم حقیقت مطلبو رسونده باشم 

GROUP BYE in SQL

GROUP BYE 

این عبارت در دستور select  ردیف های یک جدول را به قسمت های کوچکتر تقسیم می کند در این صورت توابع گروهی به جای اینکه بر روی تمامی ردیف های جدول اعمال بشن بر روی یک گروه خاص تاثیر میزارن 

SELECT column1, 
SUM(column2)
 
FROM "list-of-tables"
 
GROUP BY "column-list";

items_ordered

customerid order_date item quantity price
10330 30-Jun-1999 Pogo stick 1 28.00
10101 30-Jun-1999 Raft 1 58.00
10298 01-Jul-1999 Skateboard 1 33.00
10101 01-Jul-1999 Life Vest 4 125.00
10299 06-Jul-1999 Parachute 1 1250.00
10339 27-Jul-1999 Umbrella 1 4.50
10449 13-Aug-1999 Unicycle 1 180.79
10439 14-Aug-1999 Ski Poles 2 25.50
10101 18-Aug-1999 Rain Coat 1 18.30
10449 01-Sep-1999 Snow Shoes 1 45.00
10439 18-Sep-1999 Tent 1 88.00
10298 19-Sep-1999 Lantern 2 29.00
10410 28-Oct-1999 Sleeping Bag 1 89.22
10438 01-Nov-1999 Umbrella 1 6.75
10438 02-Nov-1999 Pillow 1 8.50
10298 01-Dec-1999 Helmet 1 22.00
10449 15-Dec-1999 Bicycle 1 380.50
10449 22-Dec-1999 Canoe 1 280.00
10101 30-Dec-1999 Hoola Hoop 3 14.75
10330 01-Jan-2000 Flashlight 4 28.00
10101 02-Jan-2000 Lantern 1 16.00
10299 18-Jan-2000 Inflatable Mattress 1 38.00
10438 18-Jan-2000 Tent 1 79.99
10413 19-Jan-2000 Lawnchair 4 32.00
10410 30-Jan-2000 Unicycle 1 192.50
10315 2-Feb-2000 Compass 1 8.00
10449 29-Feb-2000 Flashlight 1 4.50
10101 08-Mar-2000 Sleeping Bag 2 88.70
10298 18-Mar-2000 Pocket Knife 1 22.38
10449 19-Mar-2000 Canoe paddle 2 40.00
10298 01-Apr-2000 Ear Muffs 1 12.50
10330 19-Apr-2000 Shovel 1 16.75
 
 

 

خوب برای مثال محسوس تر این جدول رو در نظر بگیرین 

SELECT quantity, max(price)
 
FROM items_ordered
 
GROUP BY quantity;