Selecciona el Idioma

Mostrando entradas con la etiqueta tablas. Mostrar todas las entradas
Mostrando entradas con la etiqueta tablas. Mostrar todas las entradas

domingo, 18 de febrero de 2024

Día Internacional de la niña y la mujer en la ciéncia

 Muy buenos días,  os dejo por aquí un vídeo realizado para INETUM , la empresa dónde trabajo en la actualidad y desde hace ya más de 3 años como Coordinadora Operativa. 

Aquí respondo a algunas preguntas que nos realizaron para fomentar y animar a las nuevas generaciones a estudiar y dedicarse a profesiones relacionadas con la ciencia y tecnología.  

Día Internacional de la niña en la ciencia



sábado, 15 de octubre de 2016

Concurso DESY Repara 2016




Buenos días,

Como cada año, organizo al menos un sorteo para premiar a mis clientes.

El año pasado el nombre del ganador/a se obtuvo mediante un programa que cree en Lenguaje C.

Este año, a parte de que hay más de un/a ganador/a, el sorteo lo he creado mediante Lenguaje SQL, con ayuda del programa PHPMyAdmin.

A través  de sentencias SQL.

Os dejo el vídeo del año pasado para refrescar un poco la memoria:

Concurso Desy Repara 2015 

En este lo que hice fue ejecutar procedimiento con 3 variables en Lenguaje C.

Y mostrar el resultado del aleatorio con la función Rand() a partir de un Switch (En caso de).

Y un bucle para que recorre un único número  premiado al azar entre el 1 y el 10.

Finalmente ordeno escribir el número que ha salido de forma aleatoria y lo introducimos obteniendo así al ganador/a que le corresponde ese número en el listado del  Switch(En  caso de).




Y aquí el de este año:

Concurso Desy Repara 2016

Este año he realizado el programa en lenguaje SQL:

creo una bbdd nueva a través de PHPmyAdmin ( se puede hacer en consola o Workbench entre otros...).

A esa bbdd le creo una tabla con los campos: ID(Autonumerico) que será el campo clave primaria, y los campos Nombre y Apellidos que serán tipo VARCHAR(texto).

A partir de esta tabla añado tantos registros como clientes dispongo con un INSERT INTO.

Y finalmente creo la consulta que me dará el nombre de los ganadores/as de este año.







Felicidades a l@ ganadores/as.

Y al resto más suerte , el año que viene.





Espero que os sirva de ayuda,

para más info suscribete a Desy Repara




viernes, 8 de enero de 2016

BBDD DESY Repara

Buenas tardes,

Hoy vengo con algo que no había enseñado nunca pero lo veo importante, mostrando la BBDD que utilizo desde hace ya varios años,
para los clientes de DESY  Repara.

Una BBDD que sólo manejo yo, y que en este videotutorial os muestro sólo la parte que os puede resultar más práctica a la hora  de crear vuestra propia bbdd para vuestro negocio o vida personal.

Las Bases de datos manejan información de diferentes tipos, se deben crear relaciones  entre los campos y para ello es indicado empezar a crearlas desde el MER y el MR (modelo entidad relación y modelo relacional).

Podéis encontrar referencias y ejemplos en este mismo blog.
Os dejo aquí debajo unos enlaces relacionados.

MODELO ENTIDAD RELACIÓN- MODELO RELACIONAL

Y por último y no menos importante el videotutorial ,ejemplo de la que considero una buena BBDD,
que siempre se puede mejorar.










Espero que os sirva de ayuda,

para más info suscribete a Desy Repara

sábado, 23 de mayo de 2015

Proyecto Proxy

Estamos ya en la recta final del proyecto final de curso.
Nuestro grupo compuesto por dos miembros, mi compañero Javier Velardiez y yo.

Estamos creando un proxy de aula (Además  de la documentación en joomla,blog diario, bbdd, php y todo lo necesario).

Aún no esta acabado, pero teniendo en cuenta que sólo nos queda una semana de margen para entregarlo.

Publico los enlaces de lo que tenemos hecho por aquí.
Al principio ha sido todo un poco locura, porqué no sabíamos ni como empezar.
Pero poco a poco se ha ido abriendo camino.

Empezamos buscando un buen host gratuito para el proyecto y después de mucho buscar...
Al fin dimos con   hostWP.es 

