Crear un CRUD datos de consulta SQL sub-consulta revisión de las bases de datos de la gramática de bases de datos y tablas agrupadas

Enlaces de referencia:

A. Crear una base de datos de sintaxis

--用master数据库
use master
--判断数据库是否存在,若存在则删除
if exists (select * from sysdatabases where name='数据库名称')
drop database 数据库名称
--创建数据库
create database 数据库名称
on(                 --指定主文件的属性
    name='',        --文件的逻辑名称(数据之间的相互关系)
    filename='',    --文件的物理名称(数据存储的路径)
    size='',        --文件的初始大小
    maxsize='',     --文件的最大值
    filegrowth=''   --文件的增长方式
)
log on(             --指定日志文件的属性
    name='',        --文件的逻辑名称
    filename='',    --文件的物理名称
    size='',        --文件的初始大小
    filegrowth=''   --文件的增长方式
)
--查看数据库
exec sp_helpdb 数据库名称;
--修改数据库名称
alter database 数据库名称
modify name='';
--修改数据库文件
alter database 数据库名称
modify file(        
    name='',
    filename='',
    size='',
    filegrowth=''
)

II. Crear una tabla de datos

--指定用什么数据库
use 数据库名称
--判断数据表是否存在,若存在则删除
if exists (select * from sysobjects where name='数据表名称')
drop table 数据表名称
--创建数据表
create table 数据表名称(
    --一般不直接添加约束
    字段名称 字段类型 字段特征(默认值DF_、标识列、主键PK_、关系FK_、索引UQ_、检查CK_、非空)       
)

--为字段添加约束
alter table 数据表名称
add constraint 约束名称 约束(指定字段) [references 主表(主键或唯一键)];
--删除约束
alter table 数据表名称
drop constraint 约束名称;

--增加外键约束时,设置级联删除、级联更新  on delete cascade;
[ ON DELETE { NO ACTION | CASCADE | SET NULL | SET DEFAULT } ]  删除
[ ON UPDATE { NO ACTION | CASCADE | SET NULL | SET DEFAULT } ]  更新
--on--在做何种操作的时候做相应的处理
--NO ACTION--不做任何操作:该报错就报错,可以删除就删除
--CASCADE:级联:删除主表,对应的从表数据也会删除,更新也一样
--SET NULL:如果删除主表的记录,那么对应的从表记录的字段值会被设置为null,前提是从表的这个字段的值可以是null
--SET DEFAULT :删除主表记录,从表的记录的对应字段值设置为默认值,前提是你之前为这个字段设置了默认值

--修改字段的类型及约束
alter table 数据表名称
alter column 字段名称 字段类型 约束;
--添加字段
alter table 数据表名称
add 字段名称 字段类型 [not null];   
--删除某个字段
alter table 数据表名称
drop column 字段名称;
--修改字段名称
exec sp_rename '数据表名称.原字段名称','新字段名称','column';

III. Datos Agregando

--一次添加一行数据,实参与形参 参数类型 参数个数 参数顺序 都必须一致
insert into 表名(形参)      
values(实参)

--1.默认约束可以不指定列名
--2.自增不能显示的添加
--3.允许为null值的字段可直接设置null值,也可不指定列名

--一次添加多行数据时添加顺序不是按照书写的顺序添加的,而是按照第一个字段的首a-z字母或者数字从小到大添加的
--一次添加多行数据
insert into 表名(形参)
select 实参 union
select 实参;
--或者
insert into 表名(形参)
values(实参),(实参);

--从别的表中copy数据
insert into 表1(形参)  
select 实参 from 表2;

--将从数据源选择的数据插入到新表中并显示,新表是系统创建的,之前必须不存在
select * into 新表 from 数据源;
--将从数据源选择后得到的结果集添加到目的表中, 目的表必须存在
insert into 目的表 select * from 数据源;

IV. Borrado de Datos

--标识列不会从标识种子开始,可以回滚(恢复数据)
delete from 表名;
--条件与查询语句中条件一样:关系、逻辑运算符、like、in、between...
delete from 表名 where 条件;
--标识列会从标识种子开始
truncate table 表名;

