说明:以下使用方法在系统命令行中的使用,登录数据库后的操作也可在数据库管理图形界面的新建查询中操作。
如在navicat中
MySQL的使用
1. 登录数据库
mysql -h服务器地址 -u用户名 -p(回车+密码)
也可直接-p密码
C:\Users\11371>mysql -hlocalhost -uroot -p
Enter password: **********
C:\Users\11371>mysql -hlocalhost -uroot -pyourpassword
2. 退出数据库
exit
3. 数据库的备份和恢复
- 备份
exit数据库后,输入
mysqldump -h服务地地址 -u用户名 -p(密码回车后写) 数据库名 > 数据备份路径
- 恢复
即新建一个数据库时,导入数据到该数据库
mysql -u用户名 -p(密码回车后写) 新数据库名 < 数据路径
创建新的数据库:
将数据恢复到新数据库中:
查看恢复后的数据库:
数据库操作DDL
* 快速查找:
说明 | 操作 |
---|---|
创建数据库 1* | create database 数据库名称; |
删除数据库 | drop database 数据库名称; |
查看当前用户所有数据库 | show databases; |
使用/切换数据库 2* | use 数据库名称; |
查看当前使用的数据库 3* | select database(); |
查看数据库的编码 | show create database 数据库名称; |
修改数据库的编码 | alter database 数据库名称 character set 编码形式; |
修改数据库名称 | 如下4* |
1. 创建数据库
//方式1 服务器默认编码
create database 数据库名称;
//方式2 自定义编码
create database 数据库名称 character set 编码形式; //编码形式如:utf8;gbk
2. 使用、切换数据库
use 数据库名称;
3. 查看当前使用的数据库
select database();
4. 修改数据库名称
暴力方法:首先退出MySQL,然后到数据存储位置data目录下直接找到文件夹进行修改,再重新登录MySQL。
rename database 旧的数据库名称 to 新的数据库名称;(5.2?后版本不可用)
数据表操作DDL
* 快速查找
说明 | 操作 |
---|---|
新建表 1* | create table 表名称(字段1 数据类型 ...); |
删除表 | drop table 表名; |
修改数据表名称 2* | rename table 旧数据表名 to 新数据表名; |
查看所有数据表 | show tables; |
查看数据表结构 3* | desc 数据表名; |
查看数据表的编码 | show create table 数据表名; |
修改数据表的编码 | alter table 数据表名 character set 编码形式; |
修改数据表的结构 4*:
说明 | 操作 |
---|---|
增加列 | alter table 数据表名 add 字段名称 字段类型; |
删除列 | alter table 数据表名 drop字段名称 |
修改字段类型、长度、主键、非空约束 | alter table 数据表名 modify 字段名称 新类型(新的长度); |
删除主键约束 | alter table 数据表名 drop primary key |
删除唯一约束 | alter table 数据表名 drop index 字段名称 |
修改列名 | alter table 数据表名 change 旧的列名 新的列名 类型(长度); |
1. 新建表
create table 表名称(
字段1 数据类型,
字段2 数据类型,
字段3 数据类型,
...
)
常用的数据类型如:int,varchar(size),double, data,datatime等。
主键约束(只可设置一次,且修改主键字段时无需添加) primary key
唯一约束 unique
非空约束
自动增长 auto_increment
2. 修改数据表名称
rename table 旧数据表名 to 新数据表名;
3. 查看数据表结构
desc 数据表名;
4. 修改数据表结构
- 增加列,添加一个字段
alter table 数据表名 add 字段名称 字段类型;
- 修改字段类型、长度、约束
alter table 数据表名 modify 字段名称 新的字段类型(新的长度);
修改字段长度:
修改字段为主键:
修改主键字段为自动增长:
- 删除主键约束
alter table 数据表名 drop primary key
说明:自动增长的主键需先修改掉自动增长后,再删除主键,否则报错。
- 删除唯一约束
alter table 数据表名 drop index 字段名称
- 修改列名
alter table 数据表名 change 旧的列名 新的列名 类型(长度);
- 删除列
alter table 数据表名 drop字段名称
数据操作语言DML
插入数据(增insert into)
说明 | sql语句 |
---|---|
插入一条完整数据 | insert into 表名 values (值1, 值2, ... ); |
插入部分数据 | insert into 表名(字段名1, 字段名2, ...) values (值1, 值2, ... ); |
说明:插入值为中文时,需要考虑编码问题,若控制台和服务器编码不同时会报错,这时可修改服务器编码形式:到mysql安装目录下,找到配置文件my.ini(我的位置是:C:\ProgramData\MySQL\MySQL Server 8.0文件夹下)修改保存,然后重启服务(计算机管理里的服务mysql),注意不可改错,修改前注意备份。
1. 插入一条完整数据
insert into 表名 values (值1, 值2, ... );
2. 插入部分数据
insert into 表名(字段名1, 字段名2, ...) values (值1, 值2, ... );
删除数据(删delete from)
delete from 表名 where 条件
查找数据(查select from)
说明 | 操作 |
---|---|
查询表所有数据 | select * from 表名 |
按条件查询 | select 列名,列名 from 表名 where 条件 ) |
order by 排序 3* | select 列名 from 表名 order by 列名 asc(升序) | desc(降序) |
group by 分组 4* | select 列名 from 表名 where 条件 group by (列名) |
别名 5* | select 列名 as 别名, 列名 as 别名 from 表名 |
返回唯一值 | SELECT DISTINCT 列名称 FROM 表名称 |
说明 | 操作 |
---|---|
where 条件 1* - 关系运算符 | =, <>, >, <, >=, <= ; 为空/不为空:is null / is not null |
- 逻辑运算 | and, or, not, between … and …, in |
- 模糊查询 | like |
函数 2* - 返回表中记录数 | count(列名) |
- 求和 | sum(列名) |
- 平均值 | avg(列名) |
- 最大、最小值 | max(列名), min(列名) |
说明: 更多sql语句参考SQL教程
1. where 条件
- 关系运算符:=, <>, >, <, >=, <=
- 逻辑运算:and, or, not, between … and …, in
and:
上面也可用between 小值 and 大值。
or:
上面也可用in
- 模糊查询:like
列名 like “xx%”
%为通配符
知道长度的模糊查询:
列名 like “xx__”
“_”占位符,一个下划线代表一个长度的字符
2. 函数
- count() 返回指定条件的行数
count(*);
返回表中记录数
count(列名);
返回指定列的值的数目(NULL 不计入)
count(distinct 列名);
返回指定列的不同值的数目
给查询结果加上别名:
- sum() 返回数值列的总数
sum(列名);
- avg() 返回数值列的平均值
avg(列名);
其中的NULL 值不包括在计算中
- max(), min() 返回一列中的最大值、最小值
max(列名); min(列名);
其中的NULL 值不包括在计算中。
max 和 min 也可用于文本列,获得按字母顺序排列的最高或最低值。
3. 查询结果排序 order by
select 列名 from 表名 order by 列名 asc(升序) | desc(降序)
4. 查询结果分组 group by
一般sum()函数需要添加 group by语句
统计每个年龄的总薪资:
比如查找每个客户的总订单金额时 group by实例
5. 别名 as
select 列名 as 别名, 列名 as 别名 from 表名
更新数据(改update 表名 set)
update 表名 set 字段名 = 值 where 条件
der