¿Qué es SQL?
sql
El nombre completo de SQL es "Lenguaje de consulta estructurado". Fue desarrollado por primera vez por el Laboratorio de Investigación St. Joseph de IBM para su sistema de gestión de bases de datos relacionales SYSTEM R. Un lenguaje de consulta. , su predecesor es el lenguaje SQUARE. El lenguaje SQL tiene una estructura simple, funciones potentes y es fácil de aprender. Por lo tanto, desde que IBM lo lanzó en 1981, el lenguaje SQL se ha utilizado ampliamente. Hoy en día, ya sean grandes sistemas de gestión de bases de datos como Oracle, Sybase, Informix o SQL Server, o sistemas de desarrollo de bases de datos de uso común en microcomputadoras como Visual Foxporo y PowerBuilder, todos admiten el lenguaje SQL como lenguaje de consulta.
SQL es un lenguaje de programación no procesal de alto nivel que permite a los usuarios trabajar en estructuras de datos de alto nivel. No requiere que los usuarios especifiquen el método de almacenamiento de datos ni que comprendan el método de almacenamiento de datos específico, por lo que diferentes sistemas de bases de datos con estructuras subyacentes completamente diferentes pueden usar el mismo lenguaje SQL como interfaz para la entrada y administración de datos. Utiliza colecciones de registros como objetos de manipulación. Todas las declaraciones SQL aceptan colecciones como entrada y devuelven colecciones como salida. Esta característica de colección permite que la salida de una declaración SQL se utilice como entrada de otra declaración SQL, por lo que el lenguaje SQL puede anidarse. lo que le da una gran flexibilidad y funciones poderosas. En la mayoría de los casos, un solo evento que requiere un programa grande en otros lenguajes se puede lograr con una sola declaración SQL. Esto también significa que se pueden escribir eventos muy complejos en lenguaje SQL. .
SQL es también la extensión del formato de archivo de base de datos.
El lenguaje SQL contiene 4 partes:
Lenguaje de consulta de datos (sentencia SELECT)
Lenguaje de manipulación de datos (sentencia INSERT, UPDATE, DELETE)
Lenguaje de definición de datos (como CREATE, DROP y otras declaraciones)
Lenguaje de control de datos (como COMMIT, ROLLBACK y otras declaraciones)
Tomado de "http://zh .wikipedia.org/wiki/SQL"
SQL (lenguaje de consulta estructurado) es un lenguaje de programación y consulta de bases de datos que se utiliza para acceder a datos y consultar, actualizar y administrar sistemas de bases de datos relacionales. El Instituto Nacional Estadounidense de Estándares (ANSI) y la Organización Internacional de Normalización (ISO) han desarrollado estándares SQL. ANSI es una organización industrial y empresarial estadounidense que desarrolla estándares comerciales y de comunicaciones en los Estados Unidos. ANSI también es miembro de ISO y de la Comisión Electrotécnica Internacional (IEC). ANSI publica estándares estadounidenses que corresponden a organizaciones de estándares internacionales. En 1992, ISO e IEC publicaron un estándar internacional para SQL, llamado SQL-92. El estándar correspondiente publicado por ANSI es ANSI SQL-92. ANSI SQL-92 a veces se denomina ANSI SQL. Aunque existen algunas diferencias en las versiones de SQL utilizadas por diferentes bases de datos relacionales, la mayoría sigue el estándar ANSI SQL. SQL Server utiliza un conjunto de extensiones de ANSI SQL-92, llamado T-SQL, que sigue el estándar SQL-92 establecido por ANSI.
El lenguaje SQL incluye declaraciones de dos categorías principales de lenguajes de programación: lenguaje de definición de datos (DDL) y lenguaje de manipulación de datos (DML). A continuación presentaremos estos dos tipos de lenguajes.
DDL
DDL se utiliza para definir y administrar objetos, como bases de datos, tablas y vistas (el Capítulo 18 explicará qué es una vista).
Las sentencias DDL normalmente incluyen comandos CREATE, ALTER y DROP para cada objeto. Por ejemplo, declaraciones como CREATE TABLE, ALTER TABLE y DROP TABLE se pueden usar para crear nuevas tablas de datos, modificar sus propiedades (como agregar o eliminar filas de datos), eliminar tablas de datos, etc. Las presentaremos una por una a continuación. .
Instrucción CREATE TABLE
Utilice DDL para crear una tabla de datos de muestra denominada Customer_Data en la base de datos MyDB. Usaremos esta tabla de datos en los ejemplos posteriores en este capítulo. Como se mencionó anteriormente, la declaración CREATE TABLE se puede utilizar para crear tablas. Esta tabla de datos de ejemplo se define como cuatro filas de datos, de la siguiente manera:
Usar MyDB
CREATE TABLE Customer_Data
(customer_id smallint,
first_name char(20),
apellido char(20),
teléfono char(10))
GO
Esta declaración genera la tabla Customer_Data, que permanecerá vacía hasta que se completen los datos.
Instrucción ALTER TABLE
La instrucción ALTER TABLE se utiliza para cambiar la definición y los atributos de la tabla de datos. En el siguiente ejemplo, usamos ALTER TABLE para agregar una fila de datos middle_initial a la tabla Customer_Data existente.
ALTER TABLE Customer_Data
ADD middle_initial char(1)
GO
Ahora la definición de la tabla de datos incluye cinco filas de datos, En lugar de las cuatro filas de datos anteriores. Consulte el Capítulo 15 para obtener más detalles sobre el uso de ALTER TABLE.
Declaración DROP TABLE
La declaración DROP TABLE se utiliza para eliminar la definición de la tabla de datos y todos los datos, índices, activadores, restricciones condicionales y permisos de la tabla de datos. Para eliminar nuestra tabla Customer_Data, podemos usar el siguiente comando:
DROP TABLE Customer_Data
GO
Para obtener detalles sobre la declaración DROP TABLE, consulte el Capítulo 15. .
DML
DML utiliza declaraciones como INSERT, SELECT, UPDATE y DELETE para manipular los datos contenidos en los objetos de la base de datos.
Instrucción INSERT
La instrucción INSERT se utiliza para insertar una columna de datos en una tabla de datos o tabla de vista. Por ejemplo, si desea agregar un nuevo cliente a la tabla Customer_Data, puede usar una instrucción INSERT similar a la siguiente:
INSERT INTO Customer_Data
(customer_id, first_name, last_name , teléfono)
VALUES (777, "Frankie", "Stein", "4895873900")
Tenga en cuenta la lista de nombres de filas de datos en la segunda línea de la declaración SQL. El orden determina en qué fila de datos se colocará el valor de los datos. Por ejemplo, el primer valor de datos se colocará en la primera fila de datos de la lista, customer_id, el segundo valor de datos en la segunda fila de datos, y así sucesivamente.
Dado que cuando creamos la tabla de datos, el orden en el que completamos los valores en las filas de datos es el mismo que ahora, no necesitamos especificar los nombres de los campos. En su lugar, podemos utilizar la siguiente instrucción INSERT:
INSERT INTO Customer_Data
VALUES (777, "Frankie", "Stein", "4895873900")
Nota
Si utiliza esta forma de instrucción INSERT, pero los valores insertados están en un orden diferente al que creó cuando creó la tabla de datos, los valores se colocarán en las filas de datos incorrectas. Si el tipo de datos no coincide con la definición, recibirá un mensaje de error.
------------------------------------------- ----- -------------------------------------
SELECCIONAR declaración
La declaración SELECT se utiliza para recuperar datos de la tabla de datos, y los datos que se recuperan están determinados por las filas de datos enumeradas y la cláusula WHERE en la declaración. Por ejemplo, si desea recuperar las filas de datos customer_id y first_name de la tabla Customer_Data creada previamente y solo desea recuperar los datos cuyo valor de la fila de datos first_name es Frankie en cada columna, puede usar la siguiente instrucción SELECT:
SELECT customer_id, first_name FROM Customer_Data
WHERE first_name = "Frankie"
Si hay una columna que cumple con los criterios en la instrucción SELECT, los resultados se mostrarán como siguiente:
customer_id first_name
------------- ------------
777 Frankie
Declaración UPDATE
La declaración UPDATE se utiliza para actualizar o cambiar los valores en una o más columnas. Por ejemplo, si un cliente llamado Frankie Stein desea cambiar su apellido a Franklin en el registro, puede usar la siguiente instrucción UPDATE:
UPDATE Customer_Data
SET first_name = "Franklin "
WHERE last_name = "Stein" y customer_id= 777
Agregamos el elemento customer_id en la cláusula WHERE para garantizar que otros clientes llamados Stein no se vean afectados; solo customer_id para 777 clientes, se cambiará el apellido.
------------------------------------------- ----- -------------------------------------
Instrucciones
Cuando utilice la instrucción UPDATE, asegúrese de proporcionar suficientes condiciones de filtrado en la cláusula WHERE para no cambiar inadvertidamente algunos datos que no deberían cambiarse.
------------------------------------------- -- -------------------------------------
Declaración BORRAR p >
La instrucción DELETE se utiliza para eliminar datos en una o más columnas de la tabla de datos. También puede eliminar todas las columnas de datos de la tabla de datos. Para eliminar todas las columnas de la tabla Customer_Data, puede utilizar las siguientes instrucciones:
DELETE FROM Customer_Data
o
DELETE Customer_Data
La palabra clave FROM antes del nombre de la tabla de datos es opcional en la declaración DELETE. Por lo demás, las dos afirmaciones son idénticas.
Para eliminar la fila de datos customer_id de la tabla Customer_Data cuyo valor es menor que 100, puede utilizar la siguiente declaración:
DELETE FROM Customer_Data
WHERE customer_id lt ; 100
Ahora que hemos echado un vistazo rápido a las declaraciones DDL y DML proporcionadas por SQL, presentaremos T-SQL a continuación.
Los cinco tipos de datos en SQL
Describe brevemente los cinco tipos de datos en SQL: carácter, texto, numérico, lógico y fecha
Tipo de carácter
VARCHAR VS CHAR
La diferencia entre datos de tipo VARCHAR y tipo CHAR es sutil, pero muy importante. Se utilizan para almacenar cadenas cuya longitud sea inferior a 255 caracteres.
Supongamos que ingresa datos BIll GAtES en un campo VARCHAR con una longitud de cuarenta caracteres. Cuando más adelante recupere estos datos de este campo, los datos que recupere tendrán diez caracteres, la longitud de la cadena Bill Gates. Ahora, si ingresa una cadena en un campo CHAR con una longitud de cuarenta caracteres, cuando recupere los datos, la longitud de los datos recuperados será de cuarenta caracteres. Se agregarán espacios adicionales al final de la cadena.
Cuando cree su propio sitio, encontrará que usar campos VARCHAR es mucho más conveniente que los campos CHAR. Al utilizar campos VARCHAR, no necesita preocuparse por recortar espacios adicionales en sus datos.
Otro beneficio destacado del campo VARCHAR es que ocupa menos memoria y espacio en el disco duro que el campo CHAR. Este ahorro de memoria y espacio en disco se vuelve muy importante cuando tu base de datos es grande
Texto
TEXTO
Utiliza datos de texto, puedes almacenar cadenas de más de dos mil millones personajes. Los datos de texto deben usarse cuando necesite almacenar grandes cadenas de caracteres.
Tenga en cuenta que los datos de texto no tienen longitud, mientras que los datos de caracteres mencionados en la sección anterior sí tienen longitud. Los datos de un campo de texto suelen estar vacíos o son muy grandes.
Cuando recopilas datos del cuadro de edición de texto de varias líneas de HTML forM (TEXTAREA), debes almacenar la información recopilada en un campo de texto. Sin embargo, siempre que puedas evitar el uso de campos de texto, no debes usarlos. Los campos de texto son grandes y lentos, y el uso excesivo de ellos puede ralentizar el servidor. Los campos de texto también consumen mucho espacio en disco.
Una vez que ingrese cualquier dato (incluso un valor nulo) en un campo de texto, se asignarán automáticamente 2K de espacio a los datos. No podrá recuperar este almacenamiento a menos que elimine el registro.
Tipo numérico
SQL admite muchos tipos diferentes de datos numéricos.
Puede almacenar números enteros como INT, decimales como NUMERIC y dinero como MONEY.
INT VS SMALLINT VS TINYINT
Su diferencia es solo la longitud de los caracteres:
El rango de números de tabla de datos de tipo INT es de -2, 147, 483 , 647 a 2, 147, 483, 647
Los datos de tipo SMALLINT pueden almacenar números enteros de -32768 a 32768
Los campos de tipo TINYINT solo pueden almacenar números enteros de 0 a 255. No se puede utilizar para almacenar números negativos
Generalmente, para ahorrar espacio, se deben utilizar tanto como sea posible los datos enteros más pequeños. Un dato de tipo TINYINT ocupa solo un byte; un dato de tipo INT ocupa cuatro bytes. Puede que esto no parezca una gran diferencia, pero en tablas más grandes, el número de bytes aumenta muy rápidamente. Por otro lado, una vez creado un campo, es complicado modificarlo. Por lo tanto, para estar seguro, debe predecir el valor máximo posible que un campo debe almacenar y luego elegir el tipo de datos apropiado.
NUMÉRICOS
Para tener más control sobre los datos almacenados en el campo, puede utilizar datos NUMÉRICOS para representar tanto la parte entera como la parte decimal de un número. Los datos NUMÉRICOS le permiten representar números muy grandes, mucho más grandes que los datos INT. Un campo NUMÉRICO puede almacenar números en el rango de -1038 a 1038. Los datos NUMÉRICOS también le permiten representar números con partes decimales. Por ejemplo, puede almacenar el decimal 3,14 en un campo NUMÉRICO.
Al definir un campo NUMÉRICO, es necesario especificar tanto el tamaño de la parte entera como el tamaño de la parte decimal. Por ejemplo: MUNERIC(23,0)
La parte entera de un dato de tipo NUMÉRICO solo puede tener un máximo de 28 dígitos. El número de dígitos en la parte decimal debe ser menor o igual al número. de dígitos en la parte entera La parte decimal puede ser cero.
DINERO VS PEQUEÑO DINERO
Puedes utilizar datos de tipo INT o NUMÉRICO para almacenar la cantidad de dinero. Sin embargo, existen otros dos tipos de datos que se utilizan específicamente para este propósito. Si desea que su establecimiento gane mucho dinero, puede utilizar datos de tipo DINERO. Si eres menos ambicioso, puedes utilizar datos de tipo SMALLMONEY. Los datos de tipo DINERO pueden almacenar dinero desde -922.337.203.685.477,5808 a 922.337.203.685.477,5807. Si necesita almacenar cantidades mayores que esta, puede usar datos NUMÉRICOS.
Los datos de tipo SMALLMONEY solo pueden almacenar dinero desde -214.748,3648 hasta 214.748,3647. Asimismo, si es posible, debes utilizar datos del tipo SMALLMONEY en lugar de datos del tipo MONEY para ahorrar espacio.
Lógico
BIT
Si utiliza casillas de verificación (CHECKBOX) para recopilar información de las páginas web, puede almacenar esta información en campos BIT. Los campos de tipo BIT sólo pueden tomar dos valores: 0 o 1.
Tenga cuidado, después de crear una tabla, no puede agregar campos BIT a la tabla. Si planea incluir campos BIT en una tabla, debe hacerlo cuando cree la tabla.
Tipo de fecha
DATETIME VS SMALLDATETIME
Un campo de tipo DATETIME puede almacenar el rango de fechas desde el primer milisegundo del 1 de enero de 1753 hasta 9999 El último milisegundo de 31 de diciembre.
Si no necesita cubrir un rango tan amplio de fechas y horas, puede utilizar datos de tipo SMALLDATETIME.
Se utiliza de la misma manera que los datos de tipo DATETIME, excepto que el rango de fecha y hora que puede representar es más pequeño que los datos de tipo DATETIME y no es tan preciso como los datos de tipo DATETIME. Un campo de tipo SMALLDATETIME puede almacenar fechas desde el 1 de enero de 1900 hasta el 6 de junio de 2079 y solo puede tener una precisión de segundos.
Es importante tener en cuenta que los campos DATETIME no contienen datos reales hasta que ingresa la fecha y la hora.