datos V. Modificar

--条件与查询语句中条件一样:关系运算符、逻辑运算符、like、in、between...
update 表名 set 字段=值,... where 条件

1. Los operadores y funciones incorporadas

Los operadores relacionales: = < > >= <= != <>
operadores lógicos:not / and / or / is null / is not null

Las funciones integradas:

  • Funciones de cadena:
    • CharIndex('ab','cdab') Volver "3" - devuelve "ab" en la posición "CDAB" volverá a la primera posición de una carta
    • Len('我是谁')Volver "3" - devuelve una longitud de la cadena
      - substring('abd',2,2)devuelve "BD" - desde la segunda posición para interceptar una cadena de longitud 2
  • función de la fecha:
    • GetDate() Devuelve la fecha actual
    • DateName(DW,'2009-09-09') Volver especificar una fecha como una cadena de una parte del "Miércoles"
    • DateDiff(dd,'2009-09-09','2010-10-09')Devuelve el intervalo entre dos fechas, yy es el año, MM es el mes, dd es el día
      - DatePart(DW,'2009-09-09')retorno a "4" para volver a una fecha especificada como una parte entera de (los Estados Unidos: el domingo es el primer día de diciembre para el primer mes)
  • Funciones matemáticas:
    • Abs(-1) valor absoluto
    • Ceiling(24.1)El mayor número entero más pequeño que el 24,1
      - Floor(24.1)mayor entero menor que 24,1
    • round(18.6) Un positivo o redondeo negativo, el resultado es el valor de una cierta longitud
  • funciones del sistema
    • Convert(varchar(3),123) Volver "123" Tipos de datos de conversión
    • DataLength("12中国") Volver "6" devuelve el número de bytes de datos de cualquier tipo, caracteres de 2 bytes

VI. Datos de consulta

1. gramática básica

select top|distinct 值/[percent] */表名.字段 别名,... ['上海' as 城市],...   from 表名 别名   where 条件   group by 字段    having 条件   order by 字段别名
  1. top 值/[percent]: Generalmente se usa en conjunción con el fin de, cuando el conjunto de resultados es tomar un porcentaje del techo decimal; línea de límite es el último paso de hacer una consulta, ordenar, línea de límite
  2. distinct 字段: Filtrar los registros duplicados
  3. 表名.字段: Consultas internas más rápidamente de esta manera, si se selecciona un grupo por el campo: se encuentran en el registro de valor es una relación
  4. 字段 as 别名; 字段 别名; 别名=字段; - tres maneras se pueden
  5. Puede agregar constantes se enumeran :'上海' as 城市
  6. donde las condiciones:
    • 关系 (> <> = <=! = <>)
    • Los operadores lógicos (y / o / no)
    • 字段 [not] in(具体值1、具体值2)/(子查询): El uso, en particular, representa un intervalo de valores, en requisitos de acuerdo gama de tipos de datos especificados; subconsultas se pueden utilizar
    • 字段 [not] between 数值1/日期1 and 数值2/日期2: Si es numérico determinado o intervalo de tiempo puede ser utilizado entre ... y
    • 字段 [not] like '张%'、'张_'、'1[1-8]'、'[^21-35]' --'1[1-8]'表示11-18: [^21-35]Representación además de la 1,2,3,5 (válido sólo en comodín consulta difusa)
      • % : Representa cualquier número de caracteres
      • ** _ **: representa cualquier carácter individual
      • [] : Representa cualquiera de un rango de valores de un carácter específico [0-9][a-z]coincide sólo con un carácter
      • [^] : Representante no está dentro del intervalo especificado, en el [] que tienen este sentido - valor negado único apoyo MSSQL Server, con no como otros datos MSDB
  7. group by : El grupo de datos especifica la columna, la columna con el mismo valor de la fila designada como un grupo
  8. having条件: Campo o bien de paquetes, o bien las de polimerización condiciones: la condición donde el mismo
    • donde la diferencia cláusula y que tiene cláusula:
      • donde cláusula relativa a una sola fila, teniendo cláusulas relacionadas con el grupo
      • donde cláusula no se puede polimerizar directamente como una función de la condición de búsqueda, y que tiene una función se puede polimerizar como condición de búsqueda, pero después de haber no utilizar alias de campo
      • cláusula where con diferente orden de ejecución que tienen cláusulas
  9. order by 字段 [desc]...: El valor por defecto es asc, puede ordenar a múltiples campos

