{"id":120,"date":"2017-09-18T22:40:51","date_gmt":"2017-09-18T22:40:51","guid":{"rendered":"http:\/\/www.manualsqlserver.com\/?p=120"},"modified":"2020-05-19T21:07:03","modified_gmt":"2020-05-19T21:07:03","slug":"tablas-create-table-ejercicios","status":"publish","type":"post","link":"https:\/\/manualsqlserver.com\/?p=120","title":{"rendered":"Create table en SQL Server &#8211; ejercicios"},"content":{"rendered":"\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"220\" height=\"262\" src=\"https:\/\/manualsqlserver.com\/wp-content\/uploads\/2020\/05\/ManualSQL_CreateTableEjercicios-1.png\" alt=\"\" class=\"wp-image-1149\"\/><\/figure>\n\n\n\n<h1 class=\"wp-block-heading\"><strong>Creaci\u00f3n de tablas<\/strong><\/h1>\n\n\n\n<p>Al crear las tablas se deber\u00edan seguir ciertas reglas para el nombre de los elementos de estas, como son: campos, restricciones, \u00edndices, entre otros.<strong>Al definir los tipos de datos para cada campo se recomienda lo siguiente:<\/strong><\/p>\n\n\n\n<!--more-->\n\n\n\n<ol class=\"wp-block-list\"><li>Datos alfanum\u00e9ricos que no cambian la longitud como c\u00f3digos, n\u00fameros de documentos y campos para estados deber\u00edan ser nchar.<\/li><li>Datos alfanum\u00e9ricos que cambian la longitud como apellidos, nombres, direcciones, descripciones, etc&nbsp;deber\u00edan ser nvarchar.<\/li><li>Datos num\u00e9ricos&nbsp;deber\u00edan ser Numeric y definir un rango amplio para que alcancen todos los valores posibles. (Ver tipos de datos en SQL Server)<\/li><li>Datos donde se guardan fecha deber\u00edan ser Date y si interesa guardar la hora junto con la fecha DateTime.<\/li><li>Datos donde se guarden im\u00e1genes deber\u00edan ser Image.<\/li><li>Evitar en lo posible usar la propiedad Identity. (<a href=\"http:\/\/www.manualsqlserver.com\/?p=329\">Ver Identity<\/a>)<\/li><\/ol>\n\n\n\n<script async src=\"\/\/pagead2.googlesyndication.com\/pagead\/js\/adsbygoogle.js\"><\/script>\n<ins class=\"adsbygoogle\"\n     style=\"display:block; text-align:center;\"\n     data-ad-layout=\"in-article\"\n     data-ad-format=\"fluid\"\n     data-ad-client=\"ca-pub-2636008503986218\"\n     data-ad-slot=\"1902193434\"><\/ins>\n<script>\n     (adsbygoogle = window.adsbygoogle || []).push({});\n<\/script>\n\n\n\n\n<p><strong>Para las restricciones de los campos deber\u00edan tenerse en cuenta lo siguiente:<\/strong><\/p>\n\n\n\n<ol class=\"wp-block-list\"><li>Especificar correctamente los campos obligatorios con Not Null.<\/li><li>Para los campos que no son obligatorios de preferencia usar restricciones de tipo Default.<\/li><li>Los campos que sirven como clave for\u00e1nea deber\u00edan tener el mismo nombre que tiene en la tabla donde es clave principal.<\/li><li>Si en un campo no se debe repetir el valor ingresado y no es la clave primaria, usar restricciones de tipo UNIQUE.<\/li><li>Es recomendable usar las restricciones de tipo Check para comprobar una o mas condiciones que deben de cumplir los datos para insertarlos en la tabla.<\/li><\/ol>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Ejercicios<\/strong><\/h2>\n\n\n\n<p><strong>1. &#8212; Tabla Productos donde se especifica la clave primaria<\/strong><\/p>\n\n\n\n<p>Create table Productos<br>(<br>ProductosCodigo nchar(10) ,<br>ProductosDescripcion nvarchar(200),<br>ProductosPrecio Numeric(9,2),<br>ProductosStock Numeric(9,2),<br>ProductosFechaVencimiento Date,<br>ProductosOrigen nchar(1),<br>ProductosFoto Image,<br>constraint ProductosPK Primary key (ProductosCodigo)<br>)<br>go<\/p>\n\n\n\n<p><strong>2. &#8212; Suponiendo una instituci\u00f3n de ense\u00f1anza de nivel escolar, las tablas para Niveles&nbsp; que pueden ser Inicial (Ni\u00f1os de 3 a 5 a\u00f1os), Primaria y Secundaria,&nbsp; y Grados, la tabla de niveles tiene&nbsp;<\/strong><strong>en el dise\u00f1o las restricciones de tipo Primary key, Default, Check y Unique<\/strong><\/p>\n\n\n\n<p>Create table Niveles<br>(<br>NivelesCodigo nchar(10) ,<br>NivelesDescripcion nvarchar(200) not null,<br>NivelesExplicacion nvarchar(100) constraint NivelesExplicacionDF Default \u00bb,<br>NivelesFechaCreacion Date constraint NivelesFechaCreacionDF Default (GetDate()),<br>NivelesEstado nchar(1) not null,<br>NivelesEsDeSistema nchar(1) not null constraint NivelesEsDeSistemaDF default &#8216;N&#8217;,<br>constraint NivelesPK Primary key (NivelesCodigo),<br>constraint NivelesEstadoCK Check (NivelesEstado = &#8216;A&#8217; or NivelesEstado = &#8216;E&#8217;),<br>constraint NivelesEsDeSistemaCK Check (NivelesEsDeSistema = &#8216;S&#8217; or NivelesEsDeSistema = &#8216;N&#8217;),<br>constraint NivelesDescripcionUQ Unique (NivelesDescripcion)<br>)<br>go<\/p>\n\n\n\n<p><strong>Grados, tiene su clave primaria y clave for\u00e1nea a Niveles.<\/strong><br>Create table Grados<br>(<br>GradosCodigo nchar(10) ,<br>GradosDescripcion nvarchar(200) not null,<br>GradosFechaCreacion Date,<br>GradosEsDeNivel nchar(10),<br>GradosEstado nchar(1) not null,<br>constraint GradosPK Primary key (GradosCodigo),<br><strong>constraint GradosNivelesFK Foreign key (GradosEsDeNivel)&nbsp; references Niveles(NivelesCodigo)<\/strong><br>)<br>go<\/p>\n\n\n\n<p>Note en negrita la restricci\u00f3n de tipo Foreign Key<\/p>\n\n\n\n<script async src=\"\/\/pagead2.googlesyndication.com\/pagead\/js\/adsbygoogle.js\"><\/script>\n<ins class=\"adsbygoogle\"\n     style=\"display:block; text-align:center;\"\n     data-ad-layout=\"in-article\"\n     data-ad-format=\"fluid\"\n     data-ad-client=\"ca-pub-2636008503986218\"\n     data-ad-slot=\"1902193434\"><\/ins>\n<script>\n     (adsbygoogle = window.adsbygoogle || []).push({});\n<\/script>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Importante<\/strong>:<\/h3>\n\n\n\n<ul class=\"wp-block-list\"><li>Los nombres de campos deber\u00edan tener el nombre de la tabla al inicio, se pueden usar hasta 128 caracteres para el nombre.<\/li><li>El nombre de la clave primaria (Primary Key) es el nombre de la tabla y las letras PK. Para la tabla Grados es GradosPK, recuerde que se crea el \u00edndice agrupado y es importante poder saber el nombre de este.<\/li><li>En la clave for\u00e1nea (Foreign Key) se podr\u00eda incluir los dos nombres de las tablas y luego las letras FK.<\/li><\/ul>\n","protected":false},"excerpt":{"rendered":"<p>Creaci\u00f3n de tablas Al crear las tablas se deber\u00edan seguir ciertas reglas para el nombre de los elementos de estas, como son: campos, restricciones, \u00edndices, entre otros.Al definir los tipos de datos para cada campo se recomienda lo siguiente:<\/p><p><a class=\"more-link btn\" href=\"https:\/\/manualsqlserver.com\/?p=120\">Seguir leyendo<\/a><\/p>\n","protected":false},"author":1,"featured_media":1149,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[5],"tags":[28,46,47,53,57],"class_list":["post-120","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-esquemastablas","tag-esquemas","tag-particion","tag-permisos","tag-sqlserver","tag-tablas","nodate","item-wrap"],"_links":{"self":[{"href":"https:\/\/manualsqlserver.com\/index.php?rest_route=\/wp\/v2\/posts\/120","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/manualsqlserver.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/manualsqlserver.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/manualsqlserver.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/manualsqlserver.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=120"}],"version-history":[{"count":2,"href":"https:\/\/manualsqlserver.com\/index.php?rest_route=\/wp\/v2\/posts\/120\/revisions"}],"predecessor-version":[{"id":1151,"href":"https:\/\/manualsqlserver.com\/index.php?rest_route=\/wp\/v2\/posts\/120\/revisions\/1151"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/manualsqlserver.com\/index.php?rest_route=\/wp\/v2\/media\/1149"}],"wp:attachment":[{"href":"https:\/\/manualsqlserver.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=120"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/manualsqlserver.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=120"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/manualsqlserver.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=120"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}