SQL Server desde la entrada al maestro (D)

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 <目标表名>
 比较快不记录日志的操作,删除的数据无法恢复
发布了12 篇原创文章 · 获赞 71 · 访问量 2万+

Supongo que te gusta

Origin blog.csdn.net/m0_46315852/article/details/104878000
Recomendado
Clasificación