2. Función de polimerización

función de agregado es un conjunto de campos de datos después se analizaron algún conjunto de cribado resultados.

--聚合函数:参数一般是字段
select max(字段),min(字段)...  /  select count(*),max(字段) from 表名 where 条件
  • max(数值、字符串、日期) : Selección del valor máximo de la gama de datos especificado: puede ser cualquier tipo de polimerización, si se trata de valores no numéricos en la ordenada alfabéticamente
  • min(数值、字符串、日期) : Reducción al mínimo de la gama de datos especificado: puede ser cualquier tipo de polimerización, si se trata de valores no numéricos en la ordenada alfabéticamente
  • avg(数值) : Un promedio del rango especificado de valores de datos que sólo puede ser polimerizado, la polimerización no puede fecha
  • sum(数值) : Demanda y de los datos especificados variar, sólo puede polimerización numérico, la polimerización no puede fechar
  • count(*/一个字段) : Buscando el número de registros que satisfacen la condición, no hay ninguna relación con el campo; computar el número de registros o un número especificado de valor no nulo de la columna
    • El valor por defecto es el carácter espacio mínimo
    • Cuerda: Carácter AZ, personajes ortografía fonética; cuanto mayor sea el valor, más alfabético
    • Fecha: La fecha más pronto cuanto menor sea el valor

3. consultas de agrupación

Consulta 7 Palabras clave:

select [top] from [where] [group by] [having] [order by]

Para consulta de los estados:

5.select 7.top 字段列表 1.from  表列表 2.where 源数据筛选条件 3.group by 分组统计字段列表 4.having 对分组统计结果集做筛选 6.order by 得到最终结果集之后的数据重排

1. En primer lugar se adquiere de la fuente de datos 2 y luego el filtrado, donde la fuente de datos 3 de nuevo al grupo de fuentes de datos de grupo, 4. y luego tener que hacer el filtrado de paquetes estadísticas del conjunto de resultados, [Polimerización La polimerización función del análisis conjunto de resultados] 5 de nuevo para fijar el resultado seleccionar la visualización filtrada, 6. orden por los datos a continuación, el conjunto de resultados finales de reordenamiento, 7, finalmente, de nuevo las líneas de límite superior del conjunto de resultados y luego

Solución de problemas:

  • ¿Por donde no se puede utilizar agregados funciones (función de agregado no puede ser utilizado directamente como criterios de búsqueda donde cláusula)? - necesidad de filtrar la fuente de datos y a continuación, utilizando la función de conjunto de resultados agregación entonces análisis muestran polimerización
  • ¿Por qué no usar el estudiante que tiene las columnas en la tabla? - resultado agrupado establece sólo para el campo de resultado después de la agrupación, ignorará la tabla de los estudiantes en otros campos
  • Por qué no estamos tener que utilizar un alias? - estadísticas primer paquete de conjuntos de resultados hacen la proyección, durante el espectáculo
  • ¿Por qué puede ordenar utilizando un alias? - el conjunto de resultados finales que se mostrará, el reordenamiento de datos
  • Cuando el grupo no es un grupo, que se puede utilizar con el cribado, pero no hay ninguna importancia práctica
  • Y no contar con la classid pantalla, mientras que el filtrado de la fuente de datos es un valor de recuento de paquetes, y unos valores classid pluralidad para cada valor del campo en el conjunto de resultados deben ser filtrados a-uno. Valores de campo individuales no se pueden aplicar grupo, teniendo cláusula debe ser un conjunto de columnas de columnas
  • pregunta general Grupo está apareciendo en la consulta 'cada' o 'individuo' ... cuando la palabra agrupación

4. consulta de combinación (tabla de conexión)

