Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » SQL Server »

creacion de tablas en sql server 2008

Estas en el tema de creacion de tablas en sql server 2008 en el foro de SQL Server en Foros del Web. amigos soy nuevo en este foro y tambien en la creacion de base de datos con sql server 2008 por favor me pueden ayudar en ...
  #1 (permalink)  
Antiguo 08/12/2011, 19:21
 
Fecha de Ingreso: diciembre-2011
Mensajes: 32
Antigüedad: 12 años, 4 meses
Puntos: 0
creacion de tablas en sql server 2008

amigos soy nuevo en este foro y tambien en la creacion de base de datos con sql server 2008
por favor me pueden ayudar en lo siguiente
estoy creando una tabla adentro de una base de datos llamada people
la tabla la estoy creando con los siguientes datos

CREATE TABLE NAMES
(
ID NUMERIC(10) PRIMARY KEY NOT NULL,
PEOPLE_ID NVARCHAR(38) NOT NULL,
NAMETYPE_ID NUMERIC(2) NOT NULL,
FIRSTNAME VARCHAR(15) NOT NULL,
MIDDLENAME VARCHAR(15) NOT NULL,
LASTNAME VARCHAR(40) NOT NULL,
VALIDITYSTATUS_ID NUMERIC(1) NOT NULL,
)

me estan pidiendo que se realice de la siguiente manera
Preparar una consulta mediante la cual puedas darme en una misma vista:

1. Los nombres de una persona
2. Las direcciones de una persona
3. El genero de la persona (agregar tabla de genders para conocer el genero descriptivo)
4. Los numeros de seguro social de una persona
5. Los numeros de telefono de una persona
6. Las ciudadanias que tiene una persona
7. Los problemas de una persona
8. Numeros Alien que se la han dado
9. Declaraciones de impuestos
10. Membrescias en organizaciones

Considerando que

Existen
a) como tipo de direcciones los siguientes:
1 Casa
2 Trabajo
3 PO. BOX


b) Tipos de nombre:

1. El que actualmente usa
2. Nombre de casado
3. Otros Nombres

c) que el genero de las persona es:

1. Masculino
2. Femenino

d) Tipos de telefonos

1. Casa
2. Trabajo
3. Celular
4. Pariente

e) que las ciudadanias son las que corresponden a todos los paises del mundo

f) Las autoridades con las que pudo haber tenido problemas

1. Policia Local
2. Policia Estatal
3. Policia Federal
4. Milicia

g)Los documentos que avalan una nacionalidad

1. Pasaporte
2. Acta de nacimiento
3. Certificado de naturalizacion

al ejecutar la tabla con esos ITEMS me da el siguiente error

Msg 102, Level 15, State 1, Line 6
Incorrect syntax near 'PEOPLE_ID'.
  #2 (permalink)  
Antiguo 08/12/2011, 19:52
Avatar de ArturoGallegos
Moderador
 
Fecha de Ingreso: febrero-2008
Ubicación: Morelia, México
Mensajes: 6.774
Antigüedad: 16 años, 2 meses
Puntos: 1146
Respuesta: creacion de tablas en sql server 2008

dado que solo has colocado una consulta para crear la tabla supongo es allí donde te arroja dicho error...

?¿ algo que se te hayas omitido? la consulta tal cual la has colocado la ejecuto sin ningún problema
  #3 (permalink)  
Antiguo 08/12/2011, 20:00
 
Fecha de Ingreso: diciembre-2011
Mensajes: 32
Antigüedad: 12 años, 4 meses
Puntos: 0
Respuesta: creacion de tablas en sql server 2008

las tablas que me piden realice son las siguiente adjunto la grafica de como debo hacer esta base de datos que yo le he llamado people



la consulta nose como realizarla me explicas por favor perdona mi ignorancia pero es mi primer dia que estoy trabajando con SQL server 2008
  #4 (permalink)  
Antiguo 08/12/2011, 20:08
 
