MySQL基本信息
安装
参考各类视频,安装失败要卸载重装
卸载
参考各类视频,要删除一些隐藏文件才能卸载干净
配置
-
MySQL服务启动
-
手动。
-
cmd–> services.msc 打开服务的窗口
-
使用管理员打开cmd
net start mysql : 启动mysql的服务
net stop mysql:关闭mysql服务
-
登陆
mysql -u[user] -p[password]
mysql -h[IP] -u[user] -p[password]
mysql --host=[IP] --user=[user] --password=[password]
输入密码时可以在-p / --password后回车输入密文
退出
exit
quit
MySQL目录结构
- MySQL安装目录:
- 配置文件 my.ini
- MySQL数据目录:datadir=“C:/ProgramData/MySQL/MySQL Server x.x/Data/”
- 概念
- 数据库:文件夹
- 表:文件
- 数据:数据
- 概念
SQL分类
以;
结尾,--
+space
或 #
为注释,或者/*``*/
多行注释,不区分大小写,建议关键字大写。这里使用小写便于记忆
DDL(Data Definition Language)
操作库
- Create
create database [库名]; # 使用默认字符集创建数据库
create database [库名] character set [字符集,如UTF8]; # 指定字符集创建数据库
create database if not exists [库名] character set [字符集,如UTF8]; # 判断数据库是否存在并创建
- Retrieve
show databases; # 显示所有数据库
show create database [库名]; # 显示创建该数据库的语句
- Update
alter database [库名] character set [字符集,如UTF8]; # 修改数据库字符集
- Delete
drop database [库名]; # 删除数据库
drop database if exists [库名]; # 如果数据库存在,删除
- 使用数据库
select database(); # 查询当前使用的数据库
use [库名]; # 使用数据库
操作表://注释参照操作库的指令
- Create
create table [表名](
[列名1] [数据类型1],
[列名2] [数据类型2],
...
[列名n] [数据类型n]
);
数据类型(可以自己搜索相关资料,这里整理一些常用的)
- int # 整型
- double # 也有float
- score double(5,2) # 5位数,小数点后保留2位
- date # 日期 只包含年月日 yyyy-MM-dd
- datatime # 日期 包含年月日时分秒 yyyy-MM-dd HH:mm:ss
- timestamp # 时间戳类型 同datatime ,如果将来不给这个字段赋值,则自动使用当前系统时间
- varchar # 字符串类型
- name varchar(20) # 最大20个字符
类似的,可以使用与创建库相似的命令,比如指定字符集,if not exists 等等
特别的,还有一个复制表的操作
create table [表名] like [被复制表名]; # 复制表
- Retrieve
show tables;
show create table [表名];
desc [表名]; # 查询表结构
- Update
alter [表名] rename to [新表名]; # 重命名
alter table [表名] character set [字符集,如UTF8];
alter table [表名] add [列名] [数据类型]; # 增加一列
alter table [表名] change [列名] [新列名][新数据类型]; # 修改列名与类型
alter table [表名] modify [列名] [新数据类型]; # 修改某列数据类型
alter table [表名] drop [列名]; # 删除列
- Delete
drop table [表名];
drop table if exists [表名];
- 使用数据库
select database(); # 查询当前正在使用的数据库名称
use 数据库名称; # 使用数据库
DML(Data Manipulation Language)
- 增
insert into [表名]([列名1], ... , [列名n]) values([值1], ... ,[值n]);
- 删
delete from [表名] <where [条件]>; # <>为可选参数,若不加条件,逐条删除表中所有数据
truncate table [表名]; # 删除表,再创建一样的空表
- 改
update [表名] set [列名1]=[值1] , ... <where [条件]>; # 修改符合条件的对应列名的值
DQL(Data Query Language)
语法
select * from [表名]; # 查询表中所有数据
select <distinct>
[字段列表]
from
[表名列表]
<where>
[条件列表]
<group by>
[分组字段]
<having>
[分组后的条件]
<order by>
[排序方式]
<limit>
[分页限定]
; # 列表按逗号分隔,表名列表中查询符合条件的字段列表并按照分组字段分好组,按照排序方式及分页条件分组后的条件输出
-
基础查询
- 多个字段的查询
select 字段名1,字段名2… from 表名;- 注意:
- 如果查询所有字段,则可以使用*来替代字段列表。
- 注意:
- 去除重复:
- distinct
- 计算列
- 一般可以使用四则运算计算一些列的值。(一般只会进行数值型的计算)
- ifnull(表达式1,表达式2):null参与的运算,计算结果都为null
- 表达式1:哪个字段需要判断是否为null
- 如果该字段为null后的替换值。
- 起别名:
- as:as也可以省略
- 多个字段的查询
-
条件查询
- where子句后跟条件
- 运算符
- > 、< 、<= 、>= 、= 、<>
- BETWEEN…AND
- IN( 集合)
- LIKE:模糊查询
- 占位符:
- _:单个任意字符
- %:多个任意字符
- IS NULL
- and 或 &&
- or 或 ||
- not 或 !
DCL(Data Control Language)
待更新
例子
create database if not exists demo character set utf8;
use demo;
create table user(id int,name varchar(20),gender varchar(1));
insert into user(id,name,gender) values(01,'张三','男');
insert into user(id,name,gender) values(02,'李四','女');
delete from user where id=2;
update user set name='王五',gender='男' where id=1;
insert into user(id,name,gender) values(02,'李四','女');
insert into user(id,name,gender) values(03,'张三','男');
select id,name from user;
select * from user where name like '张%';