¿Qué es PHP? ¿Qué es SQL?
En el nivel más bajo, PHP puede hacer cualquier cosa que cualquier otro programa CGI pueda hacer, como recopilar datos de formulario, generar contenido de página dinámico o enviar y recibir cookies. Quizás la característica más poderosa y significativa es el soporte de PHP para una amplia gama de bases de datos. Escribir una página web basada en bases de datos es muy sencillo.
Actualmente soporta las siguientes bases de datos:
Adabas D Interlayer Solid
Base de datos mSQL Sybase
Queen MySQL Velocis
Sistema de gestión de bases de datos Oracle Unix
Informix PostgreSQL
PHP también admite "comunicarse" con otros servicios a través de protocolos, como IMAP, SNMP, NNTP, POP3 e incluso HTTP. También puede abrir interfaces de red ofuscadas para interactuar con otros protocolos.
Una breve historia de PHP
En el otoño de 1994, Rasmus Ledelph comenzó a concebir PHP. Se utilizó una versión anterior, inédita, en su página de inicio para rastrear quién leía su currículum en línea. La primera edición se publicó a principios de 1995. En ese momento, PHP solo se consideraba una herramienta de desarrollo de páginas de inicio personales. Consiste en un motor de análisis muy simple que sólo comprende algunas macros especiales utilizadas por el backend de la página de inicio y algunas herramientas comunes como libros de visitas, contadores y otras cosas. Este analizador fue reescrito a mediados de 1995 y se denominó PHP/FI versión 2. FI proviene de otro paquete escrito por Rasmus. Se utiliza para interpretar datos en formato html. Combinó el script de la herramienta de página de inicio personal con el analizador de formularios y agregó soporte para mSQL. Como resultado, surgió PHP/FI. PHP/FI se desarrolló a un ritmo sorprendente y la gente empezó a contribuir con su propio código.
Es difícil dar estadísticas concretas, pero se puede estimar que a finales de 1996, al menos 15.000 sitios web en todo el mundo utilizaban PHP/FI. A mediados de 1997, este número había superado los 50.000. En ese momento, el desarrollo de PHP también cambió. El proyecto desarrollado por el propio Rasmus y varios otros se ha convertido en el resultado de un grupo más organizado. Zeev Suraski y Andi Gutmans reescribieron el analizador. Este nuevo analizador se convirtió en la base de la versión 3 de PHP. Se heredó una gran cantidad de código útil de PHP/FI a PHP3, y gran parte de él se reescribió por completo.
Hoy (65438+mediados de 0999), tanto PHP/FI como PHP3 se incluyen con muchos productos comerciales, como servidores web de nivel C2 y Red Hat Linux. Según los datos proporcionados por NetCraft, se estima de forma conservadora que hay más de 150.000 sitios web que utilizan PHP en todo el mundo. Para poner esto en perspectiva, hay más sitios web en Internet que los que ejecutan el servidor empresarial insignia de Netscape.
PHP es un lenguaje de programación del lado del servidor que se utiliza para crear páginas web dinámicas. Creas páginas a través de PHP y HTML. Cuando un visitante abre una página web, el servidor procesa las instrucciones PHP y envía los resultados al navegador del visitante, como ASP o ColdFusion. Sin embargo, PHP se diferencia de ASP o ColdFusion en que es un código fuente abierto multiplataforma. PHP se puede ejecutar en Windows NT y en muchas versiones diferentes de Unix. También se puede compilar en módulos Apache o binarios CGI. Compilar PHP en un módulo de Apache es particularmente liviano. No tiene la carga de trámites burocráticos, devuelve resultados rápidamente y no requiere ajustar mod_perl para mantener una pequeña imagen de memoria del servidor.
1. Introducción
¿Qué es SQL?
*SQL (Structured Query Language) significa Lenguaje de Consulta Estructurado.
*Cuando el usuario envía una consulta, puede obtener información del archivo de la base de datos. La consulta es una recuperación basada en las condiciones proporcionadas por el usuario. SQL es un lenguaje de consulta que permite a los usuarios enumerar condiciones. De esta manera, los usuarios sólo necesitan especificar las condiciones de consulta sin conocer realmente los métodos de recuperación relevantes.
*Los sistemas de software de gestión de bases de datos generales (DBMS) incluyen funcionalidad SQL.
Concepto SQL
* A través de instrucciones SQL, el usuario primero enumera el archivo de la base de datos y las condiciones de consulta. El programa SQL verificará si cada registro en el archivo de la base de datos cumple con las condiciones y lo mostrará. información relevante. Este proceso se llama recuperación. (Ver Ejemplo 2)
*Además de consultar directamente los datos de cada registro, los usuarios también pueden consultar varios elementos estadísticos, como valor máximo, valor mínimo, suma, promedio, etc.
*Los resultados de la consulta se mostrarán en una tabla y el usuario también puede indicarle al programa SQL que almacene los resultados como un archivo de base de datos.
Cómo usar SQL en FoxPro
*Para usar SQL, primero debe abrir el archivo de base de datos correspondiente.
*Los usuarios pueden usar la ventana de comandos para ingresar comandos directamente o usar el cuadro de diálogo para ingresar comandos.
*Si el usuario selecciona el emparejamiento completo de la cadena deberá ingresar SET ANSI ON.
2. Estructura básica de las instrucciones de recuperación SQL
Sintaxis general SELECT, ALL/DISTINCT, *,
De dónde viene
Comparar EN, ENTRE, COMO "%_"
Agrupar por, propiedad,
Contar(), Suma(), AVG(), Máximo(), Mínimo()
Muestra la base del pedido, ASC/DESC
Operadores lógicos Y, O, NO
Salida a la tabla/cursor.
Archivo [Aditivo], Impresora, Pantalla
Unión
Abreviaturas:
Expr = expresión, groupexpr = expresión de grupo.
Col = columna, comcol = columna común.
Colname = nombre de columna
Nullval = valor nulo
Ejemplo: información personal del estudiante
Ejemplo: considere lo siguiente El archivo de base de datos ESTUDIANTE . DBF utilizado para almacenar datos de los estudiantes:
(i) hcode representa el nombre del club del estudiante (es decir, los cuatro clubes de rojo, amarillo, azul y verde).
R = rojo, Y = amarillo, B = azul, G = verde
(2) dcode indica el código de área de la residencia del estudiante.
Por ejemplo, TST = Tsim Sha Tsui), MKK = Mong Kok.
(3) Reducción o exención indica si los estudiantes tienen derecho a la remisión o exención de matrícula:
. T. =Disfruta de la exención de matrícula. F. = Sin remisión de matrícula.
(4) mtest almacena las puntuaciones de los exámenes de matemáticas de los estudiantes, con una puntuación total de 100.
Tipo de columna ancho de columna contenido
Número de identificación 4 número de estudiante
Caracteres del nombre 10 nombre del estudiante
Fecha de nacimiento 8 fecha de nacimiento
Características de género 1 Género: Masculino/Femenino
Carácter de categoría 2 Categoría
Código H Carácter 1 Nombre social: r, y, b, g.
Código de área del carácter 3 del código
Exención de matrícula de lógica 1
Puntuación del segundo examen de matemáticas
Gramática común
Seleccione... desde... donde...
SELECCIONAR[TODO/DISTINCT]expr 1[AS col 1],expr 2[AS col 2];
DESDE nombre de tabla DONDE condición
: el programa SQL seleccionará filas que cumplan con la condición del nombre de tabla del archivo de base de datos y las mostrará en formato tabular.
–Las expresiones expr1 y expr2 pueden ser (1) campos o (2) expresiones compuestas de funciones y campos.
–y col 1, col2 son los nombres de las columnas de la expresión expr1, expr2 en la tabla de resultados de salida.
–La opción DISTINCT eliminará las filas duplicadas (es decir, se mostrará solo una vez), mientras que la opción TODO retendrá todas las filas duplicadas.
–La condición condicional puede ser (1) igualdad o desigualdad, o (2) comparación de cadenas, utilizando operadores lógicos y, o, NOT.
Antes de usar SQL, abra el archivo de la base de datos:
Utilice estudiantes
Ejemplo 1 para encontrar los datos de todos los estudiantes.
Seleccione * de los estudiantes
Nota: 1) Esta instrucción no establece ninguna condición, por lo que se omite la parte WHERE.
2) Utilice * en la parte de selección para indicar todas las columnas de la tabla de origen de selección.
3) Los resultados de la consulta se almacenarán en una tabla temporal.
Identificación
Nombre Fecha de nacimiento Género Categoría mtest hcode dcode Mitigación
Peter 04/06/86 M 1A 70 R SSP .F.
9802 Mary 10/01/86 F 1A 92Y HHM F
9803 Johnny 16/03/86 M 1A 91g SSP .T.
9804 Wendy 09/07/86 F 1B 84b YMT F
YMT, Código postal: 9805
: : : : : : : : : : p> p>
Ejemplo 2 Descubra los nombres y los nombres de los clubes de los estudiantes de la Clase 1A.
Seleccione nombre, código, clase de estudiantes
dónde class="1A "
Nota: Este ejemplo utiliza la condición class="1A " de 1A; Seleccione estudiantes en clase: el programa SQL verificará cada fila de la tabla fuente una por una para ver si se cumple esta condición. Luego, el programa SQL retendrá tres columnas en estas columnas de acuerdo con las opciones SELECT, a saber, nombre, código h y clase. Finalmente, el programa almacena los resultados en una tabla temporal.
Nombre
hcódigo clase
Peter R 1A
Mary Y 1A
Johnny G 1A
p>Luke G 1A
Bobby B 1A
Aaron R 1A
: : :
Ejemplo 3 Descubrir donde viven los miembros de la Cruz Roja. (hcode="R ")
Seleccione diferentes códigos de datos de los estudiantes;
donde hcode="R "
Nota: Si viven dos o más estudiantes múltiples en la misma área Utilice la opción DISTINCT para ignorar resultados duplicados.
Código de datos
HHM
KWC
MKK
Subsidio legal por enfermedad
Prueba (test)
Taiwán Shanye
Ejemplo 4 Descubra el nombre y la edad de la niña de la Clase 1B. (Con precisión de un decimal)
Seleccione el nombre del estudiante, ROUND((DATE( )-dob)/365, 1) como la edad;
donde class=" 1B "y sex="F "
Nota: 1) Las condiciones para "niña de la clase 1B" incluyen class="1B " y sex="F ". Y esta condición debe cumplirse al mismo tiempo, por lo que se utiliza el operador lógico AND.
2) No hay ninguna columna que almacene directamente la edad en este archivo de base de datos, por lo que necesitamos usar la fecha de nacimiento del estudiante para calcular. Primero, DATE()-dob representa los "años" del estudiante y luego, dividido por 365, se convierte en "años". Luego use la opción AS age para interpretar los nombres de las columnas.
Nombre
Edad
Wendy 12.1
Gatita 11.5
Janet 12.4
Sandy 12.3
Mimi 12.2
Ejemplo 5 Encuentre los nombres y números de los estudiantes de la Clase 1A que no tienen remisión de matrícula.
Seleccione nombre, id, clase de los estudiantes.
Entre ellos class="1A "y no exentos
Nota: 1) Aquí hay dos condiciones: los estudiantes deben estar en la clase 1A y no disfrutar de la exención de matrícula. Entonces agregue el operador Y en la sección DONDE.
2) Dado que el recordatorio es un campo lógico, se puede utilizar directamente en expresiones lógicas. Agregar NOT antes de un recordatorio invierte el significado.
Nombre
id categoría
Pedro 9801 1A
María 9802 1A
Lucas 9810 1A
p>
Bobby 9811 1A
Aaron 9812 1A
Ron 9813 1A
Gigi 9824 1A
: : :
Dos comparaciones
Entrada de expresión (valor 1, valor 2, valor 3)
Expresión entre el valor 1 y el valor 2
Expresiones como "%_"
–En la sección DÓNDE, puede utilizar los términos de comparación anteriores:
1) Si el valor de expr es igual al valor 1, valor2 y valor3 La cláusula exprin(valor1, valor 2, valor 3) devolverá un valor lógico. Expr puede ser un valor numérico o una cadena.
2) Si expr está entre valor1 y valor2, entonces la cláusula
Expr entre valor1 y valor2 devolverá un valor lógico.
3) Si la cadena expr coincide con el patrón de "%_", la cláusula expr LIKE "%_" devolverá un valor lógico. En el estilo, "%" representa una cadena de cualquier longitud y "_" representa cualquier carácter.
Ejemplo 6 Encuentre todos los estudiantes nacidos en miércoles o sábado.
Seleccione el nombre, clase, CDOW (fecha de nacimiento) de los estudiantes como fecha.
DOW(dob) en (4, 7)
Nota: Si el estudiante nace en miércoles y sábado, entonces DOW(dob) devolverá el valor de 4 o 7, Entonces, se utilizará IN(4,7) para verificar.
Nombre
Fecha clase b
Peter 1A Miércoles
Wendy 1B Miércoles
Sábado
Lucas 1A Miércoles
Aarón 1A Sábado
: : :
Ejemplo 7 Encuentra todos los meses que no son enero, marzo, Estudiantes nacidos en junio o septiembre.
Seleccione el nombre, clase y fecha de nacimiento de los estudiantes;
El mes (fecha) no está entre (1, 3, 6, 9)
Nota: No queremos MES(fecha de nacimiento) = 1, 3, 6 o 9, por lo que usamos NOT IN (1, 3, 6, 9) para verificar.
Nombre
Clase de nacimiento
Wendy 1B 09/07/86
Tobe 1B 10
Angstrom Rick 1C 5 de mayo de 1987
Patty 1C 13/08/87
Kevin 1C 21/11/87
Bobby 1A 16/02/86
Aaron 1A 8 de febrero de 1986
: : :
Ejemplo 8 Descubra el nombre del alumno de la clase 1A, el examen de matemáticas La puntuación está entre 80 y 90 .
SELECCIONE nombre, mtest FROM estudiante
Donde class="1A " y mtest están entre EN 80 y 90
Nota: 1) aquí se utilizan dos condiciones: el primero es class="1A", y el segundo es que el puntaje de la prueba está entre 80 y 90. Estas dos condiciones deben ser verdaderas al mismo tiempo, por lo que se debe utilizar AND.
2) La puntuación de la prueba está entre 80-90, que se puede expresar mediante mtest ENTRE 80 y 90.
Nombre
mtest
Lucas Capítulo 86
Aarón 83
Gigi 84
p>Ejemplo 9 Encuentre todos los estudiantes cuyos nombres comiencen con "T".
Seleccione nombres y clases de los estudiantes;
Nombres como "T%"
Nota: El estilo utilizado aquí es "T%", que significa Significado del El primer carácter debe ser "T" y luego puede ser cualquier cadena.
Nombre
Clase
Toby 1B
Teddy 1B
Tim 2A
El ejemplo 10 descubre que la segunda letra de todos los miembros de la Cruz Roja es "A".
Seleccione nombre, clase, código de los estudiantes;
Entre ellos nombres como "_a%" y hcode="R "
Nota: El estilo utilizado aquí es "_a%", donde el símbolo "_" representa cualquier carácter, es decir, el primer carácter es arbitrario. El segundo carácter debe ser "a", seguido de "%" para representar cualquier cadena.
Nombre
hcódigo clase
Aaron 1A R
Janet 1B R
Paula 2A Río
El tercer grupo
Seleccione...de...dónde está la condición;
GRUPO POR GRUPO expr[obligatorio]
Funciones de grupo : COUNT(), SUM(), AVG(), MAX(), MIN()
–-GROUP BY GROUP expr enumera las expresiones que componen el grupo. Suele ser una columna del archivo de base de datos.
–donde condición enumera las condiciones que debe cumplir cada fila y TENER requisito enumera las condiciones que debe cumplir cada grupo.
–Puedes utilizar la función de grupo para calcular estadísticas:
COUNT(): registra el número de elementos que aparecen.
SUM(): suma
AVG(): valor medio
MAX(): valor máximo
MIN(): mínimo valor Valor
Ejemplo 11 Encuentra el número de personas en cada clase.
Seleccionar clase, contar desde estudiantes (*)
Agrupar por categoría
Nota: 1) Usando GROUP BY clase, el programa SQL primero ordenará por clase fila en la lista.
2) El programa SQL agrupará las filas conectadas según la clase.
3) Finalmente, utiliza la función de agrupación COUNT(*) para contar el número de cada grupo.
Clase
(no puede)
1A 10
1B 9
1C 9
2A 8
2B 8
2C 6
Ejemplo 12 Encuentra el puntaje promedio en la prueba de matemáticas de cada clase.
Seleccione clases de grupos de estudiantes por clase, AVG(mtest)
Nota: El programa SQL primero agrupará por clase y luego calculará el mtest promedio de los grupos en cada grupo.
Clase
Tiempo medio de prueba
1A 85,90
1B 70,33
1C 37,89
2A 89,38
2B 53,13
2C 32,67
Ejemplo 13 Calcula el número de niñas en cada comunidad.
SELECT dcode, COUNT(*)FROM estudiante;
Donde sex="F "está agrupado por código de datos
Nota: La condición de consulta es sex= "F". El programa SQL primero seleccionará las filas que cumplan la condición y luego agrupará las filas según el dcode.
Código de datos
(no puede) no puede
HHM 6
KWC 1
MKK 1
SSP 5
TST 4
YMT 8
Ejemplo 14 Encuentre los puntajes más altos y más bajos de un estudiante en la prueba de matemáticas de cada distrito.
Seleccione el más grande (mtest), el más pequeño (mtest) y el código d de los estudiantes.
Entre ellos, como "1_", agrupe por código d
Número máximo de pruebas
p>
Código de prueba mínimo
92 36 HHM
91 19 MKK
91 31 SSP
92 36 TST p>
75 75 TSW
88 38
Nota: En este caso, se utiliza una clase de condición como "1_" seleccionar estudiantes de primer año de secundaria en cada distrito.
El ejemplo 15 enumera las puntuaciones promedio de las pruebas de matemáticas de los niños en cada clase, pero las clases con menos de 3 niños no se cuentan.
SELECCIONE PROMEDIO(mtest) DE ESTUDIANTES, CLASE;
donde sexo = " M " GRUPO POR clase CON COUNT(*)& gt; Nota: El programa SQL primero ordenará las filas que cumplan las condiciones individuales de sexo="M", luego las agrupará por clase y calculará el mtest promedio de cada grupo. Finalmente, el programa SQL verifica el recuento de condiciones del grupo (*) = 3. (En este caso, el número de niños en la clase 2C es menor que 3, por lo que no se muestra en los resultados).
Tiempo promedio de prueba
Clase
86.00 1A
77.75 1B
35.60 1C
86.50 2A p>
56.50 2B
Orden de visualización IV
Seleccionar...de...dónde...agrupar por...
Ordenar por nombre de columna ASC/DESC
: ordenar por nombre de columna controla el orden en que se muestran los resultados. colname representa una columna en la tabla de resultados. ASC = Potencia Ascendente, DESC = Potencia Descendente.
El ejemplo 16 enumera los nombres de los niños de la Clase 1A, mostrados en orden de nombre.
Selecciona nombre e id de los alumnos.
Donde sex="M " y class="1A "Ordenar por nombre
Nombre id nombre id
Peter (nombre masculino)
9801 Aaron 9812
Johnny 9803 Bobby 9811
Luke 9810 Johnny 9803
Bobby 9811 Luke 9810
Aaron9812Peter9801
Ron9813Ron9813
El ejemplo 17 enumera los datos de los estudiantes de la Clase 2A y los muestra en orden de residencia.
Selecciona nombre, id, clase, código de datos de los estudiantes.
Donde class="2A "Ordenar por dcode
Nombre id clase dcode
2A·HHM
2A·HHM
Samuel 9714 2A Tiempo
Rosa 9703 2A SSP
Helen 9702 2A TST
Joseph 9715 2A TSW
Paula 9701 2A YMT
Susan 9704 2A YMT
Ejemplo 18 Encuentre el número de estudiantes que viven en cada distrito y muéstrelo en orden descendente.
SELECT COUNT(*) as cnt, dcode FROM Student
Agrupar por orden de código del centro DESC
(no puede) no puede
Código documento
11 YMT
10 HHM
10 SSP
9 MKK
5 TST
2 TSW
1 KWC
1 MMK
1 chelín
Ejemplo 19 Enumere los nombres de los miembros masculinos de varias Nombres de sociedades y mostrados en orden de clase.
(Es decir, el orden de dos niveles de clubes y clases)
Seleccione el nombre, código y clase de los estudiantes;
donde sex="M" ORDER BY hcode, class
Nota: Estas líneas se organizan primero por hcode (es decir, la disposición de primer nivel y el mismo hcode se muestra en orden de clase);
Nombre hcode clase
Policía
B 1A
Teddy B 1B
Joseph 2A
p>Sion·2B
Leslie B 2C
Johnny G 1A
Luke G 1A
Kevin G 1C p>
George G 1C
: : :
: : :
Cinco salidas
EN LA tabla nombre de tabla
almacena los resultados de la consulta en el archivo de base de datos.
Ingrese la temperatura del cursor
Almacene temporalmente los resultados de la consulta en la memoria de trabajo de la computadora.
Para archivar nombre de archivo[append]
Almacenar los resultados de la consulta como un archivo de texto. (aditivo = adicional)
Imprime la salida en la impresora.
Salida de la pantalla a la pantalla.
El ejemplo 20 enumera los datos de todos los estudiantes en orden descendente de sus nombres y almacena los resultados como nombre de archivo de base de datos.DBF.
SELECCIONAR * DEL estudiante
ORDENAR POR nombre DESC en la tabla nombre.dbf
Nota: 1) Importar el nombre de la tabla dbf requiere un programa SQL para guardar los resultados. como archivo.
2) Este comando es equivalente al comando de base de datos SORT.
El programa SQL almacena los resultados como un nuevo nombre de archivo de base de datos dbf.
Identificación
Nombre fecha de nacimiento género categoría mtest hcode dcode mitigación
9707 Zion 29/07/85 m 2B 51 B MKK.
9709 Yvonne 24/08/85 F 2C 10 R TST.
9804 Wendy 09/07/86 F 1B 84b YMT F
Ciudad de MKK, código postal: 9865438
YMT, código postal: 9805
2A 91 R HHM.
9816 Peluche 30/01/86M 1B 64 B SSP f.
:
: : : : : : : : : : :
El ejemplo 21 imprime la información de los miembros de la Cruz Roja en orden de rango, género y nombre.
Seleccione clase, nombre, género de los estudiantes;
donde hcode = " R
Ordenar por clase, género, DESC, nombre de la impresora
Nota: 1) Este comando requiere que el programa primero encuentre a los miembros de la Sociedad Verde y luego organice estas columnas en orden de clase, género y nombre.
2) El programa SQL primero almacena temporalmente los miembros. resultados de la consulta. Trabaja en la memoria y envía el resultado a la impresora
Clase
Diga género
1A
Aaron M p> p>
1A
Peter M
1A Ron M
1B para M
Janet F
1B Kitty F
1B
Mimi F
: : :
Fusión, intersección y diferencia de bases de datos
Considere dos archivos de base de datos A y B con la misma estructura
La combinación de a y b
(1) Unión
Recuperación Todo. filas que pertenecen a a o b
Intersección de a y b
Intersección
Comprueba las filas compartidas por a y b. >La diferencia entre a y b
(A–B)diferencia obtiene las filas que pertenecen sólo a A y no a B.
(Es decir, parte de B es expulsada de A)
Elegir...de...donde...;
unión;
Elegir. ..desde...donde...
Seleccionar...de la tabla 1;
donde la columna ENTRADA (seleccione la columna de la tabla 2)
Seleccionar ...de la tabla 1;
donde col IN (seleccione la columna de la tabla 2) Seleccione columna)
Ejemplo: Club de Bridge y Club de Ajedrez
Considere la miembros del club de bridge y del club de ajedrez de la escuela, sus datos se almacenan en el mismo archivo de base de datos estructurado bridge. DBF y ajedrez. Los DBF son:
Tipo de nombre de columna Ancho de columna contenido
Número de tarjeta de identificación 4 número de estudiante
Caracteres del nombre 10 nombre de estudiante
Género Característica 1 Género: Masculino/Mujer
Categoría Personaje 2 Categoría
Bridge Chess
Nombre de la tarjeta de identificación Categoría de género Nombre de la tarjeta de identificación Categoría de género
1 9812 Aaron M 1A 1 9802 Mary F 1A
2 9801 Peter M 1A 2 9801 Peter M 1A
3 9814 Kenny M 1B 3 9815 Eddie M 1B
4 9806 Kitty F 1B 4 9814 Kenny M 1B
Edmund M 18 George M 1C
: : : : : : : : :
Antes de usar SQL , abra estos dos archivos de base de datos:
Elija uno
Usar puente
Elija B
Usar ajedrez
Nuestro colegio tiene previsto realizar una "actividad de bridge de ajedrez", en la que deberán participar los miembros del club de ajedrez y del club de bridge. Intente enumerar a los miembros de ambas asociaciones en orden de rango y nombre. (Es decir, la unión de las dos asociaciones)
SELECT * FROM bridge
Sindicato;
SELECT * FROM ajedrez
Ordenar por clase, ingresar por nombre Table Party
Nota: Lo que se requiere son todos los miembros de las dos asociaciones, que es una combinación de las dos asociaciones.
Partido
nombre de identificación género categoría
1 9812 Aaron M 1A
2 9802 Mary F 1A
3 9801 Peter M 1A
4 9815 Eddie M 1B
5 9814 Kenny M 1B
6 9806 Kitty F 1B
7 9818 Edmund M 1C
8 9817 George M 1C
: : : :
Ejemplo 23 Imprimir miembros ordinarios de NPC y CCPPCh. (Es decir, la intersección de las dos sesiones)
SELECT * FROM bridge
Donde id IN (seleccione id del ajedrez);
A impresora p>
Nota: En este caso tenemos que averiguar los miembros comunes entre las dos asociaciones. El programa SQL debe comprobar si cada miembro del club de bridge pertenece también al club de ajedrez. En caso afirmativo, la persona cumple con este requisito.
Común
nombre de identificación género categoría
1 9801 Peter M 1A
2 9814 Kenny M 1B
: : : :
Ejemplo 24 Encuentra la lista de miembros que solo participan en el club de bridge. (Es decir, la diferencia entre las dos sesiones)
SELECT * FROM bridge
donde el id no está presente (seleccione el id del ajedrez);
INTO diferencia de mesa
p>
Nota: 1) En este caso, las personas que no pertenecen al club de ajedrez deberán elegir entre el club de bridge. Por tanto, el programa SQL debe utilizar FROM bridge, es decir, comprobar uno por uno si los miembros del club de bridge pertenecen al club de ajedrez y cartas. En caso contrario, esta persona cumple con este requisito.
2) La "diferencia" es asimétrica: si quieres conocer la "lista de miembros que sólo han participado en el club de ajedrez", los resultados serán completamente diferentes.
Diferencial
Identificación Nombre Género Categoría
1 9812 Aaron M 1A
2 9806 Kitty F 1B
3 9818 Edmund M 1C
: : : :
4. Múltiples bases de datos
Cuando los datos consultados se almacenan en dos archivos de base de datos Cuando está dentro, se establece una conexión. requerido. La función de una unión es unir una fila de un archivo de base de datos con una fila de otro archivo de base de datos, enumerando así todas las diferentes combinaciones. (Matemáticas: producto cartesiano)
Costura Natural
* Añade una condición de unión a la unión que requiere que la columna común de ambos engranajes tenga el mismo valor. Esto se llama articulación natural. El propósito de este artículo es combinar la información relevante de estos dos archivos en una tabla integrada grande y luego realizar el trabajo de consulta desde esta tabla.
Considere los siguientes dos archivos de base de datos T1 y T2:
SELECCIONE a.comcol, a.col1, b.col2, expr1, expr2
DE LA TABLA 1 a, Tabla 2b;
Donde a.comcol = b.comcol
–En una unión natural, una columna en los dos archivos de la base de datos debe ser la misma, lo que se denomina columna común. columna. El programa SQL primero enumerará todas las combinaciones de estos dos archivos y luego seleccionará filas con el mismo valor de columna común.
–A y B son los códigos de tabla1 y tabla2 respectivamente, utilizados para indicar el archivo al que pertenece cada columna.
–Las expresiones expr1, expr2 pueden usar columnas de la Tabla 1 y la Tabla 2.
Por ejemplo: instrumentos musicales
La escuela estipula que todo alumno debe aprender un instrumento. Ahora, el archivo de música de la base de datos. DBF se utiliza para almacenar los nombres de los instrumentos musicales que los estudiantes han aprendido (mientras que otra información de los estudiantes se almacena en STUDENT.DBF).
Nombre de columna tipo ancho de columna contenido
Número de tarjeta de identificación 4 número de estudiante
Escriba carácter 10 nombre del instrumento
Ejemplo 25 listas Nombres de todos los estudiantes y los nombres de los instrumentos que han aprendido.
Seleccione s.class, s.name, s.id, m.type de estudiante s, música m
Donde s.id=m.id ORDENAR POR clase, nombre;
Nota: 1) Aquí S significa estudiante.dbf y M significa música.dbf.
2) La condición de engrane es s.id=m.id, es decir, las filas de dos engranajes deben engranar según id.
Clase
Nombre ID Tipo
1A Aaron 9812 Piano
1A Bobby 9811 Flauta
1A Gigi 9824 flauta dulce
1A Gil 9820 piano
1A Johnny 9803 violín
Luke 9810 piano
1A Mary 9802 flauta
>: : : :
Encuentra el número de estudiantes que aprenden piano en cada clase.
SELECT s.class, COUNT(*) FROM estudiante s, música m;
Donde s.id=m.id, m.type = " Piano
Agrupar por clase Ordenar por clase
Nota: En 1), primero las dos marchas se engranan naturalmente y la condición de enganche es s.id=m.id
2) Luego, el programa SQL selecciona filas que cumplen con la condición m.type="Piano" de los resultados de la conexión (en forma de tabla
3) Finalmente, el programa SQL se agrupa por clase y cuenta el número. de clases
Recuento de categorías
1A 4
1B 2
1C 1
Conector externo p>
* La malla externa es la malla natural más la parte que no coincide.
SELECCIONE a.common, a.column1, b.column2, expr1, expr2
De la tabla 1 a, tabla 2b
donde a .com col; = b .com col;
Unión;
SELECT comcol,col1,nullval,nullval,nullval;
De la tabla 1;
donde a.comcol no está presente (seleccione comcol de la tabla 2)
– La descripción de la junta externa consta de dos partes seleccionadas que se unen mediante la junta.
–La primera parte se une de forma natural (es decir, se une con éxito) y la segunda parte no se une (es decir, las filas de la primera parte no se pueden unir de forma natural).
–Para que la segunda parte tenga la misma estructura que la primera, las posiciones de la segunda parte que no tengan valores numéricos deben rellenarse con valores nulos, es decir, la cadena vacía " ", el valor numérico cero, el valor lógico. para fecha vacía{//}.
El ejemplo 27 enumera los nombres de los estudiantes que aún no han elegido un instrumento. (es decir, no hay coincidencia)
Seleccione clase, nombre e identificación de los estudiantes.
La identificación no está allí (seleccione la identificación de la música);
Ordenar por categoría, nombre
Nota: 1) Este comando seleccionará desde Student.dbf. Esas líneas que no coinciden en otro archivo, music.dbf.
2) (Seleccionar ID de música) Seleccione aquellos ID que aparecen en el archivo de base de datos music.dbf, de modo que la condición ID no sea (...) pueda recuperar filas no emparejadas.
Clase
Nombre ID
1A Mandy 9821
1B Kenny 9814
1B se convierte en 9805
1C Edmund 9818
George 9817
: : :
Haga una lista de todos los instrumentos que los estudiantes aprenden. La lista debe incluir los nombres de los estudiantes que aún no han tomado lecciones de instrumento. (es decir, participación externa)
SELECT s.class, s.name, s.id, m.type;
Dado por Stu