conexión de tabla:

  1. De conexión cruzada (producto cartesiano): from 结果集 cross join 结果集
  2. El conector (relación condicional suficientes coincidencias): from 结果集 inner join 结果集 on 条件condiciones --en (con la mayor relación de clave campo exterior)
  3. Un conector externo (no coincide con la recuperación): from 结果集 left|right|full join 结果集 on 条件

Sintaxis Nota: Muchos están escritos en línea, siguiendo este enfoque no es recomendable

--国际组织ANSI-SQL 89版语法(当时还没有外连接)
select * from Employee, Title;      --交叉连接
select * from Employee t1, Title t2 where t1.titleId=t2.titleId;    --内连接

Atención al problema:

  1. Consulta de combinación es una pluralidad de tablas de condiciones de empalme correspondientes en una tabla de resultados

    • Seleccionar * de la tabla se pueden conectar; mostrar todos los campos de todo el
    • Seleccione de la tabla se puede conectar al campo, y si el mismo campo de selección de nombre, se debe especificar en la tabla, no el mismo campo nombre no puede especificar
  2. Después de la conexión debe ser tomado de la lista de alias de la tabla, o para producir una tabla intermedia, la tabla con el mismo nombre se genera debido a un error

  3. En consulta se puede aplicar para alcanzar donde - el quinto punto de la descripción

  4. Alternativamente cláusula where tener cláusulas: puede ser reemplazado cuando se realiza la misma función: HAVING donde utilizado puede ser reemplazado con un conjunto de columnas durante la selección, no sustituido con una función de detección donde el uso de la polimerizado

    • where StuNo = 6 ; Filtrado de los datos de origen StuNo fila 6 (equivalente a StuNo para el grupo 6) - Esta consulta más rápido, después de todo, menos de la siguiente declaración
    • group by StuNo having StuNo = 6; StuNo el paquete, seguido por el cribado de grupo 6 StuNo
    1. from 结果集1 ... join 结果集2 ... join ... on 连接条件--en no se pueden utilizar en la sustitución, se producirá un error de sintaxis

    from 结果集1,结果集2,... where 连接条件 --donde no se puede utilizar en sustitución

5.union funciones de conversión de operador y tipo

1.union operadores

operador de unión: unión puede incorporar una pluralidad de conjuntos de resultados

Use dos premisas y una nota:

  • El número total de columnas del conjunto de resultados debe coincidir exactamente
  • Columna correspondiente al tipo de la fusión de una pluralidad de conjuntos de resultados debe ser coherente (intercambiable)
  • Los resultados se exponen sólo el nombre de un conjunto de resultados sobre (nota)

la unión y la unión toda la diferencia:

  • Unión: hacer operaciones distintas, ficha filtrado de repetición
  • la unión de todo: la operación no es distinta, es más alta eficiencia combinada, porque no hay necesidad de juzgar si el resultado de la grabación repetida
2. Funciones de conversión
  • fundido (como el tipo de datos de origen de destino): print '我的总成绩是:'+cast(200 as varchar(30))
  • convert (tipo de destino, los datos fuente, el formato):
    • print '我的总成绩是:'+convert(char(3),200)
    • select convert(char(30),GETDATE(),121)

6. subconsulta

Subconsulta: En una consulta, los resultados de una consulta como condición para otra consulta, la consulta se denomina sub-consulta, las condiciones de la consulta se llama la consulta externa.

Consulta y de varios valores escalares sub-consulta:

  • subconsulta escalar: valor subconsulta sola (resultado de la consulta es un único valor) = donde el campo (valor único subconsulta)
  • multivalor subconsulta: varios valores subconsulta (un resultado de la consulta es más de un valor) donde el campo de (sub consultas de valores múltiples)

sub-consultas independientes y la sub-consulta pertinente:

  • sub-consulta independiente: Campo y la consulta externa no importa, puedes echar un vistazo a los resultados de una investigación independiente

  • consulta correlacionada: condiciones en un campo con una tabla de consulta campos externos están vinculados, no resultados de la encuesta independientes

    子查询中 where 字段 = 外表名.字段(多值时也可以)

Supongo que te gusta

Origin www.cnblogs.com/itzlg/p/12503804.html
Recomendado
Clasificación