Hoy Azhu plomo en Estados Unidos entró oficialmente en la cuarta etapa del aprendizaje
a la selección de
SQL Server desde la entrada al maestro (a)
de SQL Server (b) El dominio
de SQL Server (b) de manera sucinta Mastering
SQL Server desde la introducción Con dominio (c)
el directorio
de datos de procesamiento de consultas y la mesa de montaje
de una consulta de datos de
consulta sencilla 1.
2. estadísticas
3. consultas de unión
4. subconsultas
5. investigación conjunta
II, edición de datos
1. insertar datos
2. Modificar datos
de borrado datos
procesamiento y edición de datos de tabla de consulta
En primer lugar, los datos de la consulta
1. simple consulta
gramática
SELECT 目标表达式
FROM 表名
(1) La columna de consulta especifica
SELECT 姓名
FROM 项目表
(2) Búsqueda de columnas
Nota: * expresada por todas las columnas, todas las columnas en la tabla en el orden de la tabla toda la producción
SELECT *
FROM 项目表
(3) calcular la consulta de columna
pueden sacar después de ciertos resultados de cálculo propiedad se enumeran
SELECT 姓名,累计学分,累计学分-累计学分*0.1
FROM 学生表
(4) alias de columna
1. Como palabra clave
2. = conectan
SELECT 姓名 AS name,累计学分 AS Ogpa,Ngpa=累计学分-累计学分*0.1
FROM 学生表
Nota: Cuando la columna Alias de espacios y comillas simples
SELECT 姓名 AS '学生表 NAME'
FROM 学生表
(5) utiliza la palabra clave DISTINCT para eliminar tuplas duplicadas
SELECT DISTINCT 所在院系,专业
FROM 学生表
Nota: este procedimiento eliminará duplicado
alcance palabra clave DISTINCT de toda su lista de consultas
2. Consulta de tuplas que satisface la condición
WHERE de la consulta
devuelve la consulta TRUE (verdadero), FALSO (falso), desconocida (desconocida)
los no, el AND, OR lógica de operación tres tablas
NO | resultado |
---|---|
T | F |
F | T |
la | la |
Y | T | F | la |
---|---|---|---|
T | T | F | la |
F | F | F | F |
la | la | F | la |
O | T | F | la |
---|---|---|---|
T | T | T | T |
F | T | F | la |
la | T | la | la |
consulta común
pregunta | Operador (0) | Condiciones formato (expresiones lógicas) | observación |
---|---|---|---|
Comparación de tamaño | =,>, <,> =, <=,! = ,,!>, <! | op1op 2 | operador binario |
Determinar el alcance | [NO] Y ENTRE | 0P1 [NO] ENTRE op2 y OP 3 | Tres operaciones en la cabeza |
Determinar un conjunto | [NO EN | 1 [NO] EN 2 | operador binario |
cadena partido | [NO COMO | 1 [NO] LIKE 2 | operador binario |
nulo | NO ES NULO | el IS NULL [NO] | unario |
condiciones múltiples | NOT, AND, OR, () | NO OP-1 hacia arriba y 2, 2 opi1OR | No es un unarios, binarios operadores resto, los paréntesis se usan para cambiar la prioridad de la operación |
Comparar el tamaño de
(1) una consulta para todos los estudiantes de Hangzhou
SELECT *
FROM 学生表
WHERE 籍贯='杭州'
(2) el nombre del estudiante en los créditos de consulta acumulada de 160 o menos y los créditos acumulados
SELECT 姓名,累计学分
FROM 学生表
WHERE 累计学分<160
Determinar el alcance de
la definición
op1 [NOT] BETWEEN op2 AND op3
Significado: la condición es verdadera o falsa, no se encuentra entre si OP1 y OP2 OP3
consulta nombres de los estudiantes de crédito acumuladas entre 150 y 159 y los créditos acumulados
SELECT 学号,姓名
FROM 学生表
WHERE 累计学分 BETWEEN 150 AND 159
Determinar un conjunto de
sintaxis para el EN
consulta (no) de Hangzhou, Datong, número de estudiante y el nombre de Taiyuan
SELECT 学号,姓名
FROM 学生表
WHERE 籍贯 (NOT) IN (‘杭州’,‘大同’,‘太原’)
Después de dos averiguaciones número de estudiante es 09, igual al número dos o estudiante fue uno de los primeros dos o número de estudiante y el nombre
SELECT 学号,姓名
FROM 学生表
WHERE SUMBSTRING (学号,6,2)IN (‘09’,SUMBSTRING(学号,2,2),SUMBSTRING(学号,4,2))
Nota: SUMBSTRING (s, p, c) el significado de retorno de la cadena s partiendo de p-ésima serie de subcadenas c
Cadena coincidente
sintaxis como
caracteres especiales:
% | cadena de cualquier longitud a juego (longitud puede ser 0) |
---|---|
_ | Coincide con cualquier carácter individual |
[C1C2 ... cn] | , C2 ... cn, en una c1 carácter concordante. Cuando c1, c2, ... cn, tiempo continuo simplifica a [c1-cn] |
[^ C1C2 ... cn] | Además de C1 a juego, c2 ... cn, un fuera de carácter. Cuando c1, c2, ... cn, tiempo continuo simplifica a [^ C1-cn] |
Ejemplo
nombre de la consulta en la segunda palabra es el número de estudiantes "Peng" y el nombre
SELECT 学号,姓名
FROM 学生表
WHERE 姓名LIKE ‘_鹏%’
Identificación del Estudiante longitud de la consulta no es igual a 7, o seis contiene caracteres no numéricos después del número de alumnos número de estudiante y el nombre
SELECT 学号,姓名
FROM 学生表
WHERE 学号NOT LINK'S[0-9][0-9][0-9][0-9][0-9][0-9]'
Descubrir identificación del estudiante no es ni el último ni el 1 9 3 ni el número y el nombre del estudiante
SELECT 学号,姓名
FROM 学生表
WHERE 学号 LINK '%[^139]'
Para encontrar el nombre del curso para la información del curso "db_" el principio de la nota _ que es sólo un ordinario, ahora utilizar ESCAPE
select*
from 课程表
where课名 LINK'DB\_%' ESCAPE '\'
El ESCAPE 'representa la frase' 'es el carácter de escape, por lo que la cadena patrón que de inmediato' \ 'detrás del personaje' 'no tiene el comodín significado, y se escapó en una normal' carácter'
La participación de consulta nula
sintaxis no es NULL
Hay decenas de número de identificación preguntas del estudiante y el comienzo
SELECT 学号,开课号
FROM 选课表
WHERE 成绩 IS NOT NULL
Nota: SE = No se puede utilizar en lugar de, no es que no! = Y <> en lugar de
Multicriterio consulta
O Y NO O Y NO descendente prioritarias
tales consultas chicos, los tres primeros es su número de teléfono '130' o de su Ningbi Hangzhou ni se especializó en el comercio, ni la información estudiada administración
SELECT*
FROM 学生表
WHERE 性别=‘男’AND SUBSTRING(移动电话,1,3)=‘130’AND(籍贯=‘杭州’ OR 籍贯=‘宁波’)AND NOT 专业 IN (‘电子商务’,‘信息管理’)
3. Ordenar los resultados de la consulta
Sintaxis: POR Oeder
SELECT 学号
FROM 选课表
WHERE 开课号=‘000100’
ORDER BY 成绩 DESE,成绩+10
Consultas número inicio electiva '000100' en el curso del número de estudiante, la puntuación, la puntuación y la puntuación de 10 puntos para el nuevo puesto, los resultados de la consulta en orden descendente de acuerdo a los resultados originales, de acuerdo con los nuevos resultados en orden ascendente
Nota: descendente DESE, no escriba Mo sigue siendo ascendente
2. Estadísticas
1. funciones estadísticas comúnmente usadas
formato de la | función |
---|---|
COUNT ([DISTINCT] *) | Contando el número de tuplas |
COUNT ([DISTINCT] <expresión de columna>) | Las estadísticas del número de valores |
SUMA | suma la columna calcular expresiones numéricas |
AVG | columnas numéricas de expresión de cálculo de promedios |
MAX | Busca la expresión máxima de la columna |
MIN | Minimización de expresiones de columna |
Todas las consultas de los libros de texto el precio total y el precio medio y el precio total y el precio medio después de jugar Qizhe
SELECT SUM(定价) AS 原总价,AVG(定价),SUM(定价*0.7)折扣总价,折扣均价=AVG(定价*0.7)
FROM (课程表)
COUNT (*) usado para contar el número de tuplas que satisfacen la condición
número de consultas por supuesto es el número total de cursos de los dos primeros dígitos "02"
SELECT COUNT (*)
FROM 课程表
WHERE 课号 LINK 'C02%'
2. consulta Grupo
(1) Cláusula GROUP BY para agrupar
SELECT 开课号,COUNT (学号)
FROM 选课表
GROUP BY 开课号
具有相同开课号的元组被分为一组
(2)HAVING短语来帅选
3.连接查询
在列名前+<.表名>作为限定
查询学生表的基本信息及选课信息
SELECT 学生表.*,开课号,成绩
FROM 学生表 AS A,选课表AS B
WHERE 学生表.学号=选课表.学号
使用JOIN ON 关键字
JOIN 用于连接两张表,ON给出两张表的连接条件
查询至少选修了学号为‘S060110’的学生所选一门课程的学生学号和姓名
SELECT DISTINCT Z.学号, 姓名
FROM 选课表 X JOIN 选课表 Y ON Y.学号!=X.学号 AND Y.开课号=x.开课号
JOIN 学生表Z ON Y.学号=Z.学号
WHEREx.学号='S060110'
外连接
左外连接:将左边关系中未用到的列加到结果集把=改为"*=”,或者JOIN 改为LEFT OUTER JOIN
右外连接:将右边关系中未用到的列加到结果集把=改为"=*”,或者JOIN 改为RIGHT OUTER JOIN
全外连接:将左右关系全部连接,将JOIN改为FULL OUTER JOIN
查询学生的学号、姓名、籍贯信息及选课信息
(1)左外连接
SELECT学生表.学号, 姓名,籍贯,开课号,成绩
FROM学生表, 选课表
WHERE 学生表.学号*=选课表.学号
(2)右外连接
SELECT学生表.学号, 姓名, 籍贯, 开课号, 成绩
FROM 学生表 RIGHT OUTER JOIN 选课表 ON 学生表.学号=选课表.学号
(3)全外连接
SELECT 学生表.学号, 姓名, 籍贯, 开课号, 成绩
FROM 学生表 FULL OUTER JOIN 选课表 ON 学生表.学号=选课表.学号
4.子查询
嵌套SELECT语句叫子查询,一个 SELECT 语句的查询结果能够作为另一个语句的输入值。
子查询不但能够出现在Where子句中,也能够出现在from子句中,作为一个临时表使用,也能够出现在select list中,作为一个字段值来返回。
1、单行子查询 :单行子查询是指子查询的返回结果只有一行数据。当主查询语句的条件语句中引用子查询结果时可用单行比较符号(=, >, <, >=, <=, <>)来进行比较。
例:
select ename,deptno,sal
from emp
where deptno=(select deptno from dept where loc='NEW YORK');
2、多行子查询:多行子查询即是子查询的返回结果是多行数据。当主查询语句的条件语句中引用子查询结果时必须用多行比较符号(IN,ALL,ANY)来进行比较。
IN的含义是匹配子查询结果中的任一个值即可(“IN” 操作符,能够测试某个值是否在一个列表中),ALL则必须要符合子查询的所有值才可,ANY要符合子查询结果的任何一个值即可
注意ALL 和ANY 操作符不能单独使用,而只能与单行比较符(=、>、< 、>= 、<= 、<>)结合使用。
例:1、单行子查询
select ename,deptno,sal
from emp
where deptno=(select deptno
from dept
where loc='NEW YORK');
2、多行子查询
SELECT ename,job,sal
FROM EMP
WHERE deptno in ( SELECT deptno
FROM dept
WHERE dname LIKE 'A%');
3、多列子查询
SELECT deptno,ename,job,sal
FROM EMP
WHERE (deptno,sal) IN (SELECT deptno,MAX(sal) FROM EMP GROUP BY deptno);
5.联合查询
UNION将多个查询结果合并起来,个结果表的列数相同
查询计算机专业和信息管理专业的学生信息。
SELECT*
FROM 学生表
WHERE 专业='计算机'
UNION
SELECT
FROM 学生表
WHERE 专业='信息管理'
二、表数据编辑
插入数据
1.插入单个元组
2.插入子查询结果
3.使用SELECT …INTO语句进行数据插入
修改数据
语法
UPDATE <表名>
SET<列名>=<表达式>[,....n]
UPDATE语句用来修改指定表中满足WHERE条件的元组,用SET子句中的值取代响应的值
修改表中所有行
将学生的累计学分增加3分
UPDATE 学生表
SET 累计学分=累计学分+3
修改某些行
将计算机专业所有女上的籍贯改为“杭州”,累计学分+3
UPDATE 学生表
SET 累计学分=累计学分+3,籍贯='杭州'
WHERE 专业='计算机'AND 性别=‘女;’
删除数据
语法
DELETE [FROM] <目标表名>
[FROM <表名>[,...n]]
[WHERE <条件>]
DELETE用来删除满足WHERE条件的元组
从学生表中删除计算机专业所有女生信息
DELETE FROM 学生表
WHERE 专业=‘计算机’AND性别=‘女’
将学生表清空
DELECT FROM 学生表
TRUNCATE TABLE <目标表名>
比较快不记录日志的操作,删除的数据无法恢复