Notas de estudio de Mysql Xiaobai
- Introducción a las bases de datos
Introducción a las bases de datos
DB
SGBD
modelo de emergencia
1) Tres elementos del diagrama ER
(1) Entidad: la entidad está representada por un rectángulo y el nombre de la entidad está marcado dentro del rectángulo.
(2) Atributo: el atributo está representado por un óvalo, y el nombre del atributo está marcado dentro del óvalo y conectado con la entidad por una línea de conexión.
(3) Conexiones entre entidades: use rombos para representar las conexiones entre entidades e indique el nombre de la conexión dentro del diamante, conecte los diamantes a entidades relacionadas con líneas de conexión e indique el tipo de conexión en las líneas de conexión.
Relación entre dos entidades: existen relaciones distintas a la de muchos a uno.
Relaciones entre más de dos entidades: todas excepto uno a muchos.
Un
estudiante puede tener una tarjeta de identificación de estudiante y solo debe tener una tarjeta de identificación de estudiante.
Un estudiante debe y solo puede estar en una clase. El número máximo de estudiantes en una clase es 40 y el número mínimo es 30.
Autor: Little Lucky Q
Enlace: https://www.jianshu.com/p/19610fafcc2b
Fuente: Jianshu
Los derechos de autor pertenecen al autor. Para reimpresión comercial, comuníquese con el autor para obtener autorización, para reimpresión no comercial, indique la fuente.
esquema relacional
relación_nombre(propiedad1,propiedad2...)
mysql
metodo de instalacion
Comandos relacionados con mysql
? | (?) Sinónimo de 'ayuda'. | 。。。。。。。 |
---|---|---|
claro | (\c) Limpia la declaración de entrada actual. | |
conectar | (\r) Vuelva a conectarse al servidor. Los argumentos opcionales son db y host. | |
delimitador | (\d) Establecer delimitador de declaración. | |
ego | (\G) Enviar comando al servidor mysql, mostrar el resultado verticalmente. | |
salida | (\q) Salga de mysql. Lo mismo que dejar de fumar. | |
ir | (\g) Enviar comando al servidor mysql. | |
ayuda | (\h) Mostrar esta ayuda. | |
nota | (\t) No escriba en el archivo externo. | |
imprimir | (\p) Imprime el comando actual. | |
inmediato | (\R) Cambie su solicitud de mysql. | |
abandonar | (\q) Salir de mysql. | |
refrito | (#) Hash de finalización de reconstrucción. | |
fuente | (.) Ejecute un archivo de script SQL. Toma un nombre de archivo como argumento. | ejecutar un script |
estado | (\s) Obtener información de estado del servidor. | |
tee | (\T) Establecer archivo de salida [to_outfile]. Agregue todo en el archivo de salida dado. | |
usar | (\u) Usar otra base de datos. Toma el nombre de la base de datos como argumento. | |
juego de caracteres | (\C) Cambiar a otro juego de caracteres. Puede ser necesario para procesar binlog con juegos de caracteres de varios bytes. | |
advertencias | (\W) Mostrar advertencias después de cada declaración. | |
sin advertencia | (\w) No mostrar advertencias después de cada declaración. | |
restablecer la conexión | (\x) Limpie el contexto de la sesión. |
Funcionamiento básico de la base de datos.
- MOSTRAR BASE DE DATOS; Verifique la base de datos, preste atención a la S detrás de ella, se olvidó varias veces
- CREAR BASE DE DATOS nombre de la base de datos
- Cómo ver la ruta de la base de datos establecida en 2: mostrar variables como 'datadir';
- Ver los detalles de la base de datos establecida - MOSTRAR CREAR BASE DE DATOS
- Modifique el método de codificación de la base de datos: hay muchos pozos aquí
Modificar la codificación de la base de datos
- latin1, este 1 es exactamente igual que l en la línea de comando, lo siguiente es una serie de informes de error, para ser resueltos
mysql> ALTER DATABASE hzh DEFAULT CHARACTER
-> SET latinl COLLATE gbk;
ERROR 1115 (42000): Unknown character set: 'latinl'
mysql> ALTER DATABASE hzh DEFAULT CHARACTER
-> SET latin1 COLLATE gbk;
ERROR 1273 (HY000): Unknown collation: 'gbk'
mysql> ALTER DATABASE hzh DEFAULT CHARACTER
-> SET latin1 COLLATE utf8;
ERROR 1273 (HY000): Unknown collation: 'utf8'
mysql> ALTER DATABASE hzh DEFAULT CHARACTER
-> SET latin1 COLLATE utf-8;
ERROR 1273 (HY000): Unknown collation: 'utf'
mysql> ALTER DATABASE hzh DEFAULT CHARACTER
-> SET latin1 COLLATE gbk_bin;
ERROR 1253 (42000): COLLATION 'gbk_bin' is not valid for CHARACTER SET 'latin1'
mysql> ALTER DATABASE hzh DEFAULT CHARACTER
-> SET latin1 COLLATE utf8_general_ci;
ERROR 1253 (42000): COLLATION 'utf8_general_ci' is not valid for CHARACTER SET 'latin1'
Funcionamiento básico de la tabla de datos
-
Modo de visualización: int(M) En el tipo de datos entero, M representa el ancho máximo de visualización.
En int(M), el valor de M no tiene nada que ver con cuánto espacio de almacenamiento ocupa int(M). -
¡Cree una tabla y no la agregue después de completar la definición del último elemento en la tabla ! ! ! ! !
mysql> CREATE TABLE HOBBY(
-> ho_id INT(10),
-> ho_name VARCHAR(50),
-> ho_fre INT(6),
-> );
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ')' at line 5
- Mirando la hoja de datos, el método es diferente del tutorial que elegí.
mysql> SHOW CREATE TABLE hobby;
+-------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| Table | Create Table |
+-------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| hobby | CREATE TABLE `hobby` (
`ho_id` int(10) DEFAULT NULL,
`ho_name` varchar(50) DEFAULT NULL,
`ho_fre` int(6) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1 |
+-------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------+
1 row in set (0.00 sec)
- No sé por qué
SHOW CREATE TABLE hobby\G;
esto es un error
, use DESC para ver
mysql> DESC hobby;
+---------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+---------+-------------+------+-----+---------+-------+
| ho_id | int(10) | YES | | NULL | |
| ho_name | varchar(50) | YES | | NULL | |
| ho_fre | int(6) | YES | | NULL | |
+---------+-------------+------+-----+---------+-------+
- int(M) En el tipo de datos entero, M representa el ancho máximo de visualización. En int(M), el valor de M no tiene nada que ver con cuánto espacio de almacenamiento ocupa int(M).
Operaciones básicas sobre datos en tablas
- decimal(10,2) - 2 dígitos para la parte fraccionaria y 8 dígitos para la parte entera
SHOW TABLES;
Ver la tabla que se ha creado;- Insertar datos de forma masiva:
mysql> INSERT INTO emp(id,name)
-> VALUES(1,'sunkaien'),(3,'future');
- Ver tabla (distinguir la instrucción DESC)
mysql> SELECT *FROM 表名;
+------+----------+--------+----------+--------+------------+--------+
| id | name | gender | birthday | salary | entry_date | resume |
+------+----------+--------+----------+--------+------------+--------+
| 1 | sunkaien | NULL | NULL | NULL | NULL | NULL |
| 3 | future | NULL | NULL | NULL | NULL | NULL |
+------+----------+--------+----------+--------+------------+--------+
- Actualizar todos los datos
UPDATE emp(表名) SET gender='male';
Actualizar algunos datosUPDATE emp SET salary=5000 WHERE name='sunkaien';
Tenga en cuenta que aquí va seguido de una condición de filtro. - Eliminar datos
Eliminar parte de los datos DELETE FROM nombre de la tabla [WHERE expresión condicional]; - Consultar campos especificados
SELECT 字段名 FROM 表名;
- Operadores relacionales · consulta con condiciones
=——igual a
<>——no igual a (recomendado)
!=——distinto a
<—menor que
<=——menor que o igual
Además, existen instrucciones IN y NOT IN
Comprender las similitudes y diferencias de las siguientes declaraciones de consulta condicional:
mysql> SELECT age FROM stu
-> WHERE age>=24;
+-----+
| age |
+-----+
| 24 |
| 26 |
| 24 |
+-----+
mysql> SELECT *FROM stu
-> WHERE age>=24;
+--------+----------+-----+--------+
| sid | sname | age | gender |
+--------+----------+-----+--------+
| S_1003 | hzh | 24 | male |
| S_1004 | zhangli | 26 | female |
| S_1005 | zhaoyuan | 24 | male |
+--------+----------+-----+--------+
Consulta de información NULL:
mysql> SELECT *FROM emp
-> WHERE salary IS NULL;
- consulta difusa
mysql> SELECT *FROM stu
-> WHERE sname LIKE 'z%';#LIKE后面跟匹配字符串
% (signo de porcentaje) significa cualquier 0~n caracteres, _ (guión bajo) significa cualquier carácter
- Eliminar palabras clave duplicadas de los resultados de la consulta
mediante DISTINCT
mysql> SELECT DISTINCT gender FROM stu;
+--------+
| gender |
+--------+
| female |
| male |
+--------+
Búsqueda Avanzada
- Ordenar consulta
mysql> SELECT * FROM stu
-> ORDER BY age ASC;#ASC代表升序排列,DESC代表降序
-> SELECT * FROM stu
-> ORDER BY age ASC,sid DESC;#并列多个拆寻条件时,优先满足第一个,再第一个无法排序时,再看第二个。
- Ordenar y sumar operación
SELECT nombre de función (nombre de campo) FROM nombre de tabla;
función: SUM sum AVG valor promedio MAX MIN - operación de grupo
mysql> SELECT gender,AVG(age) FROM stu #排序依据
-> GROUP BY gender; #分组依据
- LIMIT paginación
limita el número de resultados de consulta
PyMysql
lectura y escritura basica
import pymysql
db=pymysql.connecte("localhost","root","1234","future")
cursor=db.cursor()
cursor.execute("SELECT VERSION()")
data=cursor.fetchone()
print("Database version:%s"% data)
db.close()
1
AttributeError: 'module' object has no attribute 'connect'
error de conexion
2
TypeError: __init__() takes 1 positional argument but 5 were given
**db=pymysql.connect(host="localhost", user="root", password="1234", database="hzh")**Razones por la versión de Python, debe agregar un nombre antes del parámetro
resultado de la operación:
Database version:5.7.24-log
Primeros pasos con Navicat
- Ver la base de datos y agregar y eliminar entradas.
Tal vez nos conectemos a la base de datos local al principio y descubramos que no hay ninguna tabla. En este momento, haga clic con el botón derecho en nuestra base de datos local y seleccione Editar conexión, como se muestra en la figura a continuación, en la pestaña Base de datos, crearemos Verificar la lista.
Haga doble clic en el servidor local para conectarse, y luego también se muestra la tabla de datos en la máquina
- Modifique la tabla de datos
Haga doble clic en la tabla a modificar, ingrese la edición, mire el círculo rojo en la esquina inferior derecha, puede agregar o eliminar entradas de datos, ¿es muy conveniente?
Hice clic derecho para crear una nueva base de datos y, después de actualizar el host, descubrí que no estaba allí y luego pensé en editar la conexión. ? ? La base de datos no está marcada
y luego ejecuta el archivo en la base de datos construida.
O simplemente cancele el uso de la lista de base de datos personalizada directamente.