Mejor respuesta
Una clave principal es una restricción especial en una columna o conjunto de columnas. Una restricción de clave primaria asegura que las columnas así designadas no tengan valores NULL y que cada valor sea único. Físicamente, el sistema de base de datos implementa una clave primaria utilizando un índice único, y todas las columnas de la clave primaria deben haber sido declaradas NO NULAS. Una tabla puede tener solo una clave principal, pero puede ser compuesta (constar de más de una columna).
Una clave sustituta es cualquier columna o conjunto de columnas que se pueda declarar como clave principal en lugar de «real» o natural clave . A veces, puede haber varias claves naturales que podrían declararse como clave primaria, y todas se denominan claves candidatas . Entonces, un sustituto es una clave candidata. En realidad, una tabla podría tener más de una clave sustituta, aunque esto sería inusual. El tipo más común de clave sustituta es un entero de incremento, como una columna auto\_increment en MySQL, o una secuencia en Oracle, o una columna de identidad en SQL Server.
Ventajas de usar claves sustitutas
Como se mencionó, una clave sustituta sacrifica parte del contexto original de los datos. Sin embargo, puede ser extremadamente útil para fines analíticos por las siguientes razones:
- Las claves sustitutas son únicas. Porque las claves sustitutas son generado por el sistema, es imposible que el sistema cree y almacene un valor duplicado.
- Las claves sustitutas aplican reglas uniformes a todos los registros. El valor de la clave sustituta es el resultado de un programa, que crea el valor generado por el sistema. Cualquier clave creada como resultado de un programa aplicará reglas uniformes para cada registro.
- Las claves sustitutas resisten la prueba del tiempo. Porque sustitutas las claves carecen de contexto o significado comercial, no habrá necesidad de cambiar la clave en el futuro.
- Las claves sustitutas permiten valores ilimitados. Las claves secuenciales, de marca de tiempo y aleatorias no tienen límites prácticos para combinaciones únicas.
Respuesta
La mayoría de las bases de datos actuales son realmente sistemas de administración de bases de datos (DBMS). Estos constan de dos componentes:
- la base de datos adecuada , que almacena los datos, junto con los metadatos, como relaciones, restricciones , etc…
- la interfaz de usuario, donde el desarrollador y / o administrador de la base de datos ingresan comandos SQL.
La mayoría de las bases de datos se envían con una utilidad de línea de comandos para la interfaz con la base de datos. Por ejemplo, MySQL proporciona un shell SQL simple con capacidades de edición de línea de entrada. Es compatible con el uso interactivo y no interactivo. Cuando se utiliza de forma interactiva, los resultados de la consulta se presentan en formato de tabla ASCII. Cuando se utiliza de forma no interactiva (por ejemplo, como filtro), el resultado se presenta en formato separado por tabulaciones. El formato de salida se puede cambiar usando las opciones de comando.
Para invocar el shell MySQL desde el indicador de su intérprete de comandos, debe ingresar algo como lo siguiente:
shell> mysql --user=user\_name --password db\_name
Enter password: your\_password
Una vez que haya iniciado sesión en su base de datos, puede ejecutar comandos, como una consulta SELECT , en su contra:
shell>SELECT * FROM shop ORDER BY article;
+---------+--------+-------+
| article | dealer | price |
+---------+--------+-------+
| 1 | A | 3.45 |
| 1 | B | 3.99 |
| 2 | A | 10.99 |
| 3 | B | 1.45 |
| 3 | C | 1.69 |
| 3 | D | 1.25 |
| 4 | D | 19.95 |
+---------+--------+-------+
También puede poner sus sentencias SQL en un archivo y luego dígale a mysql que lea su entrada de ese archivo. Para hacerlo, debe crear un archivo de texto que contenga las declaraciones que desea ejecutar. Luego, invoque mysql como se muestra aquí:
shell> mysql db\_name
Algunos proveedores de bases de datos también ofrecen clientes y utilidades de GUI, además de un comando: cliente de línea. Siguiendo con MySQL, su cliente GUI es MySQL Workbench. Disponible en Windows, Linux y Mac OS X, MySQL Workbench está dirigido a arquitectos, desarrolladores y administradores de bases de datos. Proporciona modelado de datos, desarrollo SQL y herramientas de administración integrales para la configuración del servidor, administración de usuarios, respaldo y mucho más.
Otras herramientas
Además de las herramientas ofrecidas por los propios proveedores de bases de datos, hay muchas otras ofertas comerciales y de código abierto disponibles para todos los tipos de bases de datos y servicios en la nube. En términos de diferencias, tanto los productos gratuitos como los comerciales se adaptan bien a su propósito.El que elija dependerá más del tipo de trabajo que haga que de la usabilidad.
Después de haber trabajado bastante con productos de código abierto y comerciales, descubrí que me inclinaba progresivamente hacia el segundo, a medida que la eficiencia del trabajo se volvió más importante para mi trabajo como consultor de TI. Mi opinión personal es que los productos comerciales pueden hacerlo más productivo, ya que agilizan las tareas comunes para aumentar la eficiencia.
Como resultado, he estado usando Navicat Premium cliente de administración y desarrollo de bases de datos desde hace varios años. Aunque Navicat crea clientes para todas las bases de datos populares, Navicat Premium es la única herramienta que he usado que puede conectarse simultáneamente a bases de datos MySQL, MariaDB, MongoDB, SQL Server, Oracle, PostgreSQL y SQLite desde una sola aplicación. También es totalmente compatible con bases de datos en la nube como Amazon RDS, Amazon Aurora, Amazon Redshift, Microsoft Azure, Oracle Cloud y Google Cloud.
Aquí hay una captura de pantalla de la pantalla principal en Windows:
Todos los productos Navicat están disponibles para Linux y macOS, así como para Windows.
En particular, el Editor de consultas me ayuda a escribir Mis consultas más rápido al incluir resaltado de sintaxis, fragmentos de código reutilizables y personalizables, así como sugerencias automáticas, como se muestra a continuación:
Incluso tiene un generador de consultas, que es de gran beneficio para los usuarios menos experimentados. ¡Te permite crear y editar consultas visualmente sin prácticamente ningún conocimiento de SQL!
¡Espero que te ayude!
Saludos cordiales,
Adam