Documentación de Velneo
28
28
  • Introducción
  • Velneo
    • Requerimientos de Velneo
    • Notas de la versión
    • Funcionalidades comunes a los componentes de Velneo
      • Instalación
      • Conexión con Velneo vServer
      • Cambiar el estilo de visualización
      • Ver u ocultar barras de herramientas
      • Mensajería interna entre usuarios
      • Soporte de alta resolución (HighDPI)
      • Carpetas de trabajo de los componentes de Velneo
      • Numeración de versiones de Velneo
      • Certificado de firma digital para componentes de Windows
    • Tipos de archivo generados por Velneo
    • Velneo Web
      • Plataformas y navegadores compatibles
      • Acceso a recursos del sistema
      • Siempre https
      • Funcionamiento de vatp por websocket
      • CORS para llamadas xmlhttprequest
  • Velneo vDevelop
    • ¿Qué es Velneo vDevelop?
    • Interfaz de Velneo vDevelop
      • Menú Soluciones
      • Menú Proyectos
      • Menú Objetos
      • Menú Scripts
      • Menú Edición
      • Menú Ver
      • Menú Componentes
      • Menú Ayuda
    • Lista de teclas aceleradoras de Velneo vDevelop
    • Soluciones y proyectos
    • Control y edición de proyectos
    • Herencia
    • Inspectores
    • Proyectos objetos y editores
      • Proyecto de datos
      • Proyecto de aplicación
        • Crear CSS para aplicar a objetos en edición
      • Objeto
      • Objetos de proyecto de datos
        • Indice complejo
        • Tabla
          • Actualización
          • Campo
          • Enlace
          • Indice
          • Plural
          • Traspaso de campo
          • Trigger
        • Tabla estática
        • Variable
      • Objetos de proyecto de aplicación
        • Acción
        • Alternador de lista
        • Arbol visor de tablas
        • Bloc de formularios
        • Casillero
        • Cesta
        • ComboView
        • Control SVG
        • Dispositivo serie
        • Formulario
          • Controles de visualización
            • Texto estático
            • Nombre de campo
            • Visor HTML
            • Dibujo
            • Imagen SVG
            • Caja de grupo
            • Menú arbolado
            • Barra de progreso
            • Reloj
            • Manómetro
            • Termómetro
          • Controles de edición
            • Caja de texto
            • Caja de texto enriquecido
            • Data catcher edit
            • Edición alfabética
            • Edición fecha
            • Edición fecha/hora
            • Edición fórmula
            • Edición hora
            • Edición numérica
            • Edición senda fichero
            • Edición senda directorio
            • Objeto dibujo
          • Controles de entrada
            • Botón
            • Botón de check
            • Botón de radio
            • Calendario
            • ComboBox
            • Deslizador
            • Dial
            • ListBox
            • Rueda
          • Contenedores
            • Área de scroll
            • Caja de formularios
            • Pila de formularios
            • Separador de formularios
            • Splitter
            • Vista de datos
          • Layout
          • Tree widget
          • Controles SVG
          • Extensión de ficha
        • Formulario QML
        • Gráfico
        • Imagen SVG
        • Impresora lógica
        • Informe
          • Editor de informes
          • Agrupamiento
          • Sección
          • Cálculo
        • Informe personalizable
          • Diseñando un informe personalizable básico
          • Diseño avanzado
          • Diseñando un informe personalizable
          • Añadiendo orígenes de datos
          • Añadiendo elementos al informe
          • Características avanzadas
          • Etiquetas
          • Asistente de scripts
          • Impresión de gráficos
          • Opciones html
        • ListView
        • Lista QML
        • Localizador
        • Marco
        • Menú
        • Multivista
        • Protocolo TCP-IP
        • Reemplazo
        • Rejilla
          • Propiedades de columna de rejilla
        • Rejilla avanzada
          • Propiedades de columna de rejilla avanzada
        • Toolbar
        • ViewFlow
        • Sub-objetos de vistas de datos
          • Conexión de evento
          • Drop
          • Inserción
          • Manejador de evento
      • Objetos comunes a proyecto de datos y de aplicación
        • Búsqueda
        • Cola
        • Constante
        • Dibujo
        • Esquema de tablas
        • Fichero adjunto
        • Función
        • Librería externa
        • Lupa
        • Proceso
          • Indice de comandos de instrucción de proceso
          • Comandos de base de datos
            • API
            • Bases de datos externas
            • Búsquedas
            • Campos (grupo de comandos)
            • Cestas
            • Fichas
            • Fichas seleccionadas
            • Listas
            • Tablas
            • Tubos
          • Básicos
            • Controles de flujo
            • Debug
            • Ejecución
            • Salida/retornos
            • Scripts (grupo de comandos)
            • Transacciones (comandos)
            • Variables
          • Comunicación
            • Internet
            • Protocolo TCP
            • Puerto serie
            • SDV
          • Interfaz
            • Acciones (comandos)
            • Control
              • Ejemplo de CSS
            • Diálogos
            • Formularios - comandos
            • Localizadores
            • Objeto - grupo de comandos
            • Ventana principal
            • Vista de datos - comandos
          • Sistema
            • Comandos de Sistema
            • Configuración
            • Directorios
            • Ficheros
        • Tubo de ficha
        • Tubo de lista
        • Variable local
      • Editores
        • Asistente de fórmulas
          • Operadores
          • Funciones estándar
            • Funciones API
            • Funciones básicas
            • Funciones de cadenas
              • Expresiones regulares
            • Funciones científicas
            • Funciones de Cliente-servidor
            • Funciones de color
            • Funciones de códigos
            • Funciones de directorios
            • Funciones de fechas
            • Funciones de ficha en curso
            • Funciones de horas
            • Funciones JSON
            • Funciones de Internet
            • Funciones de juegos de caracteres
              • Codecs
            • Funciones numéricas
            • Funciones de sistema
            • Funciones de tiempo
            • Funciones trigonométricas
          • Funciones de dll
          • Funciones de proceso
          • Funciones de campo
          • Campos
          • Constantes
          • Variables globales
          • Variables locales
          • Variables del sistema
          • Verificador de fórmulas
          • Conversión automática de datos
          • Introducción de datos literales
          • Secuencias de escape en cadenas de caracteres
          • Composición de sendas en fórmulas
          • Operar con datos de tipo fecha, hora y tiempo
        • Editor de imágenes
        • Selector de fuentes
    • Scripts
      • Lenguajes
        • JavaScript
          • Procesos JavaScript
          • Fórmulas JavaScript
          • Clases
            • Funciones globales
            • Objetos
            • VAbstractBrowser
            • VAbstractDataView
            • VAbstractListDataView
            • VAdvandedGridListDataView
            • VAlternatorListDataView
            • VApp
            • VBoundFieldComboBox
            • VBoundFieldEdit
            • VBoundFieldEditBrowser
            • VBoundFieldListBox
            • VByteArray
            • VCheckBox
            • VClipboard
            • VClockWidget
            • VComboBox
            • VComboListDataView
            • VCoverFlowListDataView
            • VCWebView
            • VDataCatcherEdit
            • VDataCatcherEditBrowser
            • VDataViewDialog
            • VDateEdit
            • VDateEditBrowser
            • VDateTimeEdit
            • VDateTimeEditBrowser
            • VDial
            • VDir
            • VExtension
            • VFile
            • VFileInfo
            • VFilePathEditBrowser
            • VFinder
            • VFont
            • VFormBlockListDataView
            • VFormDataView
            • VFormulaEditBrowser
            • VGaugeWidget
            • VGridListDataView
            • VGroupBox
            • VImage
            • VImageEdit
            • VImageWidget
            • VInstancesList
            • VInstance
            • VInstances
            • VItemRegisterPattern
            • VLabel
            • VLineEdit
            • VLineEditBrowser
            • VListBox
            • VListDataView
            • VLogin
            • VMainWindow
            • VMdiView
            • VMimeData
            • VMultiDataView
            • VNumberSpinBox
            • VNumberSpinBoxBrowser
            • VObjectInfo
            • VObjectInstance
            • VProcess
            • VProgressBar
            • VProjectInfo
            • VPushButton
            • VQmlFormDataView
            • VQmlListDataView
            • VQmlListModel
            • VQuery
            • VRadioButton
            • VRegister
            • VRegisterList
            • VReportListDataView
            • VRequest
            • VResponse
            • VRoot
            • VScreen
            • VScrollArea
            • VServerAdmin
            • VSettings
            • VSlider
            • VSlotListDataView
            • VSolutionInfo
            • VSplitter
            • VSqlDatabase
            • VSSLCertificate
            • VSSLInfo
            • VSSLSessionCipher
            • VStackedWidget
            • VSvgButton
            • VSvgSlideSwitch
            • VSvgToggleSwitch
            • VSvgWidget
            • VSysInfo
            • VTableInfo
            • VTabWidget
            • VTextEdit
            • VTextFIle
            • VThermometerWidget
            • VThumbWheel
            • VTimeEdit
            • VTimeEditBrowser
            • VToolBox
            • VTreeItem
            • VTreeItemRegister
            • VTreeListDataView
            • VTreeMenu
            • VTreeMultiTableListDataView
            • VTreeWidget
            • VUser
            • VUserGroup
            • VUserGroupList
            • VUserList
            • VXmlReader
            • VXmlWriter
            • Widget
            • XMLHttpRequest
        • QML
          • Tipos QML
          • Funciones específicas de QML
    • Depuración
      • Depuración de procesos de Velneo
      • Depuración de procesos JavaScript
      • Monitor de vClient
    • Extensiones de Velneo vDevelop
    • Acceso directo a una solución desde vDevelop
    • Buenas prácticas
      • Buenas prácticas de organización
        • Proyectos
        • Organización de carpetas
        • Proyecto de datos
        • Proyecto de aplicación
      • Buenas prácticas de codificación
        • Identificadores
        • Teclas aceleradoras
        • Documenta
        • Diseña los formularios como si no existiesen los layouts
      • Buenas prácticas de rendimiento
        • Arquitectura
          • Listas de registros
          • Lista de resultados de una búsqueda
          • Las cestas
          • Las variables globales
          • La caché de fichas
          • Programa en cloud
        • Formularios
          • Condiciones de visible y activo
          • Carga de subformularios en pestaña, caja o pila
        • Base de datos
          • Campos
          • Indices
          • Actualizaciones
          • Eventos de tabla o triggers
          • Variables globales y constantes
          • Tablas en memoria vs tablas en disco
          • Optimizar migraciones de datos
          • Búsquedas en el servidor ¿Cuándo y Cómo?
          • Campos fórmula vs campos en disco
          • Indices condicionados vs búsquedas complejas
          • ¿Cuándo usar tablas de extensión?
          • Indices de trozos y palabras
          • ¿Cuándo usar cada tipo de campo alfa?
        • Procesos y funciones y eventos
          • 1º, 2º, 3º y 4º plano ¿Cuándo usar cada uno?
          • Bloqueo blando vs bloqueo duro
          • Pasar información del cliente al servidor
          • ¿Cómo optimizar transacciones grandes?
          • ¿Cómo gestionar las transacciones?
          • Grabaciones optimizadas para el usuario
        • Carga de registros en objetos de lista
          • Rejillas
            • Campos punteros a singular
            • Totales
            • Condiciones de activo, visible y color en columna
            • Campos de tipo objeto
        • Conoce los límites
      • Imágenes
      • Buenas prácticas para el desarrollo en equipo
    • Análisis de bases de datos para aplicaciones de Velneo
      • Un centro de enseñanza
      • Facturas de un cliente
      • Repartos de obras de teatro
      • Galería de arte
      • Gestión de un colegio
      • Instalación de lunas para vehículos
      • Libros y autores
      • Tienda de discos
      • Últimos pedidos de un proveedor
      • Existencias por almacén y precios por cliente
      • Generación de tickets para un quiosco
      • Navegación por facturas
  • Velneo vDevelop Web
  • Velneo vAdmin
    • ¿Qué es Velneo vAdmin?
    • Gestión de usuarios
    • Gestión de aplicaciones
      • Soluciones
      • Instancias
      • Disco
    • Monitorización
      • Lista de comandos
    • Tareas
    • Acceso directo
  • Velneo vClient
    • ¿Qué es Velneo vClient?
    • Movilidad
    • Funcionalidades de Velneo vClient
      • Accesos directos y VRL
      • Cambiar idioma
      • Panel de procesos en 2º plano
      • Manejo de rejillas
        • Submenú de filtros
      • Uso de la rejilla avanzada
      • Manejo de cestas
      • Refrescos
      • Caché local
      • Edición de campos enlazados a maestro
      • Edición de campos de tipo fecha
      • Capturar imagen desde una cámara
      • Asignar impresoras lógicas
      • Actualización automática
      • Personalización de la ventana de conexión de Velneo vClient
      • Instalador personalizado de Velneo vClient
      • Ordenación de listas
  • Velneo vServer
    • ¿Qué es Velneo vServer?
    • Instalación y configuración
      • Activación de la licencia
      • Línea de comandos de Velneo vServer
      • Parámetros configurables de Velneo vServer
      • Estructura de directorios
    • Iniciar y detener Velneo vServer
    • Funcionalidades
      • Protocolo VATP
      • Protocolo VATPS
      • Multi-hilo
      • Integridad referencial
      • Refrescos terciarios
      • Sistema transaccional
      • Sistema de bloqueos
      • Tecnología bigkey
      • Hilo de control
    • vPacker
  • Velneo vInstallBuilder
    • ¿Qué es Velneo vInstallBuilder?
    • Configurar una instalación
    • Probar una instalación
    • Crear el instalable
    • Accesos directos
  • Velneo vModApache
    • ¿Qué es Velneo vModApache?
    • Instalación y configuración
    • Nomenclatura de objetos en urls
    • Uso de ficheros adjuntos
    • Caché local de Velneo vModApache
  • Velneo vDataClient
    • ¿Qué es Velneo vDataClient?
    • Iniciar Velneo vDataClient
    • Interfaz de Velneo vDataClient
    • Procesos
    • Utilidades
    • Acceso directo a una instancia de datos
  • Velneo vTranslator
    • ¿Qué es Velneo vTranslator?
    • Importación y exportación basada en XLIFF
    • Acceso directo a una solución
  • Velneo ODBC Driver
    • ¿Qué es velneo ODBC Driver?
    • Referencia de comandos SQL
  • Velneo vVersion
    • ¿Qué es Velneo vVersion?
  • Velneo vERP
    • ¿Qué es Velneo vERP?
    • Manual del programador
    • Documentación de la ApiRest
    • Novedades de la versión
  • Velneo vTutor
    • ¿Qué es vTutor?
    • Tutores de objetos básicos
      • Tutor de árboles visores de tablas arboladas
      • Tutor de búsquedas
      • Tutor de cestas
      • Tutor de formularios
      • Tutor de informes
      • Tutor de localizador básico
      • Tutor de marcos
      • Tutor de rejillas
      • Tutor de rejillas avanzadas
    • Tutores de objetos avanzados
      • Tutor de alternadores de lista
      • Tutor de comboview
      • Tutor de drag and drop
      • Tutor de eventos
      • Tutor de tablas de extensión y extensiones de ficha
      • Tutor de grabación de fichas
      • Tutor de gráficos
      • Tutor de impresión de informes
      • Tutor de lupas
      • Tutor de protocolo TCP/IP
      • Tutor de reemplazo
    • Tutores de controles
      • Tutor de botones de menú
      • Tutor de controles SVG
      • Tutor de edición numérica
      • Tutor de visor html dinámico
      • Tutor de vistas de datos de lista
    • Tutores de procesos y manejadores de evento avanzados
      • Tutor de cambio de marco
      • Tutor de comandos de interfaz y acciones
      • Tutor de importación y exportación de ficheros ASCII
      • Tutor de portapapeles
      • Tutor de procesos
      • Tutor de SDV
    • Tutores de scripts
      • QML: hola mundo
      • QML: tutor básico
      • QML: tutor de vistas
      • Tutor de XMLHttpRequest (webServices)
  • Velneo cloud
    • ¿Qué es Velneo Cloud?
    • Panel de control vServer cloud
      • URC
      • vServer
      • Apache
      • SFTP
      • Usuarios
    • Copias de seguridad
    • Velneo cloud API
      • Uso de Velneo cloud API
    • Explorador de archivos cloud sFTP
    • TCP en Velneo cloud
    • Velneo vModApache en cloud
    • SLA
    • Hora de los servidores en el cloud de Velneo
    • ¿Qué puedo hacer si tengo una incidencia en mi servidor cloud?