Fecha de Ingreso: diciembre-2011
Mensajes: 32
Antigüedad: 12 años, 4 meses
Puntos: 0
Respuesta: creacion de tablas en sql server 2008

tambien te agradeceria me ayudes en otra duda cuando los datos sean

numericos debo usar nchar, char ,numeric o varchar ??
cuando los datos sean letras en el caso de nombres de personas o lugares serian datos varchar ???


gracias por tu ayuda
  #5 (permalink)  
Antiguo 09/12/2011, 07:08
 
Fecha de Ingreso: diciembre-2011
Mensajes: 32
Antigüedad: 12 años, 4 meses
Puntos: 0
Respuesta: creacion de tablas en sql server 2008

me podrias decir por favor como crear una tabla de forma grafica no por medio de codigo y colocar las llaves primarias y foraneas en las tablas

gracias
  #6 (permalink)  
Antiguo 09/12/2011, 10:39
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 17 años, 8 meses
Puntos: 774
Respuesta: creacion de tablas en sql server 2008

Cita:
Iniciado por Ag666 Ver Mensaje
dado que solo has colocado una consulta para crear la tabla supongo es allí donde te arroja dicho error...

?¿ algo que se te hayas omitido? la consulta tal cual la has colocado la ejecuto sin ningún problema
Amigo la consulta tal cual la puso el compañero no funciona

CREATE TABLE NAMES
(
ID NUMERIC(10) PRIMARY KEY NOT NULL,
PEOPLE_ID NVARCHAR(38) NOT NULL,
NAMETYPE_ID NUMERIC(2) NOT NULL,
FIRSTNAME VARCHAR(15) NOT NULL,
MIDDLENAME VARCHAR(15) NOT NULL,
LASTNAME VARCHAR(40) NOT NULL,
VALIDITYSTATUS_ID NUMERIC(1) NOT NULL,
)


ya que trae una coma al final de la ultima definicion eso puede ser el problema de porque le manda el error, en las preguntas que realizas de que tipos de datos usar para los numericos lo mas recomedable es usar int, dependiendo del tamaño claro esta jejeje, y si son nombres varchar con el tamaño de tu campo y para crear una tabla de forma grafica si estas usando sql server lo puedes hacer creando un diagrama de tu base de datos aparece como Database Diagrams.

Saludos!
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me
  #7 (permalink)  
Antiguo 09/12/2011, 16:28
 
Fecha de Ingreso: diciembre-2011
Mensajes: 32
Antigüedad: 12 años, 4 meses
Puntos: 0
Respuesta: creacion de tablas en sql server 2008

Gracias por tu ayuda libras, despues de diseñar el diagrama el automaticamente diseña las tablas ??
  #8 (permalink)  
Antiguo 09/12/2011, 17:25
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 17 años, 8 meses
Puntos: 774
Respuesta: creacion de tablas en sql server 2008

Asi es, despues de hacer el diagrama la estructura queda en la base de datos en caso de que no existan las tablas :)

Saludos!
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me
  #9 (permalink)  
Antiguo 10/12/2011, 20:26
 
Fecha de Ingreso: diciembre-2011
Mensajes: 32
Antigüedad: 12 años, 4 meses
Puntos: 0
Respuesta: creacion de tablas en sql server 2008

libras me puedes decir por favor que cantidad de numeros puedo usar con el comando INT tambien te agradeceria si me puedes proporcionar algun tutorial de como hacer mis tablas con la base de datos en la opcion de diagramas y el ultimo favor estoy revisando la opcion que me dices y ahi me pide el nombre del campo mas que variable le voy a asignar a el campo pero no encuentro en la lista la variable INT
  #10 (permalink)  
Antiguo 12/12/2011, 06:46
 
Fecha de Ingreso: diciembre-2011
Mensajes: 32
Antigüedad: 12 años, 4 meses
Puntos: 0
Respuesta: creacion de tablas en sql server 2008

