base de datos SQL: consulta de datos

consulta de datos

formato de declaración

Aquí Insertar imagen Descripción

  • SELECT子句: Columnas de atributos que se mostrarán,
  • FROM子句: Especificar el objeto de consulta (tabla base o vista)
  • WHERE子Frase: Especificar los criterios de la consulta
  • GROUP BYCláusulas: consulta resultados por el valor del paquete de la secuencia especificada (por ejemplo, un grupos de hombres, una mujer), igual a la tuplas valor de la propiedad como un grupo de filas. Cada grupo se usa típicamente en funciones de agregado (por ejemplo un recuento conjunto de la cuenta de grupo masculino y femenino)
    • HAVINGLa frase: sólo para cumplir con los criterios especificados para establecer antes de la salida
  • ORDER BYCláusulas: valores de las columnas de la tabla especificada orden ascendente o descendente de los resultados de la consulta

descomposición funcional:

Aquí Insertar imagen Descripción

Acerca del uso 1.SELECT

[Ejemplo 1] consulta a todos los estudiantes aprenden los números y nombres.

SELECT Sno,Sname   //选择属性  SELECT * 代表所有列
From Student		//指明表的来源
uso del suplemento SELECT:
SELECT Sno,2020-Sage   //可以得到出生年份,可以是表达式	
SELECT LOWER(Sdept)    //将得到的Sdept值全部化为小写
使用列的别名改变查询结果的列标题
SELECT Sname NAME,2020-Sage BIRTHDAY  //定义别名
Eliminar filas duplicadas
  • predeterminado SELECT no es a filas duplicadas eliminar, eliminar filas duplicadas necesitan utilizar la palabra clave DISTINCT
SELECT DISTINCT Sno

Acerca del uso 2.Cuando

pregunta predicado
comparar =,>,> =,! =,!>
Determinar el alcance ENTRE Y, NO ENTRE Y
Determinar un conjunto IN, NO EN
partidos de caracteres Gusto, no como
nulo Es nulo, NO ES NULO
operación lógica Y, si no,

Comparación:
Departamento de Ciencias de la Computación y el Ejemplo 2. Consultar la lista de los estudiantes menores de 20 años de edad

SECLECT Sname
FROM Student
WHERE Sdept='CS' AND Sage<20;      //注意,这个分号不能少

Para determinar el alcance:
Ejemplo de consulta 3. La edad no es el nombre del estudiante entre 20-23 años de edad, y las líneas de la edad no hacerlo

SELECT Sname,Sdpt,Sage
FROM Student
WHERE Sage NOT BETWEEN 20 AND 23;  

Determinar un conjunto:
Ejemplo 4. Departamento de Ciencias de la Computación de consulta (CS), Departamento de Matemáticas (MA) nombre y sexo del estudiante

SELECT Sname, Ssex
FROM Student
WHERE Sdept IN('CS','MA'); 

partidos de caracteres:

  • Sintaxis: predicado: [NO] Al igual que '<cadena de búsqueda>' [ESCAPE '<carácter de escape>']
  • <String> puede ser una cadena completa puede contener caracteres comodín% y _
    • % Tiene una longitud representativa de una cadena, un% de B, comienzo representante a, b en el extremo de una cadena de cualquier longitud
    • _ Soportes para cualquier carácter individual

Ejemplo 5. Consulta de aprender los detalles del número de alumnos 1830130281

SELECT *
FROM Student
WHERE Sno LIKE '1830130281'  //<==> WHERE Sno = '1830130281'
  • ESCAPE carácter de escape uso
    • Acción: escapar usando el carácter comodín escapa caracteres ordinarios.
      Número de campos de golf de créditos Ejemplo 6. Consulta DB_Design
SELECT Cno , Ccredit
From Course
WHERE Cname LIKE 'DB\_Design'ESCAPE'\';

cláusula 3.Order POR

  • Acción: con uno o más atributos puede estar dispuesto en columnas,
  • ASC: ASC; Descendente: DESC; predeterminado es ascendente

Ejemplo 7. Los resultados están dispuestos en la puntuación descendente, refleja la cláusula ORDER BY puede utilizar

SELECT .....
FROM ....
WHERE ....
ORDER BY Grade DESC;  

número basado en la ubicación Ejemplo 8. Los resultados en el ascendente, descendente Edad

SELECT ...
FROM ...
WHERE ...
ORDER BY Sdept ASC , Sage DESC;    //ASC省略也可以

4. funciones de agregado (a menudo con el grupo por tener utilizar juntos o SELECT)

  • Sólo se puede utilizar SELECTconHAVING
  • Número estadísticas Ganso:COUNT(*)
  • Una serie de estadísticas pena:COUNT( [ DISTINCT|ALL ] <列名>)
  • Calcular una suma de: SUM(同第二行)
  • Calcular un valor promedio: AVG(同第二行)
  • Buscando un máximo y un mínimo de: MAX(同第二行), MIN(同第二行)
  • 注意: DISTINCTNo es una necesidad, significa falta de énfasis (por defecto es ALL)

Ejemplo 9. consulta el número de alumnos matriculados en el curso.

SELECT COUNT(DISTINCT Sno)
FROM SC;

5.GROUP por grupos cláusula

  • valor especificado o más columnas de un paquete, un conjunto de valores es igual.
    Nota de uso:

错误示例:

SELECT Cnpo     //
FROM SC			//
GROUP BY Cno   //

La expresión debe corresponder a la parte posterior de las expresiones SELECT y GROUP BY detrás. Si el grupo A y el SELECT y, si usted no tiene que corresponden a la SELECT seguido de funciones de agregado, como COUNT (Cnpo)

Ejemplo 10. El número de programa de inscripción individuo que busca y el número correspondiente. (Idea: el mismo número de cursos como grupo)

SELECT Cno, COUNT(Sno)
FROM SC
GROUP BY Cno;   //意思是课程号相等的所有列为一组。

Similares resultados se muestran en la siguiente tabla:

que están COUNT (Sno)
1 22
2 34
3 45
4 12

Ejemplo 11. Consulta de cursos electivos para el número de más de tres estudiantes

SELECT Sno
FROM SC
GROUP BY Sno
HAVING COUNT(*)>3;  //HAVING函数是在对每一个组进行操作,某一组列数大于3的输出

Ejemplo 12. La puntuación media de los puntos de consulta es 90 y la puntuación promedio del número estudiante

SELECT Sno , AVG(Grade)
FROM SC
GROUP BY Sno   
HAVING AVG(Grade)>=90;  //AVG不能放在WHERE中!!!  

13. El Departamento de ejemplos y estadísticas para distinguir entre el número de estudiantes masculinos y femeninos en cada departamento, y ordena en orden descendente de eucalipto

SELECT Sdept, Ssex , COUNT(Sno)
FROM Student
GROUP BY Sdept , Ssex
ORDER BY COUNT(Sno) DESC;
Publicado 22 artículos originales · ganado elogios 0 · Vistas 154

Supongo que te gusta

Origin blog.csdn.net/weixin_42649617/article/details/104834312
Recomendado
Clasificación