MySQL基本信息
安装
参考各类视频,安装失败要卸载重装
卸载
参考各类视频,要删除一些隐藏文件才能卸载干净
配置
MySQL服务启动
- 手动。
- cmd—> services.msc 打开服务的窗口
使用管理员打开cmd
1
net start mysql : 启动mysql的服务
1
2
3
```bash
net stop mysql:关闭mysql服务
登陆
1 | mysql -u[user] -p[password] |
1 | mysql -h[IP] -u[user] -p[password] |
1 | mysql --host=[IP] --user=[user] --password=[password] |
输入密码时可以在-p / —password后回车输入密文
退出
1 exit
1 | quit |
MySQL目录结构
- MySQL安装目录:
- 配置文件 my.ini
- MySQL数据目录:datadir=”C:/ProgramData/MySQL/MySQL Server x.x/Data/“
- 概念
- 数据库:文件夹
- 表:文件
- 数据:数据
- 概念
SQL分类
以;
结尾,--
+space
或 #
为注释,或者/*``*/
多行注释,不区分大小写,建议关键字大写。这里使用小写便于记忆
DDL(Data Definition Language)
操作库
- Create
1 | create database [库名]; # 使用默认字符集创建数据库 |
- Retrieve
1
2show databases; # 显示所有数据库
show create database [库名]; # 显示创建该数据库的语句 - Update
1
alter database [库名] character set [字符集,如UTF8]; # 修改数据库字符集
- Delete
1
2drop database [库名]; # 删除数据库
drop database if exists [库名]; # 如果数据库存在,删除 - 使用数据库
1
2select database(); # 查询当前使用的数据库
use [库名]; # 使用数据库操作表://注释参照操作库的指令
- Create数据类型(可以自己搜索相关资料,这里整理一些常用的)
1
2
3
4
5
6create 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 等等
特别的,还有一个复制表的操作
1 create table [表名] like [被复制表名]; # 复制表
- Retrieve
1
2
3 show tables;
show create table [表名];
desc [表名]; # 查询表结构- Update
1
2
3
4
5
6 alter [表名] rename to [新表名]; # 重命名
alter table [表名] character set [字符集,如UTF8];
alter table [表名] add [列名] [数据类型]; # 增加一列
alter table [表名] change [列名] [新列名][新数据类型]; # 修改列名与类型
alter table [表名] modify [列名] [新数据类型]; # 修改某列数据类型
alter table [表名] drop [列名]; # 删除列- Delete
1
2 drop table [表名];
drop table if exists [表名];- 使用数据库
1
2 select database(); # 查询当前正在使用的数据库名称
use 数据库名称; # 使用数据库DML(Data Manipulation Language)
增
1
insert into [表名]([列名1], ... , [列名n]) values([值1], ... ,[值n]);
删
1
2delete from [表名] <where [条件]>; # <>为可选参数,若不加条件,逐条删除表中所有数据
truncate table [表名]; # 删除表,再创建一样的空表- 改
1
update [表名] set [列名1]=[值1] , ... <where [条件]>; # 修改符合条件的对应列名的值
DQL(Data Query Language)
语法1
select * from [表名]; # 查询表中所有数据
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15select <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)
待更新
导入导出*.sql
window下
1.导出整个数据库
mysqldump -u 用户名 -p 数据库名 > 导出的文件名
mysqldump -u root -p hotel > E:/hotel.sql
2.导出一个表
mysqldump -u 用户名 -p 数据库名 表名> 导出的文件名
mysqldump -u dbuser -p dbname users> dbname_users.sql
3.导出一个数据库结构
mysqldump -u dbuser -p -d —add-drop-table dbname >d:/dbname_db.sql
-d 没有数据 —add-drop-table 在每个create语句之前增加一个drop table
4.导入数据库
常用source 命令
进入mysql数据库控制台,如
mysql -u root -p
mysql>use 数据库
然后使用source命令,后面参数为脚本文件(如这里用到的.sql)
mysql>source d:/dbname.sql
1. 导入数据到数据库
mysql -uroot -D数据库名
1. 导入数据到数据库中得某个表
mysql -uroot -D数据库名 表名
例子
1 | create database if not exists demo character set utf8; |
1 | create database hotel character set utf8; |