Beruflich Dokumente
Kultur Dokumente
SQL Server
Es un sistema para la gestión de bases de datos producido por Microsoft
basado en el modelo relacional, cuya principal función es la de
almacenar y consultar datos solicitados por otras aplicaciones, sin
importar si están en la misma computadora, si están conectadas a una
red local o si están conectadas a través de internet (plataforma “Cloud-
Ready”).
UANL 2017
Análisis de Datos Avanzados
SQL Server
UANL 2017
Análisis de Datos Avanzados
SQL Server
SQL Server permite que varios clientes usen la misma base de datos al mismo
tiempo controlando el acceso simultaneo mediante 2 modos de control de
concurrencia:
UANL 2017
Análisis de Datos Avanzados
SQL Server
¿Qué es SQL?
UANL 2017
Análisis de Datos Avanzados
SQL Server
Concepto de SQL
2. El programa leerá todos los datos en la base y seleccionara los datos que
satisfagan la condición
UANL 2017
Análisis de Datos Avanzados
SQL Server
Estructura General SELECT, ALL/DISTINCT, *, AS,
FROM, WHERE
Comparación IN, BETWEEN, LIKE
Agrupar GROUP BY, HAVING, COUNT(),
SUM(), AVG(),MAX(), MIN()
UANL 2017
Análisis de Datos Avanzados
General Structure
SELECT [ALL / DISTINCT] expr1 [AS col1], expr2 [AS col2] ;
FROM tablename WHERE condition
El “query” seleccionará renglones del insumo: tabla1 y el resultado lo pondrá en forma de
otra tabla
DISTINCT eliminará la duplicidad en el output, mientras que ALL mantendrá todos los
renglones duplicados
UANL 2017
Análisis de Datos Avanzados
General Structure
field type width contents
id numeric 4 student id number
name character 10 name
dob date 8 date of birth
sex character 1 sex: M / F
class character 2 class
hcode character 1 house code: R, Y, B, G
dcode character 3 district code
remission logical 1 fee remission
mtest numeric 2 Math test score
UANL 2017
Análisis de Datos Avanzados
General Structure
SELECT * FROM student
UANL 2017
Análisis de Datos Avanzados
General Structure
SELECT name, hcode, clase FROM students
WHERE class=“1A”
UANL 2017
Análisis de Datos Avanzados
General Structure
UANL 2017
Análisis de Datos Avanzados
General Structure
SELECT DISTINCT dcode FROM student
WHERE hcode = “R”
dcode
SSP
YMT
UANL 2017
Análisis de Datos Avanzados
General Structure
List the names and ages (1 d.p.) of 1B girls.
Functions:
# days : DATE( ) – dob
# years :(DATE( ) – dob) / 365
1 d.p.: ROUND(__ , 1)
UANL 2017
Análisis de Datos Avanzados
General Structure
List the names and ages (1 d.p.) of 1B girls.
UANL 2017
Análisis de Datos Avanzados
General Structure
List the names, id of 1A students with no fee remission.
SELECT name, id, class FROM student ;
WHERE class="1A" AND NOT remission
name id class
Peter 9801 1A
Result Mary 9802 1A
Luke 9810 1A
Bobby 9811 1A
Aaron 9812 1A
Ron 9813 1A
Gigi 9824 1A
: : :
UANL 2017
Análisis de Datos Avanzados
Comparison
UANL 2017
Análisis de Datos Avanzados
Comparison
List the students who were born on Wednesday or
Saturdays.
SELECT name, class, CDOW(dob) AS bdate ;
FROM student ;
WHERE DOW(dob) IN (4,7)
name class bdate
Result Peter 1A Wednesday
Wendy 1B Wednesday
Kevin 1C Saturday
Luke 1A Wednesday
Aaron 1A Saturday
: : :
UANL 2017
Análisis de Datos Avanzados
Comparison
List the students who were not born in January,
March, June, September.
SELECT name, class, dob FROM student ;
WHERE MONTH(dob) NOT IN (1,3,6,9)
name class dob
Result Wendy 1B 07/09/86
Tobe 1B 10/17/86
Eric 1C 05/05/87
Patty 1C 08/13/87
Kevin 1C 11/21/87
Bobby 1A 02/16/86
Aaron 1A 08/02/86
: : :
UANL 2017
Análisis de Datos Avanzados
Comparison
List the 1A students whose Math test score is
between 80 and 90 (incl.)
SELECT name, mtest FROM student ;
WHERE class="1A" AND ;
mtest BETWEEN 80 AND 90
UANL 2017
Análisis de Datos Avanzados
Comparison
List the students whose names start with "T".
UANL 2017
Análisis de Datos Avanzados
Comparison
List the Red house members whose names contain
"a" as the 2nd letter.
UANL 2017
Análisis de Datos Avanzados
Grouping
SELECT ...... FROM ...... WHERE condition ;
GROUP BY groupexpr [HAVING requirement]
Group functions:
COUNT( ), SUM( ), AVG( ), MAX( ), MIN( )
UANL 2017
Análisis de Datos Avanzados
UANL 2017
Análisis de Datos Avanzados
class
1A
1A 1A
1A
COUNT( )
1B
1B
1B
COUNT( )
1B 1B
1B
1B
1C
1C 1C
1C
COUNT( )
Student
UANL 2017
Análisis de Datos Avanzados
Grouping
List the number of students of each class.
SELECT class, COUNT(*) FROM student ;
GROUP BY class
class cnt
Result 1A 10
1B 9
1C 9
2A 8
2B 8
2C 6
UANL 2017
Análisis de Datos Avanzados
Grouping
List the average Math test score of each class.
class avg_mtest
Result 1A 85.90
1B 70.33
1C 37.89
2A 89.38
2B 53.13
2C 32.67
UANL 2017
Análisis de Datos Avanzados
Grouping
List the number of girls of each district.
dcode cnt
Result HHM 6
KWC 1
MKK 1
SSP 5
TST 4
YMT 8
UANL 2017
Análisis de Datos Avanzados
Grouping
List the max. and min. test score of Form 1 students of
each district.
SELECT MAX(mtest), MIN(mtest), dcode ;
FROM student ;
WHERE class LIKE "1_" GROUP BY dcode
max_mtest min_mtest dcode
Result 92 36 HHM
91 19 MKK
91 31 SSP
92 36 TST
75 75 TSW
88 38 YMT
UANL 2017
Análisis de Datos Avanzados
Grouping
List the average Math test score of the boys in each class.
The list should not contain class with less than 3 boys.
SELECT AVG(mtest), class FROM student ;
WHERE sex="M" GROUP BY class ;
HAVING COUNT(*) >= 3
avg_mtest class
Result 86.00 1A
77.75 1B
35.60 1C
86.50 2A
56.50 2B
UANL 2017
Análisis de Datos Avanzados
Display Order
UANL 2017
Análisis de Datos Avanzados
Display Order
List the boys of class 1A, order by their names.
UANL 2017
Análisis de Datos Avanzados
Display Order
List the 2A students by their residential district.
SELECT name, id, class, dcode FROM student ;
WHERE class="2A" ORDER BY dcode
name id class dcode
Result Jimmy 9712 2A HHM
Tim 9713 2A HHM
Samual 9714 2A SHT
Rosa 9703 2A SSP
Helen 9702 2A TST
Joseph 9715 2A TSW
Paula 9701 2A YMT
Susan 9704 2A YMT
UANL 2017
Análisis de Datos Avanzados
Display Order
List the number of students of each district
(in desc. order).
SELECT COUNT(*) AS cnt, dcode FROM student ;
GROUP BY dcode ORDER BY cnt DESC
cnt docode
Result 11 YMT
10 HHM
10 SSP
9 MKK
5 TST
2 TSW
1 KWC
1 MMK
1 SHT
UANL 2017
Análisis de Datos Avanzados
Display Order
UANL 2017
Análisis de Datos Avanzados
Result
name hcode class
Blue
Bobby B 1A
House Teddy B 1B Order
Joseph B 2A by
Zion B 2B class
Order
Leslie B 2C
by Johnny G 1A
hcode Luke G 1A
Kevin G 1C
Green
House George G 1C
: : :
:
:
UANL 2017
Análisis de Datos Avanzados
Output
INTO TABLE tablename the output table is saved as a
database file in the disk.
UANL 2017
Análisis de Datos Avanzados
Output
List the students in desc. order of their names and
save the result as a database file name.dbf.
SELECT * FROM student ;
ORDER BY name DESC INTO TABLE name.dbf
Result id name dob sex class mtest hcode dcode remission
9707 Zion 07/29/85 M 2B 51 B MKK .F.
9709 Yvonne 08/24/85 F 2C 10 R TST .F.
9804 Wendy 07/09/86 F 1B 84 B YMT .F.
9819 Vincent 03/15/85 M 1C 29 Y MKK .F.
9805 Tobe 10/17/86 M 1B 88 R YMT .F.
9713 Tim 06/19/85 M 2A 91 R HHM .T.
9816 Teddy 01/30/86 M 1B 64 B SSP .F.
: : : : : : : : :
UANL 2017
Análisis de Datos Avanzados
Output
Print the Red House members by their classes, sex
and name.
SELECT class, name, sex FROM student ;
WHERE hcode="R" ;
ORDER BY class, sex DESC, name TO PRINTER
class name sex
1A Aaron M
Result 1A Peter M
1A Ron M
1B Tobe M
1B Janet F
1B Kitty F
1B Mimi F
: : :
UANL 2017
Análisis de Datos Avanzados
SQL JOINS
We will discuss seven different ways you can return data from two relational tables
1.INNER JOIN
2.LEFT JOIN
3.RIGHT JOIN
4.OUTER JOIN
5.LEFT JOIN EXCLUDING INNER JOIN
6.RIGHT JOIN EXCLUDING INNER JOIN
7.OUTER JOIN EXCLUDING INNER JOIN
UANL 2017
Análisis de Datos Avanzados
SQL JOINS
SELECT <select_list>
FROM Table_A A
INNER JOIN Table_B B
ON A.Key = B.Key
UANL 2017
Análisis de Datos Avanzados
SQL JOINS
Examples
TABLE_A
PK Value
---- ----------
1 FOX
2 COP
3 TAXI
6 WASHINGTON
7 DELL
5 ARIZONA
4 LINCOLN
10 LUCENT
TABLE_B
PK Value
---- ----------
1 TROT
2 CAR
3 CAB
6 MONUMENT
7 PC
8 MICROSOFT
9 APPLE
11 SCOTCH
UANL 2017
Análisis de Datos Avanzados
SQL JOINS
SELECT <select_list>
FROM Table_A A
LEFT JOIN Table_B B
ON A.Key = B.Key
UANL 2017
Análisis de Datos Avanzados
SQL JOINS
Examples
TABLE_A
PK Value
---- ----------
1 FOX
2 COP
3 TAXI
6 WASHINGTON
7 DELL
5 ARIZONA
4 LINCOLN
10 LUCENT
TABLE_B
PK Value
---- ----------
1 TROT
2 CAR
3 CAB
6 MONUMENT
7 PC
8 MICROSOFT
9 APPLE
11 SCOTCH
UANL 2017
Análisis de Datos Avanzados
SQL JOINS
SELECT <select_list>
FROM Table_A A
RIGHT JOIN Table_B B
ON A.Key = B.Key
UANL 2017
Análisis de Datos Avanzados
SQL JOINS
Examples
TABLE_A
PK Value
---- ----------
1 FOX
2 COP
3 TAXI
6 WASHINGTON
7 DELL
5 ARIZONA
4 LINCOLN
10 LUCENT
TABLE_B
PK Value
---- ----------
1 TROT
2 CAR
3 CAB
6 MONUMENT
7 PC
8 MICROSOFT
9 APPLE
11 SCOTCH
UANL 2017
Análisis de Datos Avanzados
SQL JOINS
SELECT <select_list>
FROM Table_A A
FULL OUTER JOIN Table_B B
ON A.Key = B.Key
UANL 2017
Análisis de Datos Avanzados
SQL JOINS
Examples
TABLE_A
PK Value
---- ----------
1 FOX
2 COP
3 TAXI
6 WASHINGTON
7 DELL
5 ARIZONA
4 LINCOLN
10 LUCENT
TABLE_B
PK Value
---- ----------
1 TROT
2 CAR
3 CAB
6 MONUMENT
7 PC
8 MICROSOFT
9 APPLE
11 SCOTCH
UANL 2017
Análisis de Datos Avanzados
SQL JOINS
SELECT <select_list>
FROM Table_A A
LEFT JOIN Table_B B
ON A.Key = B.Key
WHERE B.Key IS NULL
UANL 2017
Análisis de Datos Avanzados
SQL JOINS
Examples
TABLE_A
PK Value
---- ----------
1 FOX
2 COP
3 TAXI
6 WASHINGTON
7 DELL
5 ARIZONA
4 LINCOLN
10 LUCENT
TABLE_B
PK Value
---- ----------
1 TROT
2 CAR
3 CAB
6 MONUMENT
7 PC
8 MICROSOFT
9 APPLE
11 SCOTCH
UANL 2017
Análisis de Datos Avanzados
SQL JOINS
SELECT <select_list>
FROM Table_A A
RIGHT JOIN Table_B B
ON A.Key = B.Key
WHERE A.Key IS NULL
UANL 2017
Análisis de Datos Avanzados
SQL JOINS
Examples
TABLE_A
PK Value
---- ----------
1 FOX
2 COP
3 TAXI
6 WASHINGTON
7 DELL
5 ARIZONA
4 LINCOLN
10 LUCENT
TABLE_B
PK Value
---- ----------
1 TROT
2 CAR
3 CAB
6 MONUMENT
7 PC
8 MICROSOFT
9 APPLE
11 SCOTCH
UANL 2017
Análisis de Datos Avanzados
SQL JOINS
SELECT <select_list>
FROM Table_A A
FULL OUTER JOIN Table_B B
ON A.Key = B.Key
WHERE A.Key IS NULL OR B.Key IS
NULL
UANL 2017
Análisis de Datos Avanzados
SQL JOINS
Examples
TABLE_A
PK Value
---- ----------
1 FOX
2 COP
3 TAXI
6 WASHINGTON
7 DELL
5 ARIZONA
4 LINCOLN
10 LUCENT
TABLE_B
PK Value
---- ----------
1 TROT
2 CAR
3 CAB
6 MONUMENT
7 PC
8 MICROSOFT
9 APPLE
11 SCOTCH
UANL 2017