Introducción a SQL INSTR()

INSTR() es una función de cadena en el estándar de lenguaje de consulta (SQL), que devuelve la posición inicial o la ubicación de una subcadena o patrón en la cadena de entrada. La función INSTR () es específica de Oracle/PL y MYSQL., Sin embargo, otros servidores de bases de datos SQL como PostgreSQL, SQL server admite funciones de cadena para determinar la ubicación de una subcadena, pero difieren un poco en sintaxis. La función similar a INSTR() en PostgreSQL es la función SUBSTRING() mientras que en SQL server tenemos la función CHARINDEX ().

la función SQL INSTR () devuelve la primera aparición de una subcadena en una cadena de entrada. Es una función sensible a mayúsculas y minúsculas en ORACLE/ PL SQL. No distingue entre mayúsculas y minúsculas en MYSQL como veremos en los ejemplos a continuación.,

Vea nuestros cursos de demostración y Videos

Valuation, Hadoop, Excel, Mobile Apps, Web Development & many more.

Sintaxis y parámetros de SQL INSTR()

en esta sección, discutiremos la sintaxis de la función INSTR() en ORACLE/ PL SQL y funciones similares En otras bases de datos SQL.,

ORACLE/ PL SQL:

INSTR (string, pattern)

MYSQL:

INSTR (string, pattern)

de SQL SERVER:

CHARINDEX(pattern, string, start)

Todas las funciones antes mencionadas realizar la misma tarea. Toman un patrón o subcadena y la cadena de entrada y devuelven la posición del patrón o subcadena en la cadena de entrada.

los parámetros utilizados en las sintaxis anteriores son los siguientes:

  • String: mencione la cadena de entrada en la que se ubicará el patrón o subcadena.,
  • patrón: mencione la subcadena o palabras cuya primera aparición tiene que ser localizada.

la función en postgreSQL es un poco diferente, ya que nos permite extraer la subcadena o patrón especificado de la cadena de entrada dada en función de la ubicación inicial y final. La sintaxis para el mismo es la siguiente:

POSTGRESQL:

SUBSTRING ( string ,start_position, length)

ejemplos:

Aquí hay algunos ejemplos para ilustrar la sintaxis y el uso de la función INSTR() en MYSQL.,

para hacerlo, primero vamos a crear una tabla de ‘actores’ que contenga el ID del actor, su nombre, la película y la ciudad donde viven con fines de demostración. Podemos usar las siguientes instrucciones SQL para realizar la tarea.

CREATE TABLE Actors (
ActorID int,
LastName varchar(255),
FirstName varchar(255),
MovieName varchar(255),
City varchar(255)
);

habiendo creado la tabla ‘Actors’, ahora vamos a introducir alguna información en las columnas de la tabla usando instrucciones insert como se muestra a continuación.,

select * from Actors;

los datos en la tabla después de la operación de inserción se ven algo como esto :

ejemplos para implementar SQL INSTR()

ahora primero echemos un vistazo a cómo funciona realmente la función INSTR() en MYSQL utilizando algunos ejemplos muy simples como sigue.

ejemplo #1

consultas SQL simples para demostrar el funcionamiento básico de la función INSTR ().

SELECT INSTR ('FirstTestString','Test')as INSTR_TABLE;

del mismo modo, veamos un ejemplo más para comprobar si INSTR() es sensible a mayúsculas y minúsculas o no en MYSQL.,

SELECT INSTR('girl on the train','THE') as Position;

no es sensible a mayúsculas en MYSQL. Pero tenga en cuenta que la función INSTR() distingue entre mayúsculas y minúsculas en los servidores de base de datos Oracle/PL SQL.

en el ejemplo anterior, podemos observar que los espacios en blanco en el medio también se cuentan. En el futuro, practicaremos más ejemplos basados en la tabla de ‘actores’ que acabamos de crear.

Ejemplo # 2

encuentra el lugar de la primera aparición de la palabra ‘Girl’ en los nombres de las películas presentes en la base de datos de actores.,

SELECT MovieName, INSTR(MovieName,'Girl') as Position
FROM Actors;

podemos observar en el ejemplo anterior que la palabra «chica» no está presente en las películas ‘Sully’ y ‘el Diablo viste de Prada’, por lo tanto tenemos ‘0’ índice para ellos. Mientras que para el resto de ellos hemos recibido la primera ubicación/ posición de ‘girl’ en el nombre de la película.

Ejemplo # 3

Encuentre los nombres de las películas y los actores que actuaron en ellas, donde los nombres de las películas comienzan con la palabra ‘Girl’.

este ejemplo es principalmente para demostrar el uso de la función INSTR() en la cláusula WHERE.,

SELECT MovieName, FirstName, LastName
FROM Actors
WHERE INSTR(MovieName,'Girl') = 1;

Aquí, en este ejemplo, hemos tratado de utilizar la función INSTR() en la cláusula where parte de la consulta SQL. La función devuelve la ubicación inicial de la palabra ‘Girl’ en los nombres de las películas y luego la cláusula WHERE filtra los nombres de las películas en función de la ubicación.

Ejemplo # 4

Encuentre los nombres de las películas y los actores que actuaron en ellas, donde la palabra de ubicación inicial ‘Girl’ está en el índice 6 o menor.

este ejemplo es principalmente para demostrar el uso de la función INSTR() en la cláusula HAVING.,

SELECT MovieName, FirstName, LastName
FROM Actors
HAVING INSTR(MovieName,'Girl') < 6;

pero aquí hay un problema, los nombres de las películas sin ocurrencia de la palabra ‘Girl’ también llegaron a los resultados finales. Podemos personalizarlo aún más en la parte de la cláusula HAVING o WHERE de la consulta como se muestra a continuación.

SELECT MovieName, FirstName, LastName
FROM Actors
WHERE INSTR(MovieName,'Girl') != 0
HAVING INSTR(MovieName,'Girl') < 6;

ahora podemos observar que las películas irrelevantes como Sully y Devil wears Prada sin ocurrencia de la palabra ‘Girl’ se han eliminado y solo se mantienen los nombres de las películas que tienen la ubicación inicial de la palabra ‘Girl’ en el índice 6 o menor.,

artículos recomendados

Esta es una guía para SQL INSTR (). Aquí también discutimos la introducción y Sintaxis y parámetros de SQL instr () junto con diferentes ejemplos y su implementación de código. Usted también puede tener un vistazo a los siguientes artículos para aprender más –

  1. PostgreSQL se UNEN
  2. MySQL EN el Operador
  3. PostgreSQL Boolean
  4. Python SQLite
0 Shares