Aquí nuestra página  web creada con el gestor de contenidos joomla, como se pedía en la UF2 de Implantación de Aplicaciones Web.

http://proyectoproxy.miwp.eu/joomla/

También tenemos el Blog diario donde documentamos los  que vamos haciendo día a día:

 http://proyectoproxy.blogspot.com.es/

Y el trabajo ,lo vamos haciendo en local, pero utilizando un servidor web apache donde alojamos el formulario web para que el profesor lo active en horas de exámenes.

Con nuestro porpio  servidor DHCP, servidor DNS y usando el proxy SQUID, administrado desde Webmin y configurado desde terminal Ubuntu (trabajando desde red interna en máquinas virtuales tanto servidor  como clientes).

Los filtros de proxy hemos tenido que añadirlos por ACL y http_access como normalmente se hace, pero también tuvimos que añadir por IPtables , para denegar acessos https a facebook,twitter y youtube.

Dado que usamos un proxy transparente y este no bloquea accesos https, a pesar de restringir el puerto 443 o redireccionar este al puerto del proxy 3128.

Esta semana que entra terminaremos todo y realizaremos el vídeo de la demo, el abstract y ultimaremos detalles.






Espero que os sirva de ayuda,

para más info suscribete a Desy Repara





sábado, 25 de abril de 2015

Biometría

Hace poco empece el proyecto final de curso de Grado Superior en Administración de Sistemas.
El proyecto de mi grupo trata sobre un Proxy de Aula, pero tenía la idea de poder añadirle algo de biometria  en los accesos.

Bien., estuve mirando algunas posibilidades, pero finalmente no podría hacer nada porqué en todos los casos es necesario un terminal biometrico o un aparato de lectura  de huella digital (y todo esto se escapa de nuestras posibilidades económicas).


Aun así me gustaría exponer aquí algunas partes  de un programa que estuve probando. Muy chulo, aunque para que  funcione  al 100% es necesario hacerse con el terminal biometrico ( unos 650 €).




Nos descargamos el programa, y iniciamos la instalación ....
Como véis en la siguiente foto es necesario instalar un servidor Mysql que será el encargado de acumular los datos en Bases  de Datos.



Iniciamos la instalación del Servidor.

Elegimos instalación típica.


click en Instalar

Tardará un rato largo.

Le damos a Next en las siguientes pantallas.

Y empezamos a configurar el Mysql


En este paso seleccionamos configuración detallada.

Ahora Elegimos Base de datos multifuncional


A continuación escribimos el path del programa



Elegimos el máximo de conexiones  hacía el servidor, como manual y ponemos 15

Habilitamos un puerto tcp/ip
y no olvidar marcar la casilla de : activar una regla de firewall para permitir las conexiones


En el siguiente paso:  seleccionamos manual -- utf8 referente al español




para ir finalizando le ponemos contraseña de usuario root  y añadimos la opción de añadir un usuario anonimo para acceder. para hacer pruebas posteriormente.



Le damos a Ejecutar y si todo va bien ....





click a finalizar


Ahora:
 le damos a instalar face id drivers y aparecerá una ventana de información que nos dice:



Para terminar click en instalar bio securitas



Seguimos los pasos indicados por el asistente de instalación.

y.....

Llego el momento de la verdad....
iniciamos programa.


Vamos a inicio--> todos los programas ---> Dactilplus Biometria



Realizamos la activación, de momento solo podemos clic a  evaluación de prueba.

Ponemos nuestro email y nombre.

Nos informa de que disponemos de 30 días de prueba


Cerramos y volvemos a abrir, para que funcione correctamente el programa.


Nos aparece un mensaje que dice: "No se creo la base de datos, click en aceptar para crearla."
Y click en Aceptar.


Aquí ponemos el nombre  del servidor " localhost", y la contraseña del super usuario.

click a crear base de datos para finalizar la operación.



Nos informa de que es necesario reiniciar el programa después de esta operación.
Con darle click a Aceptar se cierra todo automáticamente. 

Abrimos de nuevo y ahora veremos:



ponemos un código a el usuario admin y al usuario estándar.


Ahora podemos dirigirnos a:  la pestaña: departamentos, nos pedirá el codigo de admin


Desde aquí podemos crear nuevos departamentos:



Podemos ir a  pestaña departamentos-->secciones y añadir nuevas secciones



 vamos a pestaña usuarios --> lista de usuarios--> clic en modificar (abajo) y podemos añadir nuevos usuarios
