Friday, July 17, 2009
Access specifires in dotnet
1. PUBLICAs the name specifies, it can be accessed from anywhere. If a member of a class is defined as public then it can be accessed anywhere in the class as well as outside the class. This means that objects can access and modify public fields, properties, methods.
2. PRIVATEAs the name suggests, it can't be accessed outside the class. Its the private property of the class and can be accessed only by the members of the class.
3. FRIEND/INTERNAL Friend & Internal mean the same. Friend is used in VB.NET. Internal is used in C#. Friends can be accessed by all classes within an assembly but not from outside the assembly.
4. PROTECTEDProtected variables can be used within the class as well as the classes that inherites this class.
5. PROTECTED FRIEND/PROTECTED INTERNALThe Protected Friend can be accessed by Members of the Assembly or the inheriting class, and ofcourse, within the class itself.
6. DEFAULTA Default property is a single property of a class that can be set as the default. This allows developers that use your class to work more easily with your default property because they do not need to make a direct reference to the property. Default properties cannot be initialized as Shared/Static or Private and all must be accepted at least on argument or parameter. Default properties do not promote good code readability, so use this option sparingly.
NormalForms and ddl,dcl,dml,tcl commands
DDL : CREATE, ALTER, DROP
DML : INSERT, UPDATE, DELETE
DCL : GRANT, REVOKE
TCL : COMMIT, SAVE POINT, ROLLBACK
DQL : SELECT
-- Normalization is a process of efficiently organizing data in the database.
-- goles of NF: There are two goals of the normalization process: eliminating redundant data (for example, storing the same data in more than one table) and ensuring data dependencies make sense (only storing related data in a table).
-- 1stNF : The first normal form (or 1NF) requires that the values in each column of a table are atomic. By atomic we mean that there are no sets of values within a column.
1NF --every row should be in atomic form....there should not be more than one value for an attribute in a row...
2NF --there should be no partial dependency. it means that there should be no dependency between part of a key to non-key. This does not happen if you choose a single attribute as your primary key.
3NF -- there should be no transitive dependecy. we can also say as there should be no Non-Key to Non-key dependency...
BCNF -- every determinant should be a candidate key.
DML : INSERT, UPDATE, DELETE
DCL : GRANT, REVOKE
TCL : COMMIT, SAVE POINT, ROLLBACK
DQL : SELECT
-- Normalization is a process of efficiently organizing data in the database.
-- goles of NF: There are two goals of the normalization process: eliminating redundant data (for example, storing the same data in more than one table) and ensuring data dependencies make sense (only storing related data in a table).
-- 1stNF : The first normal form (or 1NF) requires that the values in each column of a table are atomic. By atomic we mean that there are no sets of values within a column.
1NF --every row should be in atomic form....there should not be more than one value for an attribute in a row...
2NF --there should be no partial dependency. it means that there should be no dependency between part of a key to non-key. This does not happen if you choose a single attribute as your primary key.
3NF -- there should be no transitive dependecy. we can also say as there should be no Non-Key to Non-key dependency...
BCNF -- every determinant should be a candidate key.
Thursday, July 16, 2009
to change aspx extension to .gt
these changes enough to change ".aspx" extension to ".gt" in our application changes in web.config file add these
//add extension=".gt" type="System.Web.Compilation.PageBuildProvider" //
in
buildProviders
then add
//add path="*.gt" verb="*" type="System.Web.UI.PageHandlerFactory" validate="true" //
entry in
httpHandlers
then change all .aspx extensions to .gt in our application. now .gt will work as .aspx
Wednesday, July 15, 2009
dynamically adding columns and values for a grid
Dynamically adding columns and values for a grid
private void GetSamples()
{
Hashtable hashList = new Hashtable();
Hashtable rptDispHashList = new Hashtable();
IList reportRsltsList = _sampleUI.GetTestReportDetails(_caseId);
string ReferralNumber = "REF0710014";
DataTable dt = BuildDataTableHeader();
int fixedColCount=dt.Columns.Count;
dt = BuildDataTableHeaderForSampleParameter(ReferralNumber, dt);---------method used to add dynamic columns for a grid
dt = BuildDataTableHeaderForResultParameter(ReferralNumber, dt);
if(reportRsltsList.Count != 0)
{
foreach(IList reportList in reportRsltsList)
{
DataRow dr = dt.NewRow();
ReportResult rptRsult = (ReportResult)reportList[0];
Test test = (Test)reportList[1];
Patient patient = (Patient)reportList[2];
string billingType = reportList[3].ToString();
//dt = BuildDataTableHeaderForSampleParameter(rptRsult.AccessionNo);
dr[5] = rptRsult.ReferralNo;
dr[6] = test.TestName;
dr[7] = patient.Name;
dr[2] = rptRsult.ReportResultCodes.ReportResultCode;
dr[1] = rptRsult.SampleStatus;
dr[3] = rptRsult.IsPrimary;
dr[8] = rptRsult.Id;
dr[0] = rptRsult.AccessionNo;
dr[9] = rptRsult.ReportDesc;
dr[10] = rptRsult.ReportResultCodes.ReportResultID;
dr[11] = rptRsult.ReportDispatch.RptDispatchId;
dr[12] = rptRsult.ReportDispatch.RptDispatchCode.RptDispatchId;
dr[13] = rptRsult.SampleTypeCode;
dr[14] = test.TestId;
dr[15] = billingType;
if (rptRsult.ReportDispatch.CourierRefferenceNo != "")
dr[19] = rptRsult.ReportDispatch.CourierRefferenceNo;
dr[20] = rptRsult.ReportDispatch.rptDispatchDate;
_SampleTypesHash = (Hashtable)Session[SessionGlobals.SAMPLE_TYPES_LIST];
if (_SampleTypesHash != null)
{
if (_SampleTypesHash.ContainsKey(rptRsult.SampleTypeCode.ToString()))
dr[16] = _SampleTypesHash[rptRsult.SampleTypeCode.ToString()].ToString();
}
_TestsListHash = (Hashtable)Session[SessionGlobals.CASE_TEST_LIST];
if (_TestsListHash != null)
{
if (_TestsListHash.ContainsKey(test.TestId.ToString()))
dr[17] = _TestsListHash[test.TestId.ToString()].ToString();
}
dr[4] = reportList[4].ToString();
dr[18] = Convert.ToInt32(reportList[5].ToString());
//to get all sample parameter values
int i = fixedColCount;
Parameter[] sampleParValues = _lmsUI.GetSampleParamValues(rptRsult.AccessionNo);
foreach (Parameter parSamValues in sampleParValues)----------Adding dynamic column values in a grid
{
dr[i] = parSamValues.ParameterValue;
i++;
}
Parameter[] resultParValues = _lmsUI.GetResultParamValues(rptRsult.AccessionNo);
foreach (Parameter parResultValues in resultParValues)
{
dr[i] = parResultValues.ParameterValue;
i++;
}
//end
dt.Rows.Add(dr);
if(!hashList.Contains(rptRsult.ReferralNo))
{
IList ilis = new ArrayList();
ilis.Add(test.TestId);
ilis.Add(rptRsult.SampleStatus);
ilis.Add(rptRsult.ReportResultCodes.ReportResultCode);
IList ilisT = new ArrayList();
ilisT.Add(ilis);
hashList.Add(rptRsult.ReferralNo, ilisT);
}
else
{
IList ilis = new ArrayList();
IList previousList = (IList)hashList[rptRsult.ReferralNo];
ilis.Add(test.TestId);
ilis.Add(rptRsult.SampleStatus);
ilis.Add(rptRsult.ReportResultCodes.ReportResultCode);
previousList.Add(ilis);
}
if(rptRsult.AccessionNo != "")
{
rptDispHashList.Add(rptRsult.AccessionNo, rptRsult.ReportDispatch);
}
}
uxSaveResultBtn.Enabled = true;
uxReportDelBtn.Enabled = false;
}
else
{
DataRow dr = dt.NewRow();
dt.Rows.Add(dr);
uxSaveResultBtn.Enabled = false;
uxReportDelBtn.Enabled = false;
}
uxSampleGrid.DataSource = dt;
uxSampleGrid.DataBind();
ViewState["HashList"] = hashList;
ViewState["ReportDispatchHashList"] = rptDispHashList;
}
method for adding dynamic columns
private DataTable BuildDataTableHeaderForSampleParameter(string RefNo, DataTable dtable)
{
DataTable dt = dtable;
Parameter[] sampleParNames = _lmsUI.GetSampleParamNames(RefNo);
foreach (Parameter p in sampleParNames)
{
string parName=p.ParameterName;
DataColumn datCol = new DataColumn(parName, System.Type.GetType("System.String"));
dt.Columns.Add(datCol);
}
return dt;
}
private void GetSamples()
{
Hashtable hashList = new Hashtable();
Hashtable rptDispHashList = new Hashtable();
IList reportRsltsList = _sampleUI.GetTestReportDetails(_caseId);
string ReferralNumber = "REF0710014";
DataTable dt = BuildDataTableHeader();
int fixedColCount=dt.Columns.Count;
dt = BuildDataTableHeaderForSampleParameter(ReferralNumber, dt);---------method used to add dynamic columns for a grid
dt = BuildDataTableHeaderForResultParameter(ReferralNumber, dt);
if(reportRsltsList.Count != 0)
{
foreach(IList reportList in reportRsltsList)
{
DataRow dr = dt.NewRow();
ReportResult rptRsult = (ReportResult)reportList[0];
Test test = (Test)reportList[1];
Patient patient = (Patient)reportList[2];
string billingType = reportList[3].ToString();
//dt = BuildDataTableHeaderForSampleParameter(rptRsult.AccessionNo);
dr[5] = rptRsult.ReferralNo;
dr[6] = test.TestName;
dr[7] = patient.Name;
dr[2] = rptRsult.ReportResultCodes.ReportResultCode;
dr[1] = rptRsult.SampleStatus;
dr[3] = rptRsult.IsPrimary;
dr[8] = rptRsult.Id;
dr[0] = rptRsult.AccessionNo;
dr[9] = rptRsult.ReportDesc;
dr[10] = rptRsult.ReportResultCodes.ReportResultID;
dr[11] = rptRsult.ReportDispatch.RptDispatchId;
dr[12] = rptRsult.ReportDispatch.RptDispatchCode.RptDispatchId;
dr[13] = rptRsult.SampleTypeCode;
dr[14] = test.TestId;
dr[15] = billingType;
if (rptRsult.ReportDispatch.CourierRefferenceNo != "")
dr[19] = rptRsult.ReportDispatch.CourierRefferenceNo;
dr[20] = rptRsult.ReportDispatch.rptDispatchDate;
_SampleTypesHash = (Hashtable)Session[SessionGlobals.SAMPLE_TYPES_LIST];
if (_SampleTypesHash != null)
{
if (_SampleTypesHash.ContainsKey(rptRsult.SampleTypeCode.ToString()))
dr[16] = _SampleTypesHash[rptRsult.SampleTypeCode.ToString()].ToString();
}
_TestsListHash = (Hashtable)Session[SessionGlobals.CASE_TEST_LIST];
if (_TestsListHash != null)
{
if (_TestsListHash.ContainsKey(test.TestId.ToString()))
dr[17] = _TestsListHash[test.TestId.ToString()].ToString();
}
dr[4] = reportList[4].ToString();
dr[18] = Convert.ToInt32(reportList[5].ToString());
//to get all sample parameter values
int i = fixedColCount;
Parameter[] sampleParValues = _lmsUI.GetSampleParamValues(rptRsult.AccessionNo);
foreach (Parameter parSamValues in sampleParValues)----------Adding dynamic column values in a grid
{
dr[i] = parSamValues.ParameterValue;
i++;
}
Parameter[] resultParValues = _lmsUI.GetResultParamValues(rptRsult.AccessionNo);
foreach (Parameter parResultValues in resultParValues)
{
dr[i] = parResultValues.ParameterValue;
i++;
}
//end
dt.Rows.Add(dr);
if(!hashList.Contains(rptRsult.ReferralNo))
{
IList ilis = new ArrayList();
ilis.Add(test.TestId);
ilis.Add(rptRsult.SampleStatus);
ilis.Add(rptRsult.ReportResultCodes.ReportResultCode);
IList ilisT = new ArrayList();
ilisT.Add(ilis);
hashList.Add(rptRsult.ReferralNo, ilisT);
}
else
{
IList ilis = new ArrayList();
IList previousList = (IList)hashList[rptRsult.ReferralNo];
ilis.Add(test.TestId);
ilis.Add(rptRsult.SampleStatus);
ilis.Add(rptRsult.ReportResultCodes.ReportResultCode);
previousList.Add(ilis);
}
if(rptRsult.AccessionNo != "")
{
rptDispHashList.Add(rptRsult.AccessionNo, rptRsult.ReportDispatch);
}
}
uxSaveResultBtn.Enabled = true;
uxReportDelBtn.Enabled = false;
}
else
{
DataRow dr = dt.NewRow();
dt.Rows.Add(dr);
uxSaveResultBtn.Enabled = false;
uxReportDelBtn.Enabled = false;
}
uxSampleGrid.DataSource = dt;
uxSampleGrid.DataBind();
ViewState["HashList"] = hashList;
ViewState["ReportDispatchHashList"] = rptDispHashList;
}
method for adding dynamic columns
private DataTable BuildDataTableHeaderForSampleParameter(string RefNo, DataTable dtable)
{
DataTable dt = dtable;
Parameter[] sampleParNames = _lmsUI.GetSampleParamNames(RefNo);
foreach (Parameter p in sampleParNames)
{
string parName=p.ParameterName;
DataColumn datCol = new DataColumn(parName, System.Type.GetType("System.String"));
dt.Columns.Add(datCol);
}
return dt;
}
using "hashtable" and getting values in .cs file
hashtable at "dao"
public Hashtable GetEmpGroups(string emploginId)
{
Hashtable hashEmpGroups = new Hashtable();
SqlConnection conn = new SqlConnection(_connStr);
StringBuilder gname = new StringBuilder();
StringBuilder id = new StringBuilder();
string sqlQury = "SELECT LG.GROUP_NAME,LEG.GROUP_ID FROM LMS_EMP_GROUP LEG LEFT JOIN LMS_GROUP LG ON LEG.GROUP_ID=LG.GROUP_ID WHERE EMP_LOGIN_ID='" + emploginId + "'";
try
{
conn.Open();
SqlDataReader dr = SqlHelper.ExecuteReader(_connStr, CommandType.Text, sqlQury);
while (dr.Read())
{
if (gname.ToString() == "")
{
gname.Append(dr[0].ToString());
id.Append(dr[1].ToString());
}
else
{
gname.Append("," + dr[0].ToString());
id.Append("," + dr[1].ToString());
}
}
hashEmpGroups.Add("Groups", gname);
hashEmpGroups.Add("GroupIds", id);
dr.Close();
dr.Dispose();
return hashEmpGroups;
}
catch (Exception ex)
{
throw new ApplicationException(ex.Message);
}
finally
{
conn.Close();
conn.Dispose();
}
}
getting hashtable values at .cs file
Hashtable groupnames=GetEmpGroups(emp.EmpLoginId);
dr[3] = groupnames["Groups"].ToString();
public Hashtable GetEmpGroups(string emploginId)
{
Hashtable hashEmpGroups = new Hashtable();
SqlConnection conn = new SqlConnection(_connStr);
StringBuilder gname = new StringBuilder();
StringBuilder id = new StringBuilder();
string sqlQury = "SELECT LG.GROUP_NAME,LEG.GROUP_ID FROM LMS_EMP_GROUP LEG LEFT JOIN LMS_GROUP LG ON LEG.GROUP_ID=LG.GROUP_ID WHERE EMP_LOGIN_ID='" + emploginId + "'";
try
{
conn.Open();
SqlDataReader dr = SqlHelper.ExecuteReader(_connStr, CommandType.Text, sqlQury);
while (dr.Read())
{
if (gname.ToString() == "")
{
gname.Append(dr[0].ToString());
id.Append(dr[1].ToString());
}
else
{
gname.Append("," + dr[0].ToString());
id.Append("," + dr[1].ToString());
}
}
hashEmpGroups.Add("Groups", gname);
hashEmpGroups.Add("GroupIds", id);
dr.Close();
dr.Dispose();
return hashEmpGroups;
}
catch (Exception ex)
{
throw new ApplicationException(ex.Message);
}
finally
{
conn.Close();
conn.Dispose();
}
}
getting hashtable values at .cs file
Hashtable groupnames=GetEmpGroups(emp.EmpLoginId);
dr[3] = groupnames["Groups"].ToString();
dynamically creating controls based on "db" values
int testId = Convert.ToInt32(uxTestId.Value);
string accessionNo = uxHidAccessNo.Value;
IList ListData = new ArrayList();
IList valueData = new ArrayList();
ListData = _lmsUI.getDataReqAtSamCollectionDetailsListForResultPopup(testId);
valueData = _lmsUI.getDataReqAtSampleCollectionValueListRorResultPopup(accessionNo);
int i = 0;
foreach (DataRequiredAtSampleCollection samData in ListData)
{
string[] sd = null;
Label l1 = new Label();
l1.ID = "uxLbl1" + i;
l1.Text = samData.ParameterName;
Label l2 = new Label();
l2.Text = samData.ParameterId.ToString();
l2.Visible = false;
TextBox t1 = new TextBox();
t1.ID = "uxValueTxt" + i;
if (samData.DataType == "LargeText")
{
t1.TextMode = TextBoxMode.MultiLine;
t1.Width = 200;
t1.Height = 50;
t1.Font.Size = 8;
}
if (samData.DataType == "Text" samData.DataType == "Number" samData.DataType == "LargeText")
{
foreach (DataRequiredAtSampleCollection value in valueData)
{
if (samData.ParameterId == value.ParameterId)
{
t1.Text = value.Value;
}
}
}
if (samData.DataType == "Number")
{
t1.Attributes.Add("OnKeyPress", "showValues();");
}
DropDownList drop = new DropDownList();
drop.Width = 155;
drop.ID = "uxValueDdl" + i;
if (samData.Value != "")
{
sd = samData.Value.Split(',');
int k = 0;
foreach (string s in sd)
{
if (s != "")
{
drop.Items.Insert(k, s);
k++;
}
}
drop.Items.Insert(0, "");
foreach (DataRequiredAtSampleCollection value in valueData)
{
if (samData.ParameterId == value.ParameterId)
{
drop.SelectedItem.Text = value.Value.Trim();
}
}
}
TableCell tcell1 = new TableCell();
tcell1.Controls.Add(l1);
TableCell tcell2 = new TableCell();
tcell2.Controls.Add(l2);
TableCell tcell3 = new TableCell();
if (samData.DataType != "List")
{
tcell3.Controls.Add(t1);
}
else
{
tcell3.Controls.Add(drop);
}
TableRow tr1 = new TableRow();
tr1.Cells.Add(tcell1);
tr1.Cells.Add(tcell2);
tr1.Cells.Add(tcell3);
uxDynamicTb.Controls.Add(tr1);
uxSaveBtn.Visible = true;
uxCancelBtn.Visible = true;
i++;
}
string accessionNo = uxHidAccessNo.Value;
IList ListData = new ArrayList();
IList valueData = new ArrayList();
ListData = _lmsUI.getDataReqAtSamCollectionDetailsListForResultPopup(testId);
valueData = _lmsUI.getDataReqAtSampleCollectionValueListRorResultPopup(accessionNo);
int i = 0;
foreach (DataRequiredAtSampleCollection samData in ListData)
{
string[] sd = null;
Label l1 = new Label();
l1.ID = "uxLbl1" + i;
l1.Text = samData.ParameterName;
Label l2 = new Label();
l2.Text = samData.ParameterId.ToString();
l2.Visible = false;
TextBox t1 = new TextBox();
t1.ID = "uxValueTxt" + i;
if (samData.DataType == "LargeText")
{
t1.TextMode = TextBoxMode.MultiLine;
t1.Width = 200;
t1.Height = 50;
t1.Font.Size = 8;
}
if (samData.DataType == "Text" samData.DataType == "Number" samData.DataType == "LargeText")
{
foreach (DataRequiredAtSampleCollection value in valueData)
{
if (samData.ParameterId == value.ParameterId)
{
t1.Text = value.Value;
}
}
}
if (samData.DataType == "Number")
{
t1.Attributes.Add("OnKeyPress", "showValues();");
}
DropDownList drop = new DropDownList();
drop.Width = 155;
drop.ID = "uxValueDdl" + i;
if (samData.Value != "")
{
sd = samData.Value.Split(',');
int k = 0;
foreach (string s in sd)
{
if (s != "")
{
drop.Items.Insert(k, s);
k++;
}
}
drop.Items.Insert(0, "");
foreach (DataRequiredAtSampleCollection value in valueData)
{
if (samData.ParameterId == value.ParameterId)
{
drop.SelectedItem.Text = value.Value.Trim();
}
}
}
TableCell tcell1 = new TableCell();
tcell1.Controls.Add(l1);
TableCell tcell2 = new TableCell();
tcell2.Controls.Add(l2);
TableCell tcell3 = new TableCell();
if (samData.DataType != "List")
{
tcell3.Controls.Add(t1);
}
else
{
tcell3.Controls.Add(drop);
}
TableRow tr1 = new TableRow();
tr1.Cells.Add(tcell1);
tr1.Cells.Add(tcell2);
tr1.Cells.Add(tcell3);
uxDynamicTb.Controls.Add(tr1);
uxSaveBtn.Visible = true;
uxCancelBtn.Visible = true;
i++;
}
dynamically created controls finding method
function call
===========
IterateControls(this);
method implementaion
==================
private void IterateControls(Control parent)
{
foreach (Control child in parent.Controls)
{
if (child.GetType().ToString().Equals("System.Web.UI.WebControls.TextBox") && child.ID.IndexOf("uxValueTxt") == 0)
{
TextBox textbox = (TextBox)child;
_textString += textbox.Text + ",";
}
else
if (child.GetType().ToString().Equals("System.Web.UI.WebControls.DropDownList") && child.ID.IndexOf("uxValueDdl") == 0)
{
DropDownList dropdown = (DropDownList)child;
if (dropdown.Items.Count != 0)
{
_textString += dropdown.SelectedItem.Text + ",";
}
}
if (child.Controls.Count > 0)
{
IterateControls(child);
}
}
uxHidTextString.Value = _textString;
}
===========
IterateControls(this);
method implementaion
==================
private void IterateControls(Control parent)
{
foreach (Control child in parent.Controls)
{
if (child.GetType().ToString().Equals("System.Web.UI.WebControls.TextBox") && child.ID.IndexOf("uxValueTxt") == 0)
{
TextBox textbox = (TextBox)child;
_textString += textbox.Text + ",";
}
else
if (child.GetType().ToString().Equals("System.Web.UI.WebControls.DropDownList") && child.ID.IndexOf("uxValueDdl") == 0)
{
DropDownList dropdown = (DropDownList)child;
if (dropdown.Items.Count != 0)
{
_textString += dropdown.SelectedItem.Text + ",";
}
}
if (child.Controls.Count > 0)
{
IterateControls(child);
}
}
uxHidTextString.Value = _textString;
}
Monday, July 13, 2009
All types of joins
There are six type of join in SQL 2000
1) INNER JOIN
2) OUTER JOIN
3) CROSS JOIN
4) EQUI JOIN
5) NATURAL JOIN
6) SELF JOIN
1) INNER JOIN :- PRODUCESS THE RESULT SET OF MATCHING ROWS
ONLY FROM THE SPECIFIED TABLES.
EXAMPLE---
SELECT COLUMN_LIST FROM 1ST_TABLE_NAME JOIN 2ND_TABLE_NAME
ON
1ST_TABLE_NAME.MATCING_COLUMN=2ND_TABLE_NAME.MATCING_COLUMN
2) OUTER JOIN :- DISPLAY ALL THE ROWS FROM THE FIRST TABLE
AND MATCHING ROWS FROM THE SECOND TABLE.
EXAMPLE---
SELECT COLUMN_LIST FROM 1ST_TABLE_NAME OUTER JOIN
2ND_TABLE_NAME
ON
1ST_TABLE_NAME.MATCING_COLUMN=2ND_TABLE_NAME.MATCING_COLUMN
THERE ARE THREE TYPES OF OUTER JOIN:
A)LEFT OUTER JOIN.
B)RIGHT OUTER JOIN.
C)FULL OUTER JOIN
A)LFET OUTER JOIN :- DISPLAYS ALL THE ROWS FROM THE FIRST
TABLE AND MATCHING ROWS FROM THE
SECOND TABLE.
EXAMPLE---
SELECT COLUMN_LIST FROM 1ST_TABLE_NAME LEFT OUTER JOIN
2ND_TABLE_NAME ON
1ST_TABLE_NAME.MATCING_COLUMN=2ND_TABLE_NAME.MATCING_COLUMN
A)RIGHT OUTER JOIN :- DISPLAYS ALL THE ROWS FROM THE
SECOND TABLE AND MATCHING ROWS FROM
THE FIRST TABLE.
EXAMPLE---
SELECT COLUMN_LIST FROM 1ST_TABLE_NAME RIGHT OUTER JOIN
2ND_TABLE_NAME ON
1ST_TABLE_NAME.MATCING_COLUMN=2ND_TABLE_NAME.MATCING_COLUMN
A)FULL OUTER JOIN :- DISPLAYS ALL MATCHING AND NONMATCHING
ROWS OF BOTH THE TABLES.
EXAMPLE---
SELECT COLUMN_LIST FROM 1ST_TABLE_NAME FULL OUTER JOIN
2ND_TABLE_NAME ON
1ST_TABLE_NAME.MATCING_COLUMN=2ND_TABLE_NAME.MATCING_COLUMN
3)CROSS JOIN :- IN THIS TYPE OF JOIN, EACH ROWS FROM THE
JOIN WITH EACH ROWS FROM THE SECOND TABLE
WITHOUT ANY CONDTION.
ALSO CALLED AS CARTESIAN PRODUCT.
EXAMPLE---
SELECT COLUMN_LIST FROM 1ST_TABLE_NAME CROSS JOIN
2ND_TABLE_NAME
4) EQUI JOIN :- DISPLAYS ALL THE MATHCING ROWS FROM JOINED
TABLE. AND ALSO DISPLAYS REDUNDANT VALUES.
IN THIS WE USE * SIGN TO JOIN THE TABLE.
EXAMPLE---
SELECT * FROM 1ST_TABLE_NAME JOIN 2ND_TABLE_NAME
ON
1ST_TABLE_NAME.MATCING_COLUMN=2ND_TABLE_NAME.MATCING_COLUMN
5)NATURAL JOIN :- DISPLAYS ALL THE MATHCING ROWS FROM
JOINED TABLE.IT RESTRICT
REDUNDANT VALUES.
6)SELF JOIN :- IN THIS TABLE JOIN WITH ITSELF WITH
DIFFERENT ALIAS NAME.
ASSUME DEPARTMENT IS A TABLE:
SELECT A.DEP_NAME,B.MANAGER_ID(COLUMN LIST) FROM DEPARTMENT
A JOIN
DEPARTMENT B
ON A.MANAGER_ID=B.MANAGER_ID
1) INNER JOIN
2) OUTER JOIN
3) CROSS JOIN
4) EQUI JOIN
5) NATURAL JOIN
6) SELF JOIN
1) INNER JOIN :- PRODUCESS THE RESULT SET OF MATCHING ROWS
ONLY FROM THE SPECIFIED TABLES.
EXAMPLE---
SELECT COLUMN_LIST FROM 1ST_TABLE_NAME JOIN 2ND_TABLE_NAME
ON
1ST_TABLE_NAME.MATCING_COLUMN=2ND_TABLE_NAME.MATCING_COLUMN
2) OUTER JOIN :- DISPLAY ALL THE ROWS FROM THE FIRST TABLE
AND MATCHING ROWS FROM THE SECOND TABLE.
EXAMPLE---
SELECT COLUMN_LIST FROM 1ST_TABLE_NAME OUTER JOIN
2ND_TABLE_NAME
ON
1ST_TABLE_NAME.MATCING_COLUMN=2ND_TABLE_NAME.MATCING_COLUMN
THERE ARE THREE TYPES OF OUTER JOIN:
A)LEFT OUTER JOIN.
B)RIGHT OUTER JOIN.
C)FULL OUTER JOIN
A)LFET OUTER JOIN :- DISPLAYS ALL THE ROWS FROM THE FIRST
TABLE AND MATCHING ROWS FROM THE
SECOND TABLE.
EXAMPLE---
SELECT COLUMN_LIST FROM 1ST_TABLE_NAME LEFT OUTER JOIN
2ND_TABLE_NAME ON
1ST_TABLE_NAME.MATCING_COLUMN=2ND_TABLE_NAME.MATCING_COLUMN
A)RIGHT OUTER JOIN :- DISPLAYS ALL THE ROWS FROM THE
SECOND TABLE AND MATCHING ROWS FROM
THE FIRST TABLE.
EXAMPLE---
SELECT COLUMN_LIST FROM 1ST_TABLE_NAME RIGHT OUTER JOIN
2ND_TABLE_NAME ON
1ST_TABLE_NAME.MATCING_COLUMN=2ND_TABLE_NAME.MATCING_COLUMN
A)FULL OUTER JOIN :- DISPLAYS ALL MATCHING AND NONMATCHING
ROWS OF BOTH THE TABLES.
EXAMPLE---
SELECT COLUMN_LIST FROM 1ST_TABLE_NAME FULL OUTER JOIN
2ND_TABLE_NAME ON
1ST_TABLE_NAME.MATCING_COLUMN=2ND_TABLE_NAME.MATCING_COLUMN
3)CROSS JOIN :- IN THIS TYPE OF JOIN, EACH ROWS FROM THE
JOIN WITH EACH ROWS FROM THE SECOND TABLE
WITHOUT ANY CONDTION.
ALSO CALLED AS CARTESIAN PRODUCT.
EXAMPLE---
SELECT COLUMN_LIST FROM 1ST_TABLE_NAME CROSS JOIN
2ND_TABLE_NAME
4) EQUI JOIN :- DISPLAYS ALL THE MATHCING ROWS FROM JOINED
TABLE. AND ALSO DISPLAYS REDUNDANT VALUES.
IN THIS WE USE * SIGN TO JOIN THE TABLE.
EXAMPLE---
SELECT * FROM 1ST_TABLE_NAME JOIN 2ND_TABLE_NAME
ON
1ST_TABLE_NAME.MATCING_COLUMN=2ND_TABLE_NAME.MATCING_COLUMN
5)NATURAL JOIN :- DISPLAYS ALL THE MATHCING ROWS FROM
JOINED TABLE.IT RESTRICT
REDUNDANT VALUES.
6)SELF JOIN :- IN THIS TABLE JOIN WITH ITSELF WITH
DIFFERENT ALIAS NAME.
ASSUME DEPARTMENT IS A TABLE:
SELECT A.DEP_NAME,B.MANAGER_ID(COLUMN LIST) FROM DEPARTMENT
A JOIN
DEPARTMENT B
ON A.MANAGER_ID=B.MANAGER_ID
Subscribe to:
Comments (Atom)
