连接MqSQL

image.png
mysql -h 主机IP -P 端口 -u 用户名 -p密码

(1)-p密码不要有空格

(2)如果没有写 -h 主机,默认本机

(3)如果没有写 -P 端口,默认3306

查询数据库

指定数据库采用的字符集,默认 utf8

character set 字符集

指定数据库字符集的校对规则

collate 校对规则

默认 utf8_general_ci (不区分大小写)utf8_bin(区分大小写)

创建数据库

create database 数据库名

创建数据库 使用utf8字符集,并带有校对规则为区分大小写

eg.CREATE DATABASE xy_db03 CHARACTER SET utf8 COLLATE utf8_bin;

删除数据库

drop database 数据库名

显示数据库

show databases;

显示数据库的创建语句

show create database 数据库名;

备份恢复数据库

备份数据库(DOS界面)

mysqldump -u root -p -B 数据库1 数据库2 > 路径名 \文件名.sql

eg.mysqldump -u root -p -B xy_db01 xy_db02 xy_db03 > D:\桌面\QQClientTest\Mysql.sql

恢复数据库 (MySQL命令行执行)

source 路径名(不要中文)\文件名.sql

备份数据库的表(DOS界面)

mysqldump -u root -p密码 数据库 表1 表2 > 路径名(不要中文) \文件名.sql

表的增删查改

创建表

create table 表名

(

​ field1 datatype,

​ field2 datatype,

​ field3 datatype,

)charater 字符集 collate 校对规则 engine 存储引擎;

eg.

mysql> CREATE TABLE user(
id INT,
name VARCHAR(255),
passwd VARCHAR(255),
birthday DATE
)CHARACTER SET utf8 COLLATE utf8_bin ENGINE innodb;

删除表

drop table 表名;

添加列

alter table 表名 add 列名 数据类型;

修改列名

alter table 表名 change column 原名 新名 数据类型;

修改列数据类型

alter table 表名 modify 列名 数据类型;

删除列

alter table 表名 drop 列名;

修改字符集

alter table 表名 character set 字符集;

修改表名

rename table 表名 to 新表名;

查看表结构

desc table_name;

查询表

select * from 表名;

数据库的增删查改(CRUD)

插入insert 语句

insert into 表名(column1,column2....)

​ VALUES(值1,值2...),(值1,值2...);

更新update语句

update 表名 set [列名1 = 值1,列名2 = 值2...] [where 条件] 注:没有where条件默认全部设置

删除delete语句

delete from 表名 [where 条件];

注:没有where条件默认全部设置

查询select语句

基本语句

select [distinct] * | {column1,column2...} from 表名;

注: | 表示或则,distinct 去重复 ,* 表示所有列,也可以指定 column1,column2...

使用as别名

select 列 as 别名 from 表名;

查询并运算

select * | {column1,column2...},(运算式) from 表名;
image.png
条件-where
image.png

排序-order by

select * from 表名 [where 条件] order by 列名 asc|desc;

默认升序asc
降序desc

合计/统计函数count/sum/avg/max/min

函数-count

select count(*)|count(列名) from 表名 [where 条件];

返回行的总数

函数-sum

select sum(列名1),sum(列名2)... from 表名 [where 条件];

返回满足where条件的列的和

函数-avg

select avg(列名1),avg(列名2)... from 表名 [where 条件];

返回满足where条件的列平均值

函数-max/min

select max(列名1), max(列名2)... from 表名 [where 条件];

返回满足条件的最大/最小值

分组-group by

select 列名1,列名2... from 表名 group by 列名 having 条件 注:不可以使用where

group by 对列进行分组

having 对分组后的结果进行过滤