y una vez introducidos los datos le damos a guardar



podemos ir a configuración -- terminales biométricos

Aquí, es  donde  deberíamos poner la Ip de el terminal biométrico (aparato para identificación facial).


También podemos ir a la pestaña Horarios --> crear nuevo horario



Y unas cuantas opciones más, pero para ello, hemos de disponer tanto del software como del aparato para reconocimiento facial.














Espero que os sirva de ayuda,

para más info suscribete a Desy Repara










sábado, 15 de junio de 2013

TABLA HEXADECIMAL , DECIMAL, BINARIO, OCTAL

TABLA DE CÓDIGOS










También hay otro modo de hacer el cambio de binario a decimal y decimal binario por ejemplo: Mediante una tabla como esta: Cada vez que subimos un nivel en superindex multiplicamos por 2 su valor como podéis ver. Así podemos subir niveles tantos como sean necesarios. Pero cuando se trate de Ip's solo habrá 7 niveles, porque son como máximo 1 byte ( 8 bits) , que es hasta nivel 2 7, Ddo que la suma de estos 7 niveles da 255 y esa es la última red posible , Que se usa para la máscara de subred.
27 26 25 24 23 22 21 20
128 64 32 16 8 4 2 1
Por ejemplo si tenemos el código binario : 11010010 en la tabla se mira:
DE BINARIO A DECIMAL
27 26 25 24 23 22 21 20
128 64 32 16 8 4 2 1
1 1 0 1 0 0 1 0
Se trata de sumar los dígitos de la tabla que contengan 1 , si es 0 no se suma es decir : 128+64+16+2= 210
Pero con este mismo método también podemos hacer justo lo contrario pasar un valor decimal a binario por ejemplo con el número 100, ahora en vez de sumar el valor decimal de los niveles los hemos de ir restando. Por ejemplo empezar con el nivel 2 6= 64, dado que el nivel 7 equivale a 128 y se pasa del número 100. entonces restaríamos 64 a 100. 100-64=36, y así hasta llegar a 0. Así formaríamos nuestro valor binario es decir:64+32+4
DE DECIMAL A BINARIO
27 26 25 24 23 22 21 20
128 64 32 16 8 4 2 1
0 1 1 0 0 1 0 0
Para convertir un número hexadecimal en decimal o binario, solo debemos hacer uso de la siguiente tabla de datos.
Decimal Hexadecimal Binario
0 0 0000
1 1 0001
2 2 0010
3 3 0011
4 4 0100
5 5 0101
6 6 0110
7 7 0111
8 8 1000
9 9 1001
10 A 1010
11 B 1011
12 C 1100
13 D 1101
14 E 1111
Lo más fácil y aconsejable es coger un numero decimal y para pasarlo a hexadecimal primero convertir ese decimal en binario., después dividimos ese número binario en bloques de 4 en 4 y hacemos la conversión final del binario a hexadecimal.

Para más info Clic aqui

Se empiezan a crear los bloques desde el final hacía delante, y si faltan números, para complementar los bloques de 4 dígitos, se añaden 0 a la izquierda.



Para más info suscribete a Desy Repara

miércoles, 12 de junio de 2013

Administración de BBDD (WORKBENCH)


Este pequeño cuestionario de pruebas esta especialmente pensado para MySQL Workbench, pero también puede ser usado con comandos similares en PostgreSQL y/o PhpMyAdmin

1.Desde un usuario con privilegios(root) . Haz que el usuario us2 solo se pueda conectar desde la máquina en la que estas y a la base de datos bdprova. También, solo podrá utilizar las ordenes: SELECT, INSERT i LOCK TABLES:
Desde root, vamos a la pestaña de users & privileges, y clicamos en el usuario usu2.
Vamos a schema privileges y a add entry , le ponemos los datos que requiere: el host Localhost ,en Schema (bdprova) y los Privilegios se ponen desde la pestaña inferior. En Object rights marcamos: SELECT e INSERT. Y en Other Rights: LOCK TABLES.
2.Qué privilegios tiene SecurityAdmin? Qué privilegios se activan al escoger esta opción?
Se activan los privilegios “CREATE USER, GRANT OPTION, RELOAD y SHOW DATABASES".
3.Qué diferencias hay entre DBManager y BackupAdmin?
DBManager tiene todo tipos de derechos para ejercer sobre la administración en todas las bases de datos. BackupAdmin por otro lado, solo tiene el mínimo de derechos para hacer un backup (copia de seguridad) de cualquier base de datos.
En la siguiente imagen veréis la pantalla para establecer los permisos deseados al usuario seleccionado.Si los permisos no están establecidos solo podrá hacer uso de las bases de datos