Con tecnología de GitBook
En esta página
  • Sentencia Select
  • Sintaxis
  • Entradas
  • Salidas
  • Sentencia SELECT simple
  • Sentencia Select conteniendo las palabras clave ALL y DISTINCT
  • Sentencia select con expresiones aritméticas
  • Cláusula WHERE
  • Funciones de agregado
  • GROUP BY
  • HAVING
  • Combinación de WHERE ,GROUP BY,HAVING
  • Operaciones con conjuntos
  • Operación de renombrado
  • SELECT con múltiples tablas
  • Uso del operador .
  • Sentencia INSERT INTO
  • Syntax
  • Entradas
  • Salidas
  • Formas de sentencias INSERT
  • Notas de uso
  • Sentencia UPDATE
  • Sintaxis
  • Entradas
  • Salidas
  • Formas de la sentencia UPDATE
  • Con expresiones aritméticas
  • Cláusula WHERE y sub consultas
  • Notas de uso
  • Sentencia DELETE
  • Sintaxis
  • Entradas
  • Salidas
  • Formas de la sentencia DELETE
  • Cláusula WHERE, sub consultas
  • Notas de uso

¿Te fue útil?

  1. Velneo ODBC Driver

Referencia de comandos SQL

Última actualización hace 4 años

¿Te fue útil?

