Mysql
添加环境变量 - MYSQL_HOME
添加path %MYSQL_HOME%\bin
配置文件
[mysql]
default-character-set=utf8
| [mysql] |
| default-character-set=utf8 |
| |
| [mysqld] |
| character-set-server=utf8 |
| default-storage-engine=INNODB |
| sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION |
存放在根目录下 名称为 my.ini
初始化
cmd - 管理员模式
| mysqld --initialize-insecure |
注册mysql服务
启动mysql服务
| # 卸载mysql |
| net stop mysql |
| mysqld -remove mysql |
| 然后删除相关环境变量 |
修改默认账户密码
| mysqladmin -u root password 123 |
SQL 类型
DDL : 操作数据库,表
DML:对表中的数据进行增删改
DQL: 对表中的数据进行查询
DCL: 对数据库进行权限控制
数据库常用操作
查询数据库名称
创建数据库
创建的时候判断数据库是否存在
| create database if not exists db1; |
删除数据库
删除存在数据库
| drop database if exists db2; |
进入数据库
查看当前使用的数据库
查询表
查询表的字段
表的创建
| creat table 表名( |
| 字段名1 数据类型1, |
| 字段名2 数据类型2 |
| ); |
数据类型
MySQL 支持多种类型,可以分为三类:
-
数值
| tinyint : 小整数型,占一个字节 |
| int : 大整数类型,占四个字节 |
| eg : age int |
| double : 浮点类型 |
| 使用格式: 字段名 double(总长度,小数点后保留的位数) |
| eg : score double(5,2) |
-
日期
| date : 日期值。只包含年月日 |
| eg :birthday date : |
| datetime : 混合日期和时间值。包含年月日时分秒 |
-
字符串
| char : 定长字符串。 |
| 优点:存储性能高 |
| 缺点:浪费空间 |
| eg : name char(10) 如果存储的数据字符个数不足10个,也会占10个的空间 |
| varchar : 变长字符串。 |
| 优点:节约空间 |
| 缺点:存储性能底 |
| eg : name varchar(10) 如果存储的数据字符个数不足10个,那就数据字符个数是几就占几个的空间 |
案例-创建表
| create table student( |
| id int, |
| name varchar(10), |
| gender char(1), |
| birthday date, |
| score double(5,2), |
| email varchar(64), |
| tle varchar(15), |
| status tinyint |
| ); |
修改表
| alter table 表名 rename to 新表名; // 修改表名 |
| alter table 表名 add 列名 数据类型; //增加列 |
| alter table 表名 modify 列名 新的数据类型;//修改数据类型 |
| alter table 表名 change 列名 新列名 新数据类型;//修改列 |
| alter table 表名 drop 列名; // 删除列 |
| |
DML主要是对数据进行增(insert)删(delete)改(update)操作。
添加数据
| INSERT INTO 表名(列名1,列名2,…) VALUES(值1,值2,…); |
| INSERT INTO 表名 VALUES(值1,值2,…); |
| INSERT INTO 表名(列名1,列名2,…) VALUES(值1,值2,…),(值1,值2,…),(值1,值2,…)…; |
| INSERT INTO 表名 VALUES(值1,值2,…),(值1,值2,…),(值1,值2,…)…; |
修改数据
| update stu set sex = '女' where name = '张三'; |
| update stu set birthday = '1999-12-12', score = 99.99 where name = '张三'; |
删除数据
| delete from 表名 where 条件 //删除语句 |
| delete from stu where name = 张三 |
查询案例
| |
| drop table if exists stu; |
| |
| |
| |
| CREATE TABLE stu ( |
| id int, |
| name varchar(20), |
| age int, |
| sex varchar(5), |
| address varchar(100), |
| math double(5,2), |
| english double(5,2), |
| hire_date date |
| ); |
| |
| |
| INSERT INTO stu(id,NAME,age,sex,address,math,english,hire_date) |
| VALUES |
| (1,'马运',55,'男','杭州',66,78,'1995-09-01'), |
| (2,'马花疼',45,'女','深圳',98,87,'1998-09-01'), |
| (3,'马斯克',55,'男','香港',56,77,'1999-09-02'), |
| (4,'柳白',20,'女','湖南',76,65,'1997-09-05'), |
| (5,'柳青',20,'男','湖南',86,NULL,'1998-09-01'), |
| (6,'刘德花',57,'男','香港',99,99,'1998-09-01'), |
| (7,'张学右',22,'女','香港',99,99,'1998-09-01'), |
| (8,'德玛西亚',18,'男','南京',56,65,'1994-09-02'); |
查询数据——条件查询
| select 列名1,列名2 from 表名; |
| select DISTINCT 列 from 表; //去除重复数据 |
| select name as 名称 from 表; //用as 来 重命名展示的列名 |
| select * from stu where age>20; |
| selct * from stu where age>=20 and age<=30; |
| = select * from stu where age between 20 and 30; |
| select * from stu where hire_date between '1998-09-01' and '1999-09-01'; |
| select * from stu where age != 18; - '<>'也是不等于 |
| 或者 || = or |
| in (18,20,22) |
| select * from stu where age in (18,20,22) |
| null值不能用等于来比较。需要用is |
| select * from stu where age is not null; |
| |
| 通配符 : _ 表示单个任意字符 % 表示任意个字符 |
| select * from stu where name like '马%'; |
| select * from stu where name like '_花%'; |
查询数据——排序查询
| 排序方式: |
| ASC 升序排列 默认值 |
| DESC 降序排列 |
| select * from stu order by age asc; |
| select * from stu order by math desc, englisg asc; //数学成绩一样,英语成绩按照升序排列 |
| |
查询数据——分组查询
| 聚合函数 |
| cout(列名) 统计数量 |
| max() min() sum() avg() |
| select 聚合函数() from 表; |
| select count(id) from stu; |
| |
| SELECT 字段列表 FROM 表名 [WHERE 分组前条件限定] GROUP BY 分组字段名 [HAVING 分组后条件过滤]; |
| |
| SELECT sex, avg(math), count(*) from stu GROUP BY sex; |
| |
| select sex, avg(math), count(*) from stu where math > 70 group by sex; |
| |
| select sex, avg(math), count(*) from stu where math > 70 group by sex having count(*) > 2; |
| |
查询数据——分页查询
| SELECT 字段列表 FROM 表名 LIMIT 起始索引 , 查询条目数; |
| select * from stu limit 0,3; |
| |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 一个奇形怪状的面试题:Bean中的CHM要不要加volatile?
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)