Como veis en la imagen de a bajo lo hemos configuradop ara que podamos conectar desde cualquier host y a cualquier base de datos.


5. Haz el usuario/a “a3@%” con los privilegios que necesite y limita el número de consultes a 2 por hora. Después conecta con este usuario y prueba a hacer 3 consultas seguidas.
Con un límite de 2 consultas por hora ,cuando hacemos la tercera consulta en menos de una hora , nos dice que hemos sobrepasado el límite de consultes.
6.¿Como se actualizan las tablas de privilegios?
Con el comando, mediante terminal: Flush_privileges .
7.Cuál o cuales privilegios son necesarios para cambiar la contraseña de los usuarios/as? Pon de nueva contraseña del usuario3 “usuario3usuario3” utilitzando mysqladmin y la orden SET. Escribe las ordenes .
El privilegio será: Grant options ,cuando se hace en el usuario que queremos que dé privilegios.

SET PASSWORD

mysql> UPDATE mysql.user SET Password=PASSWORD('usuario3usuario3')
    -> WHERE User='usuario3';
mysql> FLUSH PRIVILEGES;

8.Es posible guardar la contraseña de administrador en el archivo de configuración? Dónde?
Es posible modificando el archivo: my.cnf: sudo nano /etc/myslq/my.cnf de Ubuntu.
En windows modificaríamos el my.ini que esta en el directorio de la instalación.
Hay que añadir estas lineas en el apartado cliente:
[client]
user = nombredeusuario
password = passworddeusuario
port = 3306
host = localhost

9.Desde administrador revoca todos los permisos para el usuario3 (que se quede solo con USAGE).
REVOKE ALL PRIVILEGES ON *.* FROM 'usuario3'@'%'; GRANT USAGE ON *.* TO 'usuario3'@'%';
10.Escribe la orden para mostrar los permisos de usuario3.
SHOW GRANTS FOR usuario3;
ROLLBACK / COMMIT
Al hacer una consulta o transacción en MySQL, se suele empezar con un BEGIN, y acabar con un COMMIT para guardar las ordenes o ROLLBACK para deshacer y no guardar.
11.Como se comprueba si autocommit esta activado? Desactivalo.
Para desactivar el autocommit hemos de hacer :
SET AUTOCOMMIT= 0;
Pero eso se suele hacer cuando usamos tables transicionales, es decir con motor de almacenamiento InnoDB o BDB.
MyISAM, el que estamos utilitzando en esta tabla, es un motor no transicional.
O Sino hacer uso del comando START TRANSACTION + comandos a ejecutar. En este caso no se ejecutará el autocommit, pero solo en la primera acción.
12.Si quieres hacer una transacción con autocommit activado, pero no lo quieres desactivar, como la haces?
Con el comando START TRANSACTION. En vez de BEGIN. I después , añadimos el resto de comandos+ COMMIT para finalizar y que se ejecute o ROLLBACK para que no se ejecute.
13.Cuál es la orden para cambiar una tabla MyIsam a InnoDB?
ALTER TABLE nombretabla ENGINE=InnoDB;
14.Diseña una transacción que ejecutarás desde la línea de ordenes.
Ponemos el Autocommit a 0: SET AUTOCOMMIT =0;
Después ejecutamos la transacción:
BEGIN;
SELECT * FROM Molinero_myisam WHERE ASIGNATURA ='BDD';
COMMIT;

15.Crear una vista a partir de una tabla ya creada.

USE dbuoc;
CREATE VIEW clients_moli AS SELECT nom_cli, nif,telefon FROM clients;



16.Haz un SELECT donde se vean todos los registros de la tabla virtual.
SELECT * FROM clients_moli;
17.Modifica la vista para incluir o excluir algún campo más.

USE dbuoc;

ALTER VIEW clients_moli AS SELECT  codi_cli,nom_cli, nif, telefon, ciutat FROM clients;

