MySQL笔记

准备操作

MySQL的安装

  1. 初始化MySQL数据库的数据:mysqld --initialize-insecure

    会在mysql安装文件夹下生成data文件夹

  2. 将MySQL注册成系统服务:mysqld -install

  3. 启动MySQL服务:net start mysql

    停止MySQL服务:net stop mysql

  4. 修改数据库的默认账户密码

    mysqladmin -u root password xxxx

  5. 连接MySQL

    mysql -u<username> -p<password> [-h<IP> -p<port>]

MySQL的卸载

  1. 停止服务:net stop mysql
  2. 卸载:mysqld -remove mysql

配置MySQL数据库远程连接

use mysql;:更换mysql系统配置数据库

select host,user from user;

img

root用户的host为localhost,说明仅支持本地连接

update user set host='%' where user='root;':修改host为%

flush privileges;

SQL语法

注释

-- 单行注释
# 单行注释
/*
多行注释
*/

数据库操作

查看所有数据库:show databases;

查看当前数据库:select database();

创建数据库:create database [if not exists] <db_name>;

使用数据库:use <db_name>;

删除数据库:drop database [if exists] <db_name>;

表操作

创建表

create table <tb_name> (
<col1_name> <col1_type> [约束] [comment 字段1注释],
...
<coln_name> <coln_type> [约束] [comment 字段n注释],
) [comment 表注释];

查询

img

img

img

img

update语法:

update 表名 set 字段名1=值1, 字段名2=值2, ... [where 条件];

delete语法:

delete from 表名 [where 条件];

基本查询:

img

模糊查询:

select 字段列表 from 表名 [where 条件];

条件中为:<col_name> like xxx;

匹配任意一个字符:_

匹配任意多个字符(包含0个):%

聚合函数:

img

分组查询:

img

where与having的区别:

  1. where是分组之前进行过滤,having则是在分组之后进行过滤

排序查询:

select 字段列表 from 表名 [where 条件] order by 排序字段名1 [asc|desc], 排序字段名1 [asc|desc];

分页查询:

select 字段列表 from 表名 [where 条件] limit 起始索引,查询记录数;

条件判断:

if(表达式, 表达式为真时取值, 表达式为假时取值)

case 表达式 when 值1 then 结果1 when 值2 then 结果2 ... else 其他值 end

外键约束:

img

括号:() 必须带上

多表查询-内连接:

img

多表查询-外连接:

img

左外连接最后查询结果包含左边的数据库中的数据,右外连接最后查询的结果包含右边的数据库中的数据

子查询-标量子查询:

img

子查询-列子查询:

img

事务

开启事务:start transaction; / begin;

提交事务:commit;

回滚事务:rollback;

索引

优点:索引会提高数据查询的效率,降低数据库的IO成本;通过索引列对数据进行排序,降低数据排序的成本,降低CPU消耗

缺点:占用存储空间,降低了insert、update、delete的效率

创建新用户

create user "wordpress"@"localhost" identified by "maxime";
grant all privileges on wordpress.* to "wordpress"@"localhost";
flush privileges;

数据类型

数值类型

类型 大小 范围(有符号) 范围(无符号) 用途
TINYINT 1 Bytes (-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的值 小数值

日期和时间类型

类型 大小 ( bytes) 范围 格式 用途
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:01' UTC 到 '2038-01-19 03:14:07' UTC结束时间是第 2147483647 秒,北京时间 2038-1-19 11:14:07,格林尼治时间 2038年1月19日 凌晨 03:14:07 YYYY-MM-DD hh:mm:ss 混合日期和时间值,时间戳

字符串类型

类型 大小 用途
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 极大文本数据

MySQL中没有boolean类型数据,可以用tinyint类型代替(使用0/1表示)

常用数据类型如下:

int:整数

varchar:字符串

blob:文件

timestamp:时间戳

posted @   MaximeSHE  阅读(6)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
点击右上角即可分享
微信分享提示