Foro de elhacker.net

Programación => Bases de Datos => Mensaje iniciado por: yoelrodguez en 5 Abril 2020, 03:14 am



Título: Duda una tabla con una base de datos SQL
Publicado por: yoelrodguez en 5 Abril 2020, 03:14 am
Tengo la siguiente situación me pidieron hacer un proyecto con una base de datos SQL ya creada pero me encuentro que los nombres de las tablas y los campos de las tablas están escritos con espacios y cuando trato de ejecutar mi consulta me envía un error de sintaxis. Esta base datos se encuentra funcionando con una aplicación hecha en Visual Basic y yo estoy haciendo una aplicación web con php y sql server. A continuación le dejo mi código:


Código:
Select Customer.AR Cust Password, Customer.AR Cust User Name FROM AR Customer AS Customer

Error:
Citar
19:04:05 Kernel error: [FreeTDS][MSSQL Server] , Server EC2AMAZ-977S99A\APPBSC, Line 1
Incorrect syntax near 'Password'.


Título: Re: Duda una tabla con una base de datos SQL
Publicado por: WHK en 5 Abril 2020, 05:44 am
Bueno, utilizar espacios en blanco como nombre de tablas o columnas es una pésima practica, de hecho ni si quiera debieran tener mayúsculas.

Prueba con esto:

Código:
Select
    Customer.`AR Cust Password`, Customer.`AR Cust User Name`
FROM `AR Customer` AS Customer

Para que le pones "AR Cust Password" de nombre de columna en una tabla que ya se llama "AR Customer", está claro que todos los campos le pertenecen a "AR Customer", no tienes porque replicar el nombre de la tabla en las columnas.

Código:
CREATE TABLE customers (
    id LONG NOT NULL PRIMARY KEY,
    identifier UUID NOT NULL,
    username varchar(45) NOT NULL,
    password varchar(45) NOT NULL
);

Igual hacen falta muchas columnas adicionales, como el salt que sumará el hash de la contraseña (no esperarás poner la contraseña en texto plano en la base de datos), el correo del usuario, el hash de recuperación de contraseñas, la tabla de sesiones, etc.

Saludos.


Título: Re: Duda una tabla con una base de datos SQL
Publicado por: Filantropo en 7 Abril 2020, 23:40 pm
Para los campos con espacios creo se encierran con los [ ]

Código:
Select [AR Cust Password], [AR Cust User Name] FROM AR Customer AS Customer



Título: Re: Duda una tabla con una base de datos SQL
Publicado por: WHK en 8 Abril 2020, 18:52 pm
Eso solo funciona en Microsoft SQL Server, no es parte del lenguaje SQL estandar.


Título: Re: Duda una tabla con una base de datos SQL
Publicado por: Serapis en 8 Abril 2020, 23:36 pm
Seguro que son espacios y no barras bajas "_" ???.
Nombre_Cliente en vez de "Nombre Cliente"


Título: Re: Duda una tabla con una base de datos SQL
Publicado por: yoelrodguez en 11 Abril 2020, 05:55 am
Muchas gracias con los [] logre resolver el problema y si estoy usando SQLserver.