18.borra la vista DROP VIEW clients_moli;
CREAR DISPARADOR (TRIGGER):
crear disparador que se ejecute al insertar un empleado y que actualice el presupuesto sumándolo al sueldo del nuevo empleado.
DROP TRIGGER  Dbuoc IF EXIST ;
DELIMITER |

CREATE TRIGGER  Dbuoc  BEFORE INSERT ON departamentos
FOR EACH ROW
BEGIN
     
   SET  new.empleado= (SELECT sueldo FROM empleats);

   UPDATE  presupuesto SET new.presupuesto= (SELECT sueldo + presupuesto  FROM empleados,departamentos )
  
END ;
 |


DELIMITER ;

SELECT * FROM departamentos;

añadir nuevo empleado en la tabla empleados: INSERT INTO empleados VALUES ('18','desiree', 'moli','3000','DIR','Barcelona','1');


20.Hacer un disparador que se ejecute al borrar un empleado y que actualice el presupuesto del departamento restando el sueldo.
DROP TRIGGER IF EXISTS   Dbuoc2 ;
DELIMITER
|
CREATE TRIGGER  Dbuoc2
BEFORE DELETE ON empleados  
FOR EACH ROW
 UPDATE departamentos SET  presupuesto=presupuesto -  old.sueldo WHERE  old.nom_dpt=departamentos.nom_dpt AND old.ciudad_dpt=departamentos.
ciudad_dpt;
|
DELIMITER

SELECT * FROM departamentos;



21.Escribe un procedimiento que es llame proc_apellido, donde apellido es tu apellido, que muestre de todos los clientes de la ciudad que le pones como un parametro, su nombre, su DNI y su núm. de teléfono. Hazlo utilizando parámetros siempre que se pueda. Si no hay ningún cliente, ha de mostrar: “En aquesta trista ciutat no hi ha cap client...encara!”. Ejecuta el procedimiento para la ciudad de Girona.

DROP PROCEDURE IF EXISTS PROC_MOLI;
DELIMITER |
create procedure PROC_MOLI (IN ciudad VARCHAR(50))
Begin
  IF (SELECT nom_cli FROM clientes WHERE  ciudad=ciudad) IS NULL THEN
     SELECT CONCAT ('EN LA CIUDAD', ciudad, 'NO HAY CLIENTES') AS ciudad;
   ELSE
     SELECT nom_cli,nif,telefon FROM clientes WHERE  ciudad=ciudad;
  END IF;
END;
|
DELIMITER

CALL PROC_MOLI (@w);

22.Escribe una función que se llame “func_apellido”, donde apellido es tu apellido, que devuelva la fecha de inicio del proyecto del empleado que cobra más. Utiliza la función MAX y las variables que necesites.

DROP FUNCTION IF EXISTS FUNC_MOLI;
  DELIMITER |

CREATE FUNCTION  func_moli ( )   RETURNS  DATE
-RETURN  (SELECT data_inici FROM proyectos INNER JOIN empleados ON
proyectos.codi_proj=empleados.num_proj WHERE  codi_empl=(SELECT codi_empl
FROM empleados WHERE sueldo= (SELECT max(sueldo) FROM empleados)));
|
DELIMITER
SELECT FUNC_MOLI();

  

Para más info suscribete a Desy Repara

domingo, 9 de junio de 2013

CREAR CV

En lenguaje XML/XSL, igual que en cualquier otro lenguaje, podemos crear varias cosas, desde un texto plano, a cualquier otro tipo, siempre que ejecutemos bien los ocmandos necesarios. En este caso vamos a crear la estructura para un curriculum web, Empezamos con la demostración del XML ( para obtener código haga clic botón derecho sobre el contenido y seleccione inspeccionar elemento):