me podrian decir por favor si esta correcta la forma como cree esta tabla con estos valores segun el diagrama que me han dado y los valores y comandos que he utilizado en cada campo de la tabla mi unica duda es en el comando que he utilizado
les agradecere me indiquen si esta bien como la hice

les dejo la tabla con la primera tabla del diagrama

  #11 (permalink)  
Antiguo 12/12/2011, 13:21
 
Fecha de Ingreso: octubre-2011
Mensajes: 13
Antigüedad: 12 años, 6 meses
Puntos: 1
Pregunta Respuesta: creacion de tablas en sql server 2008

HALCONDS vamos por partes, primero que nada la tabla que has creado tiene esa 'coma' de ´más al final antes del paréntesis de cierre.

Quisiera que me aclararas una situación, porque dependiendo de ello será más facil ayudarte, cuando dices que necesitas un solo registro de la tabla, es más que sencillo usar un SELECT, podrías agregar todos los campos de todas las cosas que mencionas como direcciones, teléfonos, nacionalidades etcétera, etcétera.

Pero por aquello de las Formas normales, deberás crear una tabla para cada una de esas entidades.

Es decir una tabla DIRECCION con ID y con TipoDireccion, una tabla TELEFONO con un ID y con TipoTelefono, y así sucesivamente, para relacionarlas con la tabla padre.

¿No se si me doy a entender?

Saludos
  #12 (permalink)  
Antiguo 12/12/2011, 17:56
 
Fecha de Ingreso: diciembre-2011
Mensajes: 32
Antigüedad: 12 años, 4 meses
Puntos: 0
Respuesta: creacion de tablas en sql server 2008

gracias por tu ayuda jillv pero por favor no le hagas caso ya a lo del principio que comence a hacer en este post a puro codigo ahora gracias a la ayuda que me brindo libra haciendo uso de esta herramienta de sql server 2008 Database Diagrams lo cual es la que estoy desarrollando ahorita mi pregunta para todos los que me puedan ayudar es que si con el Database Diagrams asi como lo he hecho segun el diagrama que tambien a mi me dieron esta bien como lo estoy haciendo usando los comandos nchar para numeros y varchar para caracteres que sean letras

por favor alguien me puede contestar


gracias
  #13 (permalink)  
Antiguo 13/12/2011, 23:17
 
Fecha de Ingreso: octubre-2011
Mensajes: 13
Antigüedad: 12 años, 6 meses
Puntos: 1
Respuesta: creacion de tablas en sql server 2008

Me dejas con duda no entiendo bien tu pregunta...
  #14 (permalink)  
Antiguo 13/12/2011, 23:31
 
Fecha de Ingreso: diciembre-2011
Mensajes: 32
Antigüedad: 12 años, 4 meses
Puntos: 0
Respuesta: creacion de tablas en sql server 2008

mi pregunta es que si en campos que los datos seran numeros por ejemplo ID, PEOPLE_ID, PHONETYPE_ID puedo utizar las sentencias nchar( ), o int

y para campos que sea solo de texto osea que no incluya numeros como por ejemplo nombres de personas o lugares puedo utilizar la sentencias varchar( ), char( )

lo unico que tambien me gustaria me dijeran con la sentencia INT cuantos caracteres puedo usar segun he leido solo se pueden utilizar 4 caracteres para un campo que se haga con esa sentencia

gracias por sus respuestas
  #15 (permalink)  
Antiguo 14/12/2011, 07:08
 
Fecha de Ingreso: noviembre-2011
Ubicación: Huancayo
Mensajes: 70
Antigüedad: 12 años, 5 meses
Puntos: 6
Información Creacion de tablas en sql server 2008

Hola, HALCONDS
Cada campo en una Tabla debe tener un tipo de dato los tipos de datos nchar,nvarchar,char,varchar aceptaran numeros pero los de tipo INT; Numeric, sByte etc "Solo aceptaran valores numericos".


Saludos.
__________________
________________
CompuInicio.com
Iniciando Bien . . .
  #16 (permalink)  
