Script Completo de SQL Server para Creación de Bases de Datos y Tablas

Informática4,62 KB

Creación y Configuración de la Base de Datos

Este script inicia configurando el contexto en la base de datos maestra y procede a crear una nueva base de datos llamada sales con archivos de datos y de registro específicos.

use master

create database sales 

on primary 
(
    name='salesdata', 
    filename='C:\data\salesdata.mdf', 
    size=10mb, 
    maxsize=500mb, 
    filegrowth=25% 
)

log on 
(
    name='saleslog', 
    filename='C:\data\saleslog.ldf', 
    size=5mb, 
    maxsize=100mb, 
    filegrowth=10% 
)

Gestión de Grupos de Archivos (Filegroups)

Se añade un grupo lógico adicional y un archivo secundario para optimizar el almacenamiento de la base de datos.

--- Agregar un grupo lógico adicional a la base de datos
alter database sales 
add filegroup secundario

--- Agregar un archivo al grupo lógico nuevo
alter database sales 
add file 
(
    name='salessec', 
    filename='C:\data\salessec.ndf', 
    size=10mb, 
    maxsize=500mb, 
    filegrowth=25% 
) to filegroup secundario

Mantenimiento y Propiedades

Comandos útiles para revisar la estructura, el estado de las propiedades y solucionar problemas comunes como los diagramas de base de datos.

--- Revisar la base de datos
sp_helpdb sales

--- Revisar opciones de la base de datos
select DATABASEPROPERTYEX('sales', 'ISAUTOSHRINK')

alter database sales 
set auto_shrink off

--- Cuando no se puede crear el diagrama de base de datos
ALTER AUTHORIZATION ON DATABASE::[sales] TO [sa];

Creación de Tablas (DDL)

Definición de las tablas principales del sistema utilizando sentencias DDL (Data Definition Language), incluyendo llaves primarias y foráneas.

Tabla de Clientes

create table tclient -- create es un DDL
(
    id_cliente char(7) not null primary key, 
    nombre varchar(50) not null, 
    apater varchar(20) not null, 
    amater varchar(20) not null, 
    DNI char(8) null, 
    telefono char(9) null, 
    direccion varchar(50) null,
);

Tabla de Productos

create table tproduct
(
    id_producto char(8) not null primary key, 
    nombre varchar(50) not null, 
    decripcion varchar(50) null, 
    precio decimal(9,2) not null,
);

Tabla Intermedia (Relación Muchos a Muchos)

create table tproducto_cliente
(
    id_cliente char(7) not null, 
    id_producto char(8) not null, 
    cantidad int not null,

    CONSTRAINT [PK_tproducto_cliente] PRIMARY KEY CLUSTERED 
    (
        [id_producto] ASC, 
        [id_cliente] ASC 
    )
);

alter table [tproducto_cliente] add constraint [FK_tproducto_cliente_tproducto] foreign key([id_producto]) 
references tproduct ([id_producto])
go

alter table [tproducto_cliente] add constraint [FK_tproducto_cliente_tcliente] foreign key ([id_cliente]) 
references tclient ([id_cliente])
go

Inserción de Datos (INSERT / DML)

Ejemplos de cómo insertar registros utilizando valores directos y el uso de variables declaradas.

-- Inserciones directas
insert into tcliente(codigo, nombre, apellidos, DNI, direccion, telefono)
values('11712300', 'ROMAN', 'SAAVEDRA TORRES', '75712752', 'josue saavedra', '942461263')

insert into tcliente
values('11711500', 'LISBETH', 'SANTILLAN DAVILA', '23423433', 'NO SE', '4221456789')

-- Inserción con variables
declare @codigo char(8)
declare @nombre varchar(50)
declare @apellidos varchar(50)
declare @direccion varchar(50)
declare @DNI char(8)
declare @telefono char(10)

set @codigo = '11712301'
set @nombre = 'ROMAN '
set @apellidos = 'SAAVEDRA TORRES'
set @direccion = 'Josue saavedra'
set @DNI = '75712752'
set @telefono = '9424612638'

insert into tcliente(codigo, nombre, apellidos, direccion, DNI, telefono)
values(@codigo, @nombre, @apellidos, @direccion, @DNI, @telefono)

Consultas y Filtros (SELECT)

Ejemplos de consultas básicas y avanzadas utilizando el operador LIKE para filtrado de patrones en cadenas de texto.

-- Consulta básica de campos específicos
select nombre, apellidos, direccion, codigo, DNI, telefono 
from tcliente

-- Ver todos los campos con filtro terminando en 's'
select * 
from tcliente 
where nombre like '%s'

-- Ver todos los campos con filtro que contengan 's'
select * 
from tcliente 
where nombre like '%s%'

-- Ver todos los campos con filtro donde la segunda letra sea 's'
select * 
from tcliente 
where nombre like '_s%'

-- Ver todos los campos con filtro avanzado usando conjuntos
select * 
from tcliente 
where nombre like '_[a,e]%'

Descargar

PDF Word HTML