MYSQL数据类型及常用SQL语言

运维 · 2021-10-26

一。MySQL的常用数据类型

1.日期和时间类型

类型大小(bytes)格式用途
DATE3YYYY-MM-DD日期值
TIME3HH:MM:SS时间值或者持续时间
YEAR1YYYY年份值
DATETIME8YYYY-MM-DD HH:MM:SS混合日期和时间值
TIMESTAMP4YYYYMMDD HHMMSS混合日期和时间值,时间戳

2.数值类型

类型大小(bytes)范围用途
TINYINT1(0,255)小整数值
SMALLINT2(0,65 535)大整数值
MEDIUMINT3(0,16 777 215)大整数值
INT4(0,4 294 967 295)大整数值
BIGINT8(0,18 446 744 073 709 551 615)极大整数值
FLOAT40,(1.175 494 351 E-38,3.402 823 466 E+38)单精度浮点数值
DOUBLE80,(2.225 073 858 507 201 4 E-308,1.797 693 134 862 315 7 E+308)双精度浮点数值
DECIMAL 依赖于M和D的值小数值

3.字符串类型

类型大小(bytes)用途
CHAR0-255定长字符串
VARCHAR0-65535变长字符串
TINYBLOB0-255不超过 255 个字符的二进制字符串
TINYTEXT0-255短文本字符串
BLOB0-65 535二进制形式的长文本数据
TEXT0-65 535长文本数据
MEDIUMBLOB0-16 777 215二进制形式的中等长度文本数据
MEDIUMTEXT0-16 777 215中等长度文本数据
LONGBLOB0-4 294 967 295二进制形式的极大文本数据
LONGTEXT0-4 294 967 295极大文本数据

二。SQL语言

SQL语言根据语句结构分为以下语句类型

  • DDL:数据定义语言

    CREAT 创建数据库和表等对象

    DROP 删除数据库和表等对象

    ALTER 修改数据库和表等对象的结构

  • DML数据操纵语言

    INSERT 向表中插入新数据 (增)

    DELETE 删除表中数据 (删)

    SELECT 查询表中的数据 (查)

    UPDATE 更新表中数据 (改)

    WHERE 数据过滤

  • DCL数据控制语言

    COMMIT 将SQL语句的执行结果写入数据库表中

    ROLLBACK 撤销SQL语句的执行结果

DDL:

mysql>SHOW DATABASES;          #显示所有数据库

mysql>CREATE DATABASE 库名;          #创建一个数据库并命名

mysql>USE 库名;          #使用这个数据库

mysql>DROP 库名;          #删除这个数据库

DML:

mysql>SELECT 列名  FROM  表名;          #从这张表中查询这一列(可以多列查询)

mysql>SELECT * FROM 表名;          #查询所有列(相当于查询整张表)

mysql>SELECT 列名 AS 别名 FROM 表名 AS 别名;          #AS后面跟新取的别名

mysql>SELECT 列名,CONCAT(列名,列名) AS 别名 FROM 表名;          #CONTACT相当于把两个列的内容合在一起

mysql>SELECT * FROM 表名 ORDER BY 列名 ASC;          #按照该列排序(ASC升序,DESC降序)

mysql>SELECT * FROM 表名 WHERE 过滤子句;          #根据指定条件过滤数据

##WHERE后面的过滤子句可以使用运算符号(+-*/<>!=)
##可以使用逻辑运算符(AND/OR/NOT/组合操作),相邻条件句在用逻辑运算符连接时加括号(),NOT不能单独使用
##可以使用固定语句(BETWEEN...AND.../... IS NULL/... IS NOT NULL)
##可以使用IN (值1,值2,...)来表示明确但不连续的取值

mysql>SELECT * FROM 表名 WHERE 列名 LIKE 过滤条件;          #like模糊查询,可使用通配符(下划线_:替代单个任何字符,百分号%:替代任意数目字符)

mysql>COUNT(*)/(1)          #确定表中行的数目,可以加条件。(COUNT(COL)只作用于非空行;COUNT(DISTINCT col)对行去重计数)

增删改部分:

INSERT INTO 表名(列名) VALUE(插入值);
#eg:INSERT INTO person_sc(id,name,score) VALUE("01","张三","658");

SET 字段 = 值;
#不过多解释

UPDATE 表名;
#eg:UODATE person_sc;

DELETE FROM 表名 WHERE 过滤条件;
#只删除特定数据

TRUNCATE TABLE 表名;
#清空表(表中数据清空,但是表还存在)

提醒:在对表进行更新操作(UPDATE/INSERT INTO/DELETE)之前,请务必先用SELETE进行测试,以防过滤错误。

Theme Jasmine by Kent Liao