#
 
  img/pibe.jpg
  Desirèe
  Martinez
  Inarejos
  35 años
  
   30
   Septiembre
   1978
  
  Barcelona
  42312298D
  
   Palacios
   134
   08083
   Barcelona
  
  
   img/telefono.png
   93
   388.98.33
  
  
   img/mobile.png
   +34
   670892212
  
  desy_mar_ina@hotmail.com
  img/logo.png
  img/separador.png
  
   
    
     Administradora de Sistemas / Administración WEB
    2 Años de experiencia
    Experta en Windows y sistemas UNIX, (administración, desarrollo 
       y humanización de Productos).
       Diseño 3D, Desarrollo e implementacón de planos digitalizaciones, 
       diseñoo industrial. 
      
   
   
    
     
      Abril
      Julio
      2012
     
     
      Imaginación Constructiva. CRADE
     
     
      Diseño Industrial - Gráfico
     
     Prácticas Profesionales
     Creación y desarrollo de Productos
    
   
   
    
     Licenciatura en Diseño Industrial
     2005
     2010
     Facultad de Arquitectura y diseño de la Universidad de Girona.
    
    
     Certificado en Carrera General
     1998
     2003
     Bachillerato en IES Pompeu Fabra, Badalona.
    
    
     Certificado de Técnico 
     1995
     1998
     Secundaria "IES La Pineda" , Badalona.
    
   
   
    
     Inglés
     50%
    
     
     Catalán
     90%
    
   
   
    
     Informática
     Modelado y Diseño en 3-D en software de Diseño. Manejo de Rhinoceros,Crazy Talk, Autocad, Hypershot, 3Ds Studio, poser,Particle illusion y paquete elemental de diseño gráfico, corel Draw, Photodraw de Microsoft y Photoshop CS4.
     
    
   
  
 
 
#

Por otro lado ahora vamos con el XSL para adjuntar el XML a este y que funcione correctamente.(Para ver el código utilizado presione el botón del derecho del ratón y seleccione inspeccionar elemento)





 Practica 5 - Rubio 



 
  


 de  .

()
()
Experiencia profesional
-

Función:
Formación Académica
-
Otros datos
Idiomas:

sábado, 8 de junio de 2013

TABLAS ( Lenguaje de Marcas)

ESTRUCTURAS BÁSICAS:

Una tabla, es una cuadrícula donde insertar información.Donde hay celdas, en sentido horizontal se llaman filas y en vertical columnas. La tabla se crea con la etiqueta: (sin almohadillas)<#table> <#/table>.

Dentro de esta tabla, podemos crear filas que se crean con la etiqueta: (sin almohadillas)<#tr> <#/tr>. I dentro de estas filas crear celdas con la etiqueta: 8sin almohadillas) <#td> <#/td> o <#th> <#/th>. Las TD son celdas básicas y simples, las TH son celdas en negrita y centradas.

Ejemplo:

<#table>

 <#tr>

  <#td>PRUEBA<#/td>

  <#th>PRUEBA2<#/th>

 <#/tr>

<#/table>

Ejemplo gráfico:

PRUEBA PRUEBA2

ENCABEZADO DE TABLA Y COLUMNAS:

El título en las tablas se crea con la etiqueta :(sin almohadilla)<#caption>TÍTULO<#/caption>. Que se introduce justo después de la etiqueta <#table>, y antes de abrir un <#tr>. Veamos un ejemplo gráfico:

TABLA
Prueba
Prueba2

Aunque también dentro de la tabla se pueden crear títulos, insertados dentro de las celdas con la etiqueta <#th> <#/th>.Veamos un ejemplo:

<#table>

<#caption>TÍTULO<#/caption>

 <#tr>

  <#th>PRUEBA<#/th>

  <#th>PRUEBA2<#/th>

 <#/tr>

Y ahora en modo gráfico

TíTULO
Prueba
Prueba2

En la siguiente imagen podéis ver el código de ejemplo de una tabla con varios formatos

Combinación de celdas:

Para combinar celdas, se puede hacer de dos modos. Dependiendo del tipo de combinación que deseemos realizar.

  1. Combinación por columnas: Colspan= "numero" de columnas a combinar en una sola
  2. Combinación por filas: Rowspan=" numero" de filas a combinar en una sola

Ejemplo de combinación de 2 columnas en la segunda celda de la primera fila

1 2 3
4 5 6 7

Y ahora un caso contrario en el que aplicaremos La combinación por filas uniremos 2 filas con rowspan.

1 2 3
4 5 6 7

Si aun así no os ha quedado claro, aquí debajo tenéis una imagen. Ya sabéis lo que dicen, una imagen vale más que mil palabras.

BORDES:

Para conseguir la visibilidad de los bordes de las tablas, podemos poner dentro del STYLE lo siguiente (sin almohadillas):

  • table {border-collapse: collapse}
  • td { border: thin solid blue (o otro color)
  • th { border: thin solid blue (o otro color)