Antiguo 14/12/2011, 07:55
 
Fecha de Ingreso: diciembre-2011
Mensajes: 32
Antigüedad: 12 años, 4 meses
Puntos: 0
Respuesta: Creacion de tablas en sql server 2008

Cita:
Iniciado por systemtak Ver Mensaje
Hola, HALCONDS
Cada campo en una Tabla debe tener un tipo de dato los tipos de datos nchar,nvarchar,char,varchar aceptaran numeros pero los de tipo INT; Numeric, sByte etc "Solo aceptaran valores numericos".


Saludos.
entonces si todas esas sentencias solo aceptan campos en los cuales se utilizaran numeros cuales son las sentencias para usar en campos de texto sea estos como nombres de personas o lugares ya que segun lo que me dice systemtak todas las sentencias son solo para datos con numeros

necesito ir finalizando este post por favor les ruego sin intenciones de ofender a nadie y perdonenme mi tanta ignorancia yo me inicio en esto del SQL SERVER no soy experto aun en esto como lo son ustedes pero como les repito lo que les pido me digan que sentencias son utilizadas como para campos de texto y cuales son para numeros aunque eso ya me lo dijo systemtak pero para el todas las sentencias son para usar con datos que sean de numeros

alguien por favor tambien me puede decir con la sentencia INT que cantidad de caracteres me acepta introducir en un campo que sea de numeros por ejemplo ID, numero de pasaporte, edad

con esto espero que alguien me responda y ya cierro este POST

gracias
  #17 (permalink)  
Antiguo 14/12/2011, 08:37
 
Fecha de Ingreso: noviembre-2011
Ubicación: Huancayo
Mensajes: 70
Antigüedad: 12 años, 5 meses
Puntos: 6
Creacion de tablas en sql server 2008

Aqui tienes toda la Teoria

http://www.devjoker.com/contenidos/Tutorial-de-Transact-SQL/232/Tipos-de-datos-en-Transact-SQL.aspx

Saludos
__________________
________________
CompuInicio.com
Iniciando Bien . . .
  #18 (permalink)  
Antiguo 14/12/2011, 08:57
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 17 años, 8 meses
Puntos: 774
Respuesta: creacion de tablas en sql server 2008

aqui tambien aplica, revisa esta liga:


http://www.teratrax.com/sql_guide/da...ata_types.html

Saludos!!
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me
  #19 (permalink)  
Antiguo 14/12/2011, 11:15
 
Fecha de Ingreso: diciembre-2011
Mensajes: 32
Antigüedad: 12 años, 4 meses
Puntos: 0
Respuesta: creacion de tablas en sql server 2008

gracias por la informacion esta bastante excelente les agradezco lo unico que no entiendo de esa teoria que en algunas sentencias sale esto

-231 a 231-1 .

eso sale en varias sentencias una por ejemplo es
Int. Una columna o variable de tipo int puede almacenar el rango de valores -231 a 231-1 .

entonces que significa esto -231 a 231-1 .

ustedes me sugieren que use la sentencia INT en campos de numeros no importando que este campo es de 38 caracteres o mas y para texto poder usar varchar ( )

nuevamente gracias por sus respuestas

Última edición por HALCONDS; 14/12/2011 a las 11:42 Razón: corregir lo que escribi
  #20 (permalink)  
Antiguo 14/12/2011, 18:19
 
Fecha de Ingreso: diciembre-2011
Mensajes: 32
Antigüedad: 12 años, 4 meses
Puntos: 0
Respuesta: creacion de tablas en sql server 2008

por favor les pido me ayuden en esa ultima pregunta de este post voy a hacer las cosas en base a las sugerencias que ustedes me brinden

respetando los datos y las sentencias de cada campo que me dieron en la tabla names la cual esta aqui en este post el dibujo de la tabla tal cual me la han dado

me sugieren que use la cual sentencia para los campos
ID
PEOPLE_ID
NAMESTYPE_ID
VALIDITYSTATUS_ID

