MySQL学习笔记

本硕7年第一次学MySQL

Posted by Deavan on April 16, 2024

1.1 MySQL

MySQL为什么叫”My”SQL呢,原来竟然是My是他大女儿的名字,那如果二女儿长大以后嫉妒姐姐怎么办呢,那就再造个MariaDB(Maria是她二女儿名字)。

1.1.1 数据类型

1.1.1.1 数值类型
  • INT (-2147483648~2147483647) 32位
  • TINYINT (-128~127) 8位
  • SMALLINT (-32768~32767) 16位
  • MEDIUMINT 24位
  • BIGINT 64位
  • FLOAT
  • DOUBLE
  • DECIMAL 精确小数
1.1.1.2 字符类型
  • VARCHAR 可变长度字符串 1-65532字节,1-255 需要一个字节的overhead,255以上需要两个字节的overhead
  • CHAR 固定长度字符串,最多255个字符
  • TEXT 65535个字符
  • LONGTEXT
1.1.1.3 日期类型
  • DATETIME 2024-04-16 17:18:49
  • DATE 2024-04-16
  • YEAR
  • TIME

2.1 SQL(Structured Query Language

SQL语句通常用大写表示,不过混用也可以,为了代码优雅统一以后还是强制大写吧。

先会用,再去了解原理,所以先从SQL语法开始。

2.1.1常用SQL语法

SELECT DATABASE(); // 显示当前使用的数据库
SHOW DATABASES; // 显示数据库一览
use db1;    // 这不是个SQL,所以小写没毛病

CREATE TABLE 表名(列名1 数据类型1, 列名2 数据类型2……) CHARSET=utf8; // 创建表
// EX. CREATE TABLE tb1(empid VARCHAR(10), name VARCHAR(10), age INT);
SHOW TABLES; // 显示所有表
DESC tb1; // 等价于 DESCRIBE tb1;
CREATE TABLE tb1replica SELECT * FROM tb1; // 通过复制创建

// 
INSERT INTO 表名 VALUES(数据1,数据2……);
INSERT INTO 表名(列名1,列名2 VALUES(数据1,数据2); // 通过指定列,可以不按默认顺序
INSERT INTO 表名(列名1,列名2 VALUES(数据1,数据2),数据3,数据4); // 插入多个

// 
SELECT * FROM tb1;