共计 2397 个字符,预计需要花费 6 分钟才能阅读完成。
MYSQL
简介
MySQL 是最流行的关系型数据库管理系统,在 WEB 应用方面 MySQL 是最好的 RDBMS(Relational Database Management System:关系数据库管理系统) 应用软件之一。
数据库
结构
数据库有一个简单层级关系即,数据库 - 数据表 - 数据(行)
数据类型
数值类型
类型 | 大小 | 范围(有符号) | 范围(无符号) | 用途 |
---|---|---|---|---|
TINYINT | 1 byte | (-128,127) | (0,255) | 小整数值 |
SMALLINT | 2 bytes | (-32 768,32 767) | (0,65 535) | 大整数值 |
MEDIUMINT | 3 bytes | (-8 388 608,8 388 607) | (0,16 777 215) | 大整数值 |
INT 或 INTEGER | 4 bytes | (-2 147 483 648,2 147 483 647) | (0,4 294 967 295) | 大整数值 |
BIGINT | 8 bytes | (-9,223,372,036,854,775,808,9 223 372 036 854 775 807) | (0,18 446 744 073 709 551 615) 极大 | 整数值 |
FLOAT | 4 bytes | (-3.402 823 466 E+38,-1.175 494 351 E-38),0,(1.175 494 351 E-38,3.402 823 466 351 E+38) | 0,(1.175 494 351 E-38,3.402 823 466 E+38) | 单精度浮点数值 |
DOUBLE | 8 bytes | (-1.797 693 134 862 315 7 E+308,-2.225 073 858 507 201 4 E-308),0,(2.225 073 858 507 201 4 E-308,1.797 693 134 862 315 7 E+308) | 0,(2.225 073 858 507 201 4 E-308,1.797 693 134 862 315 7 E+308) | 双精度 |
浮点数值 | ||||
DECIMAL | 对 DECIMAL(M,D),如果 M >D,为 M + 2 否则为 D +2 | 依赖于 M 和 D 的值 | 依赖于 M 和 D 的值 | 小数值 |
日期和时间类型
类型 | 大小 | 用途 | ||
---|---|---|---|---|
DATE | 3 | 1000-01-01/9999-12-31 | YYYY-MM-DD | 日期值 |
TIME | 3 | ‘-838:59:59’/’838:59:59’ | HH:MM:SS | 时间值或持续时间 |
YEAR | 1 | 1901/2155 | YYYY | 年份值 |
DATETIME | 8 | 1000-01-01 00:00:00/9999-12-31 23:59:59 | YYYY-MM-DD HH:MM:SS | 混合日期和时间值 |
TIMESTAMP | 4 | 1970-01-01 00:00:00/2038 结束时间是第 2147483647 秒,北京时间 2038-1-19 11:14:07,格林尼治时间 2038 年 1 月 19 日 凌晨 03:14:07 | YYYYMMDD HHMMSS | 混合日期和时间值,时间戳 |
字符串类型
类型 | 大小 | 用途 |
---|---|---|
CHAR | 0-255 bytes | 定长字符串 |
VARCHAR | 0-65535 bytes | 变长字符串 |
TINYBLOB | 0-255 bytes | 不超过 255 个字符的二进制字符串 |
TINYTEXT | 0-255 bytes | 短文本字符串 |
BLOB | 0-65 535 bytes | 二进制形式的长文本数据 |
TEXT | 0-65 535 bytes | 长文本数据 |
MEDIUMBLOB | 0-16 777 215 bytes | 二进制形式的中等长度文本数据 |
MEDIUMTEXT | 0-16 777 215 bytes | 中等长度文本数据 |
LONGBLOB | 0-4 294 967 295 bytes | 二进制形式的极大文本数据 |
LONGTEXT | 0-4 294 967 295 bytes | 极大文本数据 |
语法
CREATE
CREATE 用于创建数据库或数据表
CREATE DATABASE < 数据库名 >;
CREATE TABLE < 数据表名 > (column1_name column1_type,column2_name,column2_type,...);
USE
USE 用于选择数据库
USE < 数据库名 >;
DROP
DROP 用于删除数据库或数据表
DROP database < 数据库名 >;
DROP TABLE < 数据表名 > ;
DELETE
DELETE 用于删除数据表中的数据
DELETE FROM table_name [WHERE Clause];
没有 where 则全部删除
INSERT INTO
INSERT INTO 用于向数据表插入数据
INSERT INTO table_name (field1, field2,...fieldN)
VALUES
(value1, value2,...valueN);
SELECT
SELECT 语句用于从数据库中查询数据
SELECT column_name,column_name FROM table_name;
UPDATE
UPDATE 语句用于修改或更新 MySQL 中的数据
UPDATE table_name SET field1=new-value1, field2=new-value2;
子句
子句是语法里的一部分,它自身不能作为一个完整的语法,必须与其他的一起使用。可以作为条件使用。
WHERE
WHERE 子句用于有条件地从表中选取数据
SELECT * from runoob_tbl WHERE runoob_author='菜鸟教程';
LINK
LINK 子句用于进一步描述条件,可以替 =
,LIKE 通常与 % 一同使用,类似于一个元字符的搜索。% 字符来表示任意字符.
SELECT field1, field2,...fieldN
FROM table_name
WHERE field1 LIKE condition1 [AND [OR]] filed2 = 'somevalue';
ORDER BY
ORDER BY 子句用于排序, 可以使用 ASC 或 DESC 关键字来设置查询结果是按升序或降序排列。默认情况下,它是按升序排列。
SELECT field1, field2,...fieldN FROM table_name1, table_name2...
ORDER BY field1 [ASC [DESC][默认 ASC]], [field2...] [ASC [DESC][默认 ASC]];
正文完