y para los campos como por ejemplo me imagino que me van a sugerir el varchar los campos serian estos
FIRSTNAME
MIDDLENAME
LASTNAME

mas que todo mis dudas son por lo siguiente yo sql aun no lo se usar conozco el ACCESS pero no en sus nuevas versiones sino las versiones viejitas recuerdo que en access si uno a un campo le daba un tamaño demasiado grande a los datos al crear un formulario quedaba el espacio bastante grande y talvez los caracteres a introducir eran unos 5 y eso quedaba horrible ya que sobraba un gran espacio en ese campo espero darme a entender de porque no salgo de preguntarles lo mismo ya con esto creo que cierro este post y despues conforme siga haciendo el diagrama les preguntare nuevas cosas en otros post

Última edición por HALCONDS; 14/12/2011 a las 18:34
  #21 (permalink)  
Antiguo 14/12/2011, 21:46
 
Fecha de Ingreso: octubre-2011
Mensajes: 13
Antigüedad: 12 años, 6 meses
Puntos: 1
Respuesta: creacion de tablas en sql server 2008

Usemos un poco la lógica, haber:

ID puede ser INT si solo piensas usar valores numericos enteros, pero si piensas usar letras puede ser char, nchar, varchar, etc.
PEOPLE_ID lo mismo.

Para los otros
FIRSTNAME te recomiendo usar varchar (30) eso entre los paréntesis es la longitud inicial pero varchar define que puede ser más.

Por ejemplo el MIDDLENAME si no estoy mal como debería ser una sola letra o máximo 3 caracteres podrías usar char(3)

Pero como te digo todo depende de lo que piensas almacenar en cada campo y el uso que se le va a dar

Decimales es FLOAT
Texto son CHAR, VARCHAR, NCHAR
Fecha son DATE, DATETIME, etc

Saludos Espero haberte ayudado
  #22 (permalink)  
Antiguo 14/12/2011, 22:46
 
Fecha de Ingreso: diciembre-2011
Mensajes: 32
Antigüedad: 12 años, 4 meses
Puntos: 0
Respuesta: creacion de tablas en sql server 2008

gracias jillv esta clara tu explicacion pero quiza no me he dado a entender mi unica pregunta es sobre la sentencia INT si con esta puedo crear un campo en le cual pueda ingresarle 38 caracteres al desarollar un formulario

dicho de otra forma que si a el campo ID que lo creare de 38 caracteres le puedo digitar 38 veces un numero 1 en ese campo usando la sentencia INT

porque segun el diagrama asi me piden que cree ese campo
  #23 (permalink)  
Antiguo 15/12/2011, 09:45
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 17 años, 8 meses
Puntos: 774
Respuesta: creacion de tablas en sql server 2008

no con un int no puedes meter un numero de 38 caracteres, ahora la pregunta del millon, vas a realizar calculos con ese campo?? o nada mas va a ser un identificador, en caso de que sea un identificador no tiene caso que lo pongas de tipo numerico crealo de tipo varchar(38) y que este campo solo acepte numeros asi podras tener tu numero de 38 caracteres.

Saludos!
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me
  #24 (permalink)  
Antiguo 15/12/2011, 09:47
 
Fecha de Ingreso: diciembre-2011
Mensajes: 32
Antigüedad: 12 años, 4 meses
Puntos: 0
Respuesta: creacion de tablas en sql server 2008

se supone que no se realizara ninguna clase de calculos con esos campos ID creo que nada mas va a ser un identificador

y para los campos de texto tambien hago uso de el VARCHAR ?? ya que practicamente en todos los campos solo utilizaria esa sentencia y no creo que me acepten eso por lo menos uno para los campos ID que son solo NUMEROS y otra sentencia para campos con TEXTO

como le puedo especificar al varchar que solo me acepte valores numericos????

Última edición por HALCONDS; 15/12/2011 a las 09:54
  #25 (permalink)  