En este capítulo se incluye información sobre la lista de comandos SQL:

Sentencia Select

Sintaxis

SELECT [ALL|DISTINCT] expresión [ AS nombre ] [, …] [ FROM tabla [ WHERE condición ]

[ GROUP BY columna [, …] ]

[ HAVING condición [, …] ]

[ UNION select ]

Entradas

expresión

Nombre de una columna de una tabla o una expresión.

nombre

Especifica otro nombre de columna o una expresión usando la cláusula AS. nombre no puede ser usado en la condición WHERE. Sí puede, sin embargo, ser referenciado en cláusulas HAVING o GROUP BY asociadas.

table

Nombre de una tabla existente referenciada por la cláusula FROM.

condición

Expresión booleana que devuelva un resultado true or false. Ver la cláusula WHERE.

columna

Nombre de una columna de una tabla.

select

Una sentencia select con todas sus funcionalidades excepto la cláusula ORDER BY.

Salidas

rows

Conjunto completo de filas resultantes de la especificación de la consulta.

count

Número de filas devueltas por la consulta.

Sentencia SELECT simple

Sentencias select que sólo contienen nombres de columna y una única tabla:

SELECT fieldname FROM tablename

Ejemplos:

SELECT * FROM ANEXOS

– Seleccionar todos los registros de todas las columnas de ANEXOS.

SELECT CODIGO FROM ANEXOS
SELECT NOMBRE FROM ANEXOS
SELECT CODIGO, NOMBRE FROM ANEXOS

– Seleccionar todos los registros de las columnas especificadas de ANEXOS.

Sentencia Select conteniendo las palabras clave ALL y DISTINCT

Sentencias select que contienen palabras claves cuantificadores. Si no se especifican palabras claves, se tomará ALL por defecto.

SELECT DISTINCT fieldname FROM tablename SELECT ALL fieldname FROM tablename

Ejemplos:

SELECT ALL * FROM ANEXOS

– Seleccionar todos los registros de todas las columnas de ANEXOS.

SELECT DISTINCT * FROM ANEXOS

– Seleccionar los registros de todas las columnas de ANEXOS, quitando aquellos que tengan valores duplicados en las mismas.

SELECT ALL CODIGO FROM ANEXOS
SELECT ALL NOMBRE FROM ANEXOS
SELECT ALL CODIGO, NOMBRE FROM ANEXOS

– Seleccionar todos los registros de las columnas especificadas de ANEXOS.

SELECT DISTINCT CODIGO FROM ANEXOS
SELECT DISTINCT NOMBRE FROM ANEXOS
SELECT DISTINCT CODIGO, NOMBRE FROM ANEXOS
SELECT DISTINCT SUM(CODIGO) FROM ANEXOS

– Seleccionar los registros con valores distintos en las columnas especificadas de ANEXOS.

Sentencia select con expresiones aritméticas

Los operadores aritméticos manipulan operandos numéricos.

  • (unario): hace positivo el operando.

    Ejemplo:

SELECT +3 FROM ANEXOS;

– (unario): niega el operando. Ejemplo:

SELECT -CODIGO FROM ANEXOS;

+: suma de números. Ejemplo:

SELECT CODIGO + 200 FROM ANEXOS;

–: resta de números. Ejemplo:

SELECT CODIGO - 100 FROM ANEXOS;

*: multiplicación de números. Ejemplo:

SELECT CODIGO * 5 FROM ANEXOS;

/: división de números. Ejemplo:

SELECT CODIGO / 10 FROM ANEXOS;

Más ejemplos:

SELECT NUM_ANEXOS1 + 10 - NUM_ANEXOS2 FROM LIBROS
SELECT NUM_ANEXOS1 + 10, NUM_ANEXOS2 +10 FROM LIBROS
SELECT CODIGO +10-20/2 *100 FROM ANEXOS
SELECT CODIGO +(10-20)/2 *(100 +2) FROM ANEXOS

Cláusula WHERE

La cláusula WHERE en sentencias SELECT es usada para especificar los criterios de selección basados en una condición de búsqueda.

SELECT <select list> FROM <table reference> WHERE <search condition>

Operadores de comparación

Los operadores de comparación son usados en condiciones que comparan una expresión con otra. El resultado de la comparación puede ser TRUE o FALSE.

=: igual que. Ejemplo:

SELECT NOMBRE FROM ANEXOS WHERE CODIGO = 15;

<>: distinto de. Ejemplo:

SELECT NOMBRE FROM ANEXOS WHERE CODIGO <> 15;

>: mayor que. Ejemplo:

SELECT NOMBRE FROM ANEXOS WHERE CODIGO > 15;

<: menor que. Ejemplo:

SELECT NOMBRE FROM ANEXOS WHERE CODIGO < 15;

>=: mayor o igual que. Ejemplo:

SELECT NOMBRE FROM ANEXOS WHERE CODIGO >= 15;

<=: menor o igual que. Ejemplo:

SELECT NOMBRE FROM ANEXOS WHERE CODIGO <= 15;

Más ejemplos:

SELECT NOMBRE FROM ANEXOS WHERE NOMBRE <= 'jack';

SELECT CODIGO FROM ANEXOS WHERE NOMBRE = 'jack';

SELECT CODIGO FROM ANEXOS WHERE NOMBRE < 'jack';

Los operadores de comparación pueden ser usados también en campos de tipo cadena.

Operadores lógicos

Operadores lógicos que manipulan el resultado de condiciones.

NOT: devuelve TRUE si la condición siguiente es FALSE. Devuelve FALSE si es TRUE. Ejemplo:

SELECT * FROM ANEXOS WHERE NOT (CODIGO = 10)

AND: devuelve TRUE si las dos condiciones componentes son TRUE. Devuelve FALSE si alguna es FALSE. Ejemplo:

SELECT * FROM ANEXOS WHERE CODIGO=10 AND NOMBRE='test'

OR: devuelve TRUE si alguna de las condiciones componentes son TRUE. Devuelve FALSE si ambas son FALSE. Ejemplo:

SELECT * FROM ANEXOS WHERE CODIGO=10 OR NOMBRE='test'

Más ejemplos:

SELECT NOMBRE FROM ANEXOS WHERE (NOMBRE <= ‘jack’ AND  CODIGO  15) OR (CODIGO=10 AND NOMBRE='test')

SELECT NOMBRE FROM ANEXOS WHERE (NOMBRE <= ‘jack’ OR CODIGO  15) AND (CODIGO=10 OR NOMBRE='test')

Sub Query

Una condición de búsqueda puede incluir una sub consulta. El grado y cardinalidad de la sub consulta puede ser 1. Las sub consultas no pueden tener cláusulas GROUP BY O HAVING.

Ejemplos:

SELECT * FROM ANEXOS WHERE CODIGO = (SELECT CODIGO FROM IDIOMAS WHERE NOMBRE ='Test')

SELECT * FROM ANEXOS WHERE NOMBRE = (SELECT NOMBRE FROM IDIOMAS WHERE CODIGO =20)

Predicado BETWEEN

Mayor que o igual y menor que o igual entre dos límites.

Ejemplos:

SELECT * FROM ANEXOS WHERE CODIGO BETWEEN 30 AND 50;

SELECT * FROM ANEXOS WHERE NOT (CODIGO BETWEEN 10 AND 20);

Predicado LIKE(%, _ Y \)

El predicado LIKE busca cadenas que coincidan con un patrón determinado. Este patrón es especificado por una cadena en la que el signo _ y el signo % pueden tener un significado especial.

%: busca coincidencia con cualquier cadena de cero o más caracteres. Ejemplo:

SELECT NOMBRE FROM ANEXOS WHERE NOMBRE LIKE 'ab%cd'

_: busca coincidencia con cualquier carácter único. Ejemplo:

SELECT NOMBRE FROM ANEXOS WHERE NOMBRE LIKE 'ab_cd'

ESCAPE: escape es interpretado de forma literal, útil cuando se desea buscar cadenas que contengan un tanto por ciento (%) o un carácter de subrayado (_). Ejemplo:

SELECT NOMBRE FROM ANEXOS WHERE NOMBRE LIKE 'ab\_cd%' ESCAPE '(\)'

Más ejemplos:

SELECT campo1 FROM tabla1 WHERE cadenaCampo1 LIKE '%Valor%'

– Devolverá todas las cadenas que contengan la cadena “Valor”.

SELECT campo1 FROM tabla1 WHERE cadenaCampo1 LIKE 'ab_cd'

– Devolverá aquellas cadenas que tengan 5 caracteres que empiecen por ab y terminen en cd.

SELECT fieldname1 FROM tablename1 WHERE stringfieldname1 LIKE 'ab\%cd%'

– Devolverá todas las cadenas que empiecen por ab%cd.

SELECT fieldname1 FROM tablename1 WHERE stringfieldname1 LIKE 'ab\_cd%'

– Devolverá todas las cadenas que empiecen por ab_cd.

SELECT fieldname1 FROM tablename1 WHERE stringfieldname1 LIKE 'ab\\cd%'

– Devolverá todas las cadenas que empiecen por ab\cd.

SELECT fieldname1 FROM tablename1 WHERE stringfieldname1 NOT LIKE 'ab\\cd%'

– Devolverá todas las cadenas que no empiecen por ab\cd.

Predicado NULL

Busca valores nulos. Este es el único operador que puede ser usado para buscar valores nulos.

Ejemplos:

SELECT * FROM ANEXOS WHERE CODIGO IS NOT NULL;

SELECT * FROM ANEXOS WHERE CODIGO IS NULL;

Predicado de comparación cuantificada

Compara el valor de cada valor en una lista o en una lista resultante de una consulta. Debe ir precedido de =, !=, >, <, =. Evalúa FALSE si la consulta no devuelve filas.

Ejemplos:

SELECT * FROM ANEXOS WHERE CODIGO >= ALL (SELECT CODIGO FROM IDIOMAS);

SELECT * FROM ANEXOS WHERE CODIGO = SOME (SELECT CODIGO FROM IDIOMAS);

Predicado EXISTS

Devuelve TRUE si una sub-consulta retorna al menos una fila.

SELECT * FROM EMP WHERE EXISTS (SELECT ENAME FROM EMP WHERE MGR IS NULL);

SELECT * FROM EMP WHERE NOT EXISTS (SELECT ENAME FROM EMP WHERE MGR IS NULL);

Predicado IN

Comprueba si el valor es igual a cada valor de una lista o de una lista resultante de una consulta.

SELECT * FROM ANEXOS WHERE CODIGO IN (10, 20);

SELECT * FROM ANEXOS WHERE CODIGO NOT IN (10,20);

SELECT * FROM ANEXOS WHERE CODIGO IN (SELECT CODIGO FROM IDIOMAS);

SELECT * FROM ANEXOS WHERE CODIGO NOT IN (SELECT CODIGO FROM IDIOMAS);

Nota: esta cláusula no es funciona con cláusulas multi-tabla.

Funciones de agregado

Realizan un cálculo sobre un conjunto de valores y devuelven un solo valor. SUM: devuelve la suma de todos los valores los valores de la expresión numérica. Solamente puede utilizarse con columnas numéricas.

Ejemplo:

SELECT SUM(CODIGO) FROM ANEXOS

AVG: devuelve el promedio de los valores de un grupo. Solamente puede utilizarse con columnas numéricas.

Ejemplo:

SELECT AVG(CODIGO) FROM ANEXOS

COUNT: devuelve el número de valores de un grupo.

Ejemplo:

SELECT COUNT(CODIGO) FROM ANEXOS

COUNT(*): devuelve el número de filas seleccionadas.

Ejemplo:

SELECT COUNT(*) FROM ANEXOS

MAX: devuelve el valor máximo de la expresión.

Ejemplo:

SELECT MAX(NOMBRE) FROM ANEXOS

MIN: devuelve el valor mínimo de la expresión.

Ejemplo:

SELECT SUM(CODIGO) FROM ANEXOS

Uso de las palabras clave DISTINCT y ALL

Las palabras clave opcional DISTINCT puede ser usada con SUM, AVG y COUNT para eliminar valores duplicados antes de que una función de agregado sea ejecutada (el valor por defecto es ALL).

Ejemplos:

SELECT SUM(DISTINCT CODIGO) FROM ANEXOS

SELECT COUNT(ALL CODIGO) FROM ANEXOS

SELECT SUM(DISTINCT CODIGO), COUNT(ALL NOMBRE), AVG(DISTINCT CODIGO) FROM ANEXOS

Más ejemplos:

SELECT DISTINCT SUM(num_anexos1), AVG(codigo), MAX(nombre) FROM LIBROS

– Quita registros duplicados obtenidos en el resultado.

SELECT SUM(CODIGO) + AVG(CODIGO) FROM ANEXOS

GROUP BY

Agrupa un conjunto de filas seleccionado en un conjunto de filas de resumen de acuerdo a los valores de una o más columnas o expresiones.

Especifica los grupos en los que han de ser situadas las filas seleccionadas y, si en la cláusula SELECT se han incluido funciones de agregado, calcula un valor de resumen para cada grupo.

Ejemplos:

SELECT campo1, AVG(campo2) FROM tabla1 GROUP BY campo1

SELECT campo1, campo2 FROM tabla1 GROUP BY campo1,campo2

SELECT COUNT(campo1), SUM(campo2) FROM tabla1 GROUP BY campo1,campo2

HAVING

Especifica una condición de búsqueda para un grupo o un agregado. Habitualmente es usado con la cláusula GROUP BY.

Ejemplos:

SELECT campo1, AVG(campo2) FROM tabla1 GROUP BY campo1 HAVING AVG(campo2) > 1000

SELECT campo1, AVG(campo2) FROM tabla1 GROUP BY campo1 HAVING AVG(campo2) > 1000 AND campo1=20

SELECT * FROM tabla1 GROUP BY campo1 HAVING campo1 = 20 AND campo2 = ‘abc’

Combinación de WHERE ,GROUP BY,HAVING

Ejemplos:

SELECT SUM(CUSTID) AS sumcus FROM salestb WHERE salesperson > ‘c’ GROUP BY status HAVING sumcus > 124

Operaciones con conjuntos

Puede ser llevadas a cabo a través de operadores de conjuntos, éstos combinan el resultado de dos consultas en una única colección.

UNION

Devuelve todas las filas con valores diferentes de cada consulta.

Ejemplos:

(SELECT distinct campo1 FROM tabla1) UNION (SELECT distinct campo2 FROM tabla2)

UNION ALL

Devuelve todas las filas seleccionadas por cada consulta, incluyendo todas las duplicadas.

Ejemplos:

(SELECT SAL FROM EMP WHERE JOB = 'CLERK'  UNION SELECT SAL FROM EMP WHERE JOB = 'ANALYST');

Operación de renombrado

Alias de columna

Se trata de un nombre alternativo para sustituir el nombre de columna en un conjunto resultante de una consulta.

Ejemplos:

SELECT AVG(CODIGO) AS "Código promediado" FROM ANEXOS

SELECT SUM(NOMBRE) AS anexo,  CODIGO FROM ANEXOS GROUP BY CODIGO HAVING anexo > 10

SELECT con múltiples tablas

La cláusula SELECT que contenga múltiples tablas devolverá producto cruzado de tablas.

Ejemplo:

SELECT * FROM ANEXOS, IDIOMAS

Uso del operador .

Usando el operador . el nombre de la tabla puede ser usado para referenciar una columna.

Ejemplo:

SELECT ANEXOS.CODIGO, IDIOMAS.NOMBRE FROM ANEXOS, IDIOMAS;

Sentencia INSERT INTO

Syntax

INSERT INTO tabla

{ VALUES ( valor1 [, …] ) | SELECT consulta }

También es posible especificar las columnas para las que queramos insertar datos:

INSERT INTO tabla [ ( columna [, …] ) ]

{ VALUES ( valor1 [, …] ) | SELECT consulta }

Entradas

table: el nombre de una tabla existente.

column: el nombre de una columna de la tabla.

valor1: el valor asignado a la columna correspondiente.

Consulta: una consulta (query) válida. La lista resultante de la SELECT de esta sub consulta debe tener el mismo número de columnas que la lista resultante de la sentencia INSERT.

Salidas

INSERT #

Mensaje retornado y se insertaron filas. # es el número de filias insertadas.

Formas de sentencias INSERT

INSERT INTO ANEXOS VALUES (47,'Nuevo');

Inserta un nuevo registro con los valores 47 para el primer campo y “Nuevo” para el segundo.

INSERT INTO ANEXOS (CODIGO) VALUES (44);

Inserta un nuevo registro con el valor 44 para el CODIGO y el resto de los campos por defecto.

INSERT INTO ANEXOS (NOMBRE) VALUES ('Nuevo');

Inserta un nuevo registro con el valor “Nuevo” para el NOMBRE y CODIGO con valor auto-incrementado si así está declarado.

INSERT INTO ANEXOS (CODIGO,NOMBRE) VALUES (47,'Nuevo');

Inserta un nuevo registro con el valor 47 en el CODIGO y el valor “Nuevo” en el NOMBRE.

INSERT INTO IDIOMAS SELECT * FROM ANEXOS;

Inserta todos los registros de ANEXOS en IDIOMAS. Inserta solamente si el grado de la sub-consulta es igual al grado de los IDIOMAS.

INSERT INTO IDIOMAS SELECT CODIGO, NOMBRE FROM ANEXOS;

Inserta todos los registros de ANEXOS en IDIOMAS. Inserta solamente si el grado de la sub-consulta es igual al grado de IDIOMAS. La sub-consulta solamente puede contener los campos seleccionados.

INSERT INTO IDIOMAS (CODIGO, NOMBRE) SELECT CODIGO, NOMBRE FROM ANEXOS;

Inserta las columnas especificadas en la sub-consulta a las columnas especificadas de la tabla.

INSERT INTO IDIOMAS (CODIGO, NOMBRE) SELECT CODIGO, NOMBRE FROM ANEXOS WHERE CODIGO BETWEEN 10 AND 20;

Inserta registros basados en la condición de la sub-consulta (cláusula WHERE).

Notas de uso

El mismo nombre de columna no debería aparecer más de una vez en el argumento de columna.

El número de columnas especificado en el argumento de columna debe ser igual al número de valores proporcionados. Si se omite el argumento columna, el número de valores debe ser igual al grado de la tabla.

La expresión para cada columna debería ser del tipo de datos adecuado, pues no se hará una corrección automática del tipo.

Las columnas de la lista de destino pueden ser listadas en cualquier orden.

Sentencia UPDATE

Sintaxis

UPDATE– Reemplaza valores de columnas en una tabla.

<DESTUPDATE tabla SET columna = expresión [, …]

[ WHERE condición ]

Entradas

tabla: nombre de una tabla existente.

columna: nombre de una columna de la tabla.

SET: indica que las columnas siguientes se les asignarán valores específicos.

Si se omite el nombre de una de las columnas de la tabla en la cláusula SET, el valor de la misma permanecerá inalterado.

Expresión: una expresión o valor válidos para asignar a la columna.

condición: una condición de búsqueda.

WHERE restringe las filas actualizadas a aquellas en las que la condición especificada es TRUE. Si se omite la cláusula WHERE, el driver actualizará todas las filas de la tabla.

La condición de búsqueda en la sentencia UPDATE puede ser uno de los predicados siguientes:

  • Predicado de comparación.

  • Predicado BETWEEN.

  • Predicado IN.

  • Predicado LIKE.

  • Predicado NULL.

  • Predicado de comparación cuantificada.

  • Predicado EXISTS.

Salidas

UPDATE #

Mensaje devuelto si el resultado ha sido satisfactorio. El carácter # significa el número de filas actualizadas. Si # es igual a 0, querrá decir que no se actualizó fila alguna.

Formas de la sentencia UPDATE

La sentencia UPDATE básica actualiza todos los registros de una tabla con nuevos valores.

Ejemplos:

UPDATE ANEXOS SET CODIGO = 10, NOMBRE = 'Testado'

Actualiza todos los registros solamente si ninguno de los campos es la clave primaria. Si no, retorna error.

UPDATE ANEXOS SET NOMBRE = 'Testado'

Actualiza solamente los campos especificados, el resto permanecerán inalterados.

Con expresiones aritméticas

Las operaciones aritméticas usan operandos numéricos.

Ejemplos:

UPDATE LIBROS SET NUM_ANEXOS1 = NUM_ANEXOS2 +10

Evalúa la expresión aritmética y la actualiza en todos los registros.

Cláusula WHERE y sub consultas

Busca registros basándose en una condición y actualiza solamente aquellos que cumplan la condición. La condición de búsqueda pude tener cualesquiera predicados y sub consultas.

  • Predicado de comparación.

  • Predicado BETWEEN.

  • Predicado IN.

  • Predicado LIKE.

  • Predicado NULL.

  • Predicado de comparación cuantificada.

  • Predicado EXISTS.

Ejemplos:

UPDATE ANEXOS SET CODIGO=23 WHERE CODIGO = 22;

UPDATE ANEXOS SET CODIGO= 10 WHERE CODIGO = (SELECT CODIGO FROM IDIOMAS WHERE NOMBRE = 'test');

UPDATE ANEXOS SET NOMBRE= NULL;

UPDATE ANEXOS SET NOMBRE ='upd' WHERE CODIGO = 1500;

UPDATE ANEXOS SET NOMBRE = 'upd' WHERE CODIGO > 3000;

UPDATE ANEXOS SET NOMBRE = 'upd' WHERE CODIGO = 20;

UPDATE ANEXOS SET NOMBRE = 'upd' WHERE CODIGO <= 1500;

UPDATE ANEXOS SET NOMBRE = 'upd' WHERE CODIGO  3000;

UPDATE ANEXOS SET NOMBRE = 'upd' WHERE CODIGO BETWEEN 30 AND 50;

UPDATE ANEXOS SET NOMBRE = 'upd' WHERE  NOMBRE IN ('SMITH', 'WARD');

UPDATE ANEXOS SET NOMBRE = 'upd' WHERE CODIGO >= ALL (SELECT CODIGO FROM IDIOMAS WHERE CODIGO = 20);

UPDATE ANEXOS SET NOMBRE = 'upd' WHERE NOMBRE = SOME (SELECT NOMBRE FROM IDIOMAS WHERE CODIGO > 10);

UPDATE ANEXOS SET NOMBRE = 'upd' WHERE EXISTS (SELECT CODIGO FROM IDIOMAS WHERE CODIGO = 10);

UPDATE ANEXOS SET NOMBRE = 'upd' WHERE NOMBRE LIKE 'a_a%'

Notas de uso

La misma columna no puede aparecer más de una vez en la cláusula SELECT.

Si no se especifica ninguna cláusula WHERE serán actualizadas todas las filas de la tabla.

Sentencia DELETE

Borra filas de una tabla.

Sintaxis

DELETE FROM tabla [WHERE condición]

Entradas

tabla: nombre de una tabla existente.

condición: se trata de una consulta SQL de selección que retorna las filas a borrar.

En el capítulo dedicado a la sentencia SELECT encontrarás información sobre la cláusula WHERE.

La condición de búsqueda en la sentencia DELETE puede ser uno de los predicados siguientes:

  • Predicado de comparación.

  • Predicado BETWEEN.

  • Predicado IN.

  • Predicado LIKE.

  • Predicado NULL.

  • Predicado de comparación cuantificada.

  • Predicado EXISTS.

Salidas

DELETE count

Mensaje retornado si los elementos son borrados satisfactoriamente. “count” es el número de filas borradas. Si es 0, querrá decir que no se ha borrado ninguna fila.

Formas de la sentencia DELETE

Forma básica: borrar todos los registros de una tabla:

Ejemplos:

DELETE FROM ANEXOS;

Cláusula WHERE, sub consultas

Busca registros basándose en una condición y borra solamente aquellos que la cumplen. La condición de búsqueda puede tener cualesquiera predicados y sub consultas.

Ejemplos categorizados basados en predicados:

Predicado LIKE

DELETE FROM ANEXOS WHERE NOMBRE LIKE  '%Val%'

Encontrará todas las cadenas que incluyan la cadena "Val".

DELETE FROM ANEXOS WHERE NOMBRE LIKE 'ab_cd'

Encontrará todas las cadenas que tengan 5 caracteres que comiencen por "ab" y terminen en "cd".

DELETE FROM ANEXOS WHERE NOMBRE LIKE 'ab\%cd%'

Encontrará todas las cadenas que comiencen por "ab%cd".

DELETE FROM ANEXOS WHERE NOMBRE LIKE 'ab\_cd%'

Encontrará todas las cadenas que comiencen por "ab_cd".

DELETE FROM ANEXOS WHERE NOMBRE LIKE 'ab\\cd%'

Encontrará todas las cadenas que comiencen por "ab\cd".

DELETE FROM ANEXOS WHERE NOMBRE NOT LIKE 'ab\\cd%'

Encontrará todas las cadenas que no comiencen por "ab\cd".

Predicado de comparación

DELETE FROM ANEXOS WHERE CODIGO = 1500;

DELETE FROM ANEXOS WHERE CODIGO > 3000;

DELETE FROM ANEXOS WHERE CODIGO = 20;

DELETE FROM ANEXOS WHERE CODIGO <= 1500;

DELETE FROM ANEXOS WHERE CODIGO >= 3000;

Operadores lógicos

DELETE FROM ANEXOS WHERE CODIGO = 10 AND CODIGO = 20;

DELETE FROM ANEXOS WHERE CODIGO = 10 OR CODIGO = 20;

Predicado BETWEEN

DELETE FROM ANEXOS WHERE CODIGO BETWEEN 30 AND 50;

DELETE FROM ANEXOS WHERE CODIGO NOT BETWEEN 3 AND 5;

Predicado IN

DELETE FROM ANEXOS WHERE CODIGO IN (10,20);

DELETE FROM ANEXOS WHERE CODIGO NOT IN (10,20);

Predicado NULL

DELETE FROM ANEXOS WHERE CODIGO IS NOT NULL;

DELETE FROM ANEXOS WHERE CODIGO IS NULL;

Predicado de comparación cuantificada

DELETE FROM ANEXOS WHERE CODIGO >= ALL (SELECT CODIGO FROM IDIOMAS);

DELETE FROM ANEXOS WHERE CODIGO = SOME (SELECT CODIGO FROM IDIOMAS);

Predicado EXISTS

DELETE FROM ANEXOS WHERE EXISTS (SELECT CODIGO FROM IDIOMAS WHERE NOMBRE IS NULL);

Notas de uso

Si no se especifica ninguna cláusula WHERE, serán borradas todas las filas de la tabla.

SELECT
INSERT INTO
UPDATE
DELETE