MySQL 是最流行的关系型数据库管理系统,在 WEB 应用方面 MySQL 是最好的 RDBMS(Relational Database Management System:关系数据库管理系统)应用软件之一。接下来会出几篇MySQL的学习笔记,供大家一起学习!
1、操作数据库
1、创建数据库
CREATE DATABASE IF NOT EXISTS user;复制
2、删除数据库
DROP DATABASE IF EXISTS user;复制
3、使用数据库
-- 如果使用的表名或者字段名是一个特殊字符,则需要带``
USE `user`;复制
4、查看数据库
-- 查看所有的数据库
SHOW DATABASE;复制
2、数据库的列类型
1、数值类型
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的值 | 小数值 |
2、日期和时间类型
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 | 混合日期和时间值,时间戳 |
3、字符串类型
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 | 极大文本数据 |
3、MySQL 创建数据表
1、通用语法
-- CREATE TABLE table_name (column_name column_type);
CREATE TABLE `user` (
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键ID',
`name` varchar(30) DEFAULT NULL COMMENT '姓名',
`age` int(11) DEFAULT NULL COMMENT '年龄',
`email` varchar(50) DEFAULT NULL COMMENT '邮箱',
`version` int(10) NOT NULL DEFAULT '1' COMMENT '版本',
`gmt_create` datetime DEFAULT NULL COMMENT '创建时间',
`gmt_update` datetime DEFAULT NULL COMMENT '修改时间',
`is_delete` int(1) DEFAULT NULL COMMENT '伪删除',
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;复制
如果你不想字段为 NULL 可以设置字段的属性为 NOT NULL, 在操作数据库时如果输入该字段的数据为NULL ,就会报错。
AUTO_INCREMENT定义列为自增的属性,一般用于主键,数值会自动加1。
PRIMARY KEY关键字用于定义列为主键。您可以使用多列来定义主键,列间以逗号分隔。
ENGINE 设置存储引擎,CHARSET 设置编码,COLLATE排序规则
4、删除数据库表
1、通用语法
-- DROP TABLE table_name
DROP TABLE `user`;复制
5、插入数据
1、通用语法
--INSERT INTO table_name (field1, field2, field3...) VALUES (values1, values2, values2...);
-- 字段与value一一对应
INSERT INTO `user` (name, age, email, version, gmt_create, gmt_update, is_delete) VALUES ('李子捌', '18', '1057301174@qq.com', 1, NOW(), NOW(), 1);
-- 没有字段名则需要顺序一致
INSERT INTO `user` VALUES (8, '李子捌', 18, '1057301174@qq.com', 1, NOW(), NOW(), 1);
INSERT INTO `user` SET name = '李子捌', age = 18;复制
6、查询语句
1、通用语法
--SELECT column_name,column_nameFROM table_name[WHERE Clause][LIMIT N][ OFFSET M]
select * from `user`;复制
查询语句中你可以使用一个或者多个表,表之间使用逗号(,)分割,并使用WHERE语句来设定查询条件。
SELECT 命令可以读取一条或者多条记录。
可以使用星号(*)来代替其他字段,SELECT语句会返回表的所有字段数据
可以使用 WHERE 语句来包含任何条件。
可以使用 LIMIT 属性来设定返回的记录数。
可以通过OFFSET指定SELECT语句开始查询的数据偏移量。默认情况下偏移量为0。
7、MySQL WHERE 子句
1、通用语法
--SELECT field1, field2,...fieldN FROM table_name1, table_name2...[WHERE condition1 [AND [OR]] condition2.....
SELECT name, age FROM `user` WHERE name = '李子捌' or age = 18;复制
可以在 WHERE 子句中指定任何条件。
可以使用 AND 或者 OR 指定一个或多个条件。
8、MySQL UPDATE 更新
1、通用语法
-- UPDATE table_name SET field1=new-value1, field2=new-value2 [WHERE Clause]
UPDATE `user` SET age = 3 WHERE name = '李子捌' AND email = '1057301174@qq.com';复制
可以同时更新一个或多个字段。
可以在 WHERE 子句中指定任何条件。
可以在一个单独表中同时更新数据。
9、MySQL DELETE 语句
1、通用语法
-- DELETE FROM table_name [WHERE Clause]
DELETE FROM `user` WHERE name = '李子捌';复制
如果没有指定 WHERE 子句,MySQL 表中的所有记录将被删除。
可以在 WHERE 子句中指定任何条件
10、MySQL LIKE 子句
1、通用语法
-- SELECT field1, field2,...fieldN FROM table_name WHERE field1 LIKE condition1 [AND [OR]] filed2 = 'somevalue'
SELECT name, age, email FROM `user` WHERE name LIKE '%捌';
-- 百分号可在左边、右边、两边
-- '%捌' '捌%' '%捌%'
-- 以捌结尾 以捌开头 包含捌复制
学习资料链接:
https://www.mysql.com/
https://www.runoob.com/mysql/mysql-tutorial.html
文章转载自李子捌,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。
评论
相关阅读
【MySQL 30周年庆】MySQL 8.0 OCP考试限时免费!教你免费领考券
墨天轮小教习
3017次阅读
2025-04-25 18:53:11
MySQL 30 周年庆!MySQL 8.4 认证免费考!这次是认真的。。。
严少安
859次阅读
2025-04-25 15:30:58
【活动】分享你的压箱底干货文档,三篇解锁进阶奖励!
墨天轮编辑部
498次阅读
2025-04-17 17:02:24
MySQL 9.3 正式 GA,我却大失所望,新特性亮点与隐忧并存?
JiekeXu
439次阅读
2025-04-15 23:49:58
3月“墨力原创作者计划”获奖名单公布
墨天轮编辑部
377次阅读
2025-04-15 14:48:05
MySQL 8.0 OCP 1Z0-908 考试解析指南(二)
JiekeXu
298次阅读
2025-04-30 17:37:37
记录MySQL数据库的一些奇怪的迁移需求!
陈举超
282次阅读
2025-04-15 15:27:53
SQL优化 - explain查看SQL执行计划(下)
金同学
281次阅读
2025-05-06 14:40:00
MySQL 8.0 OCP 1Z0-908 考试题解析指南
青年数据库学习互助会
264次阅读
2025-04-30 12:17:54
MySQL 30 周年庆!MySQL 8.4 认证免费考!这次是认真的。。。
数据库运维之道
260次阅读
2025-04-28 11:01:25