Antiguo 15/12/2011, 10:46
 
Fecha de Ingreso: diciembre-2011
Mensajes: 32
Antigüedad: 12 años, 4 meses
Puntos: 0
Respuesta: creacion de tablas en sql server 2008

por favor Libras me puedes decir por favor si en el caso de los campos que son ID usare la sentencia varchar en los campos que son de texto acabo de preguntar y me dijeron que no puedo usar varchar para todos los campos de una misma tabla

tambien he leido en otras paginas que el valor que se coloca entre parentesis esto no significa que sea su valor o cantidad de caracteres que se utilizara en el campo por ejemplo yo creo un campo llamado ID y uso la sentencia VARCHAR(38) eso no significa segun esas paginas que su tamaño de caracteres sera de 38, pregunto ya que el caso de ACCESS ahi si le especifica uno el valor de caracteres que se va a introducir en el campo, tambien he leido que la sentencia INT que yo pense que hacia referencia que esa sentencia solo se pueden usar 4 caracteres no es de caracteres que habla sino de tamaño en BYTES eso quiere decir que la sentencia INT almacena en 4 Bytes pero no especifica que cantidad de caracteres se pueden usar con esa sentencia

Última edición por HALCONDS; 15/12/2011 a las 12:09
  #26 (permalink)  
Antiguo 15/12/2011, 15:31
 
Fecha de Ingreso: octubre-2011
Mensajes: 13
Antigüedad: 12 años, 6 meses
Puntos: 1
Respuesta: creacion de tablas en sql server 2008

HALCONDS te comento desde el momento en que le pongas VARCHAR (38), o (100) podes usar solo números eso sí aclararlo como decía Libras, estos campos no pueden más que concatenarse, pierden sus propiedades numéricas, no podrás sumarlos, restarlos, etcétera.
  #27 (permalink)  
Antiguo 15/12/2011, 16:53
 
Fecha de Ingreso: diciembre-2011
Mensajes: 32
Antigüedad: 12 años, 4 meses
Puntos: 0
Respuesta: creacion de tablas en sql server 2008

pues ya pregunte amigos como quieren que realice estos campos y ya me dijeron al fin porque creo que todos estabamos adivinando
pues la cantidad de caracteres que deben llevar los campos QUE SON ID por ejemplo ID, PEOPLE_ID, NAMETYPE_ID etc etc estos deberan generar el codigo automaticamente de forma aleatoria conforme se van introduciendo los datos en los otros campos por ejeplo

DATO 1
ID = 000000001
PEOPLE_ID = PE000001
NAMETYPE_ID = NAM000001
NAME = JOSE LUIS

DATO 2
ID = 000000002
PEOPLE_ID = PE000002
NAMETYPE_ID = NAM000002
NAME = JUAN MANUEL

me pueden decir por favor con que sentencia puedo hacer que este ID incremente el solo de uno en uno al introducir nueva informacion pero que esta sentencia me permita utilizar los 38 caracteres(letras y numeros)

puedo usar la sentencia BIG INT en ese ejemplo y como puedo hacer para que incremente el solo ?????

gracias
  #28 (permalink)  
Antiguo 16/12/2011, 08:55
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 17 años, 8 meses
Puntos: 774
Respuesta: creacion de tablas en sql server 2008

si vas a tener tus datos de esa manera puedes hacerlo de varias maneras: que tus datos sean de tipo digamos int, y al momento de pintarlos en pantalla los conviertes a varchar o texto o string o como quieras llamarle pero esto en tu aplicacion para que los presentes en formato 0000000001 asi tendrias tus 38 caracteres, para el caso de los que son pe0000001 serian de tipo varchar(), ahora como se autoincrementaria jejeje pues ahi si te tocaria a ti implementar tu logica crear un procedure, trigger o function para que al momento de que se inserte un nuevo valor le crees su correspondiente codigo.....

Saludos!!
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me

Etiquetas: server, sql, tabla, tablas
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 07:44.