学习Mysql快一个多月了,一直没有机会做一下总结(主要是懒!),今天就Mysql的一些基本的操作,做一下简单的回顾。本文的所有操作都是在DOS窗口上实现。
一、 启动和关闭Mysql服务
需要以管理员身份运行CMD
net start mysql
net stop mysql
二、登录和退出Mysql
mysql -u用户名 -p密码 -h服务器 -P端口号
\q 或 quit
其中用户名和密码,是安装Mysql时设置的管理员用户,密码可以输入也可以不输入,不输入会在回车确认的时候,提示输入密码。
127.0.0.1 是本地回环地址,指的就是本机的地址,也可以输入localhost,效果是一样的
3306是Mysql默认使用的端口号
三、设置Mysql默认字符集
首先找到Mysql安装目录下的my.ini配置文件,并打开
找到以下两个地方,并修改为utf8
default-character-set 指的是默认的编码方式
character-set-server 指的是在服务器上的编码方式
注意修改完之后,需要重新启动Mysql服务
but,注意but,我们虽然修改了Mysql客户端的默认编码方式为utf8,但是cmd窗口的编码方式是gdk,所以在cmd上插入中文记录时,会出现编码错误;
所以想要在cmd上插入中文记录,需要临时的在cmd中将客户端编码改为gbk
set character_set_results=gbk;
或者set names gbk;
四、SQL语句
1. 创建数据库
创建一个数据库
CREATE DATABASE 数据库名;
创建一个数据库,并指定字符集
CREATE DATABASE 数据库名 CHARACTER SET utf8;
2. 查看数据库
查看所有的数据库
SHOW DATABASES;
查看一个数据库
SHOW CREATE DATABASE 数据库名;
查看正在使用的数据库
SELECT DATABASE();
3. 删除数据库
DROP DATABASE 数据库名;
切换数据库
USE 数据库名;
4. 创建表
CREATE TABLE 表名(
字段名 字段类型(长度) 约束,
字段名 字段类型(长度) 约束,
字段名 字段类型(长度) 约束
);
5. 查看表
查看所有表
SHOW TABLES;
查看一张表的结构(两种方式)
SHOW COLUMNS FROM 表名;
或者
DESC 表名;
6. 删除表
DROP TABLE 表名;
7. 修改表
修改表名
RENAME TABLE 旧表名 TO 新表名;
修改表的字符集
ALTER TABLE 表名 CHARACTER SET 新字符集;
添加一个新的字段
ALTER TABLE 表名 ADD 字段名 字段类型(长度) 约束;
修改字段名称
ALTER TABLE 表名 CHANGE 旧字段名 新字段名 字段类型(长度) 约束;
修改字段的类型和约束
ALTER TABLE 表名 MODIFY 字段名 字段类型(长度) 约束;
8. 向表中插入记录
INSERT INTO 表名(字段名1,字段名2,...) VALUES(值1,值2,...);
注意事项:
- 前后两个括号里的内容是相对应的,一个值对应一个字段
- 插入的值,必须符合字段的类型和长度限制
- 表名后的括号可以不写,表示向这张表的所有字段插入值
- values中插入的值除了数值类型的,都要加上引号
9. 更新表中的记录
更新所有记录
UPDATE 表名 SET 字段名1=值1,字段名2=值2,...;
更新指定条件的记录
UPDATE 表名 SET 字段名=值 WHERE 条件;
10. 删除记录
删除所有记录
DELETE FROM 表名;
或者
TRUNCATE TABLE 表名;
delete 是将表中的数据一条一条的删除,如果表中有AUTO_INCREMENT约束,即自动编号,delete不会将它清零;
truncate 是将表直接删除,重新建表。
删除指定条件的记录
DELETE FROM 表名 WHERE 条件;
11. 查询指定表中的字段信息
查询所有字段
SELECT * FROM 表名;
查询指定字段
SELECT 字段名1,字段名2,... FROM 表名;
查询并去掉重复记录
SELECT DISTINCT 字段名 FROM 表名;
查询并设置别名
SELECT 字段名 AS 字段别名 FROM 表名 AS 表别名;
关键字as可以省略
查询并合并字段
SELECT (字段名1+字段名2) AS (别名) FROM 表名;
只能合并数值字段,所以也能进行字段和数值的合并
条件查询
SELECT 字段 FROM 表名 WHERE 条件;
- 逻辑条件:and(与)、or(或)、not(非)
- 比较条件:>、<、=、>=、<=、<=>(不等于)、between and(不大于并且不小于)
- 判空条件:判断是否为null或空字符串,is null、is not null、=""、<>""
- 模糊条件:like语句,**%表示任意个字符,_**表示一个字符
聚合查询
常用的聚合函数:sum()、avg()、min()、max()、count()
count()表示统计数量不含null数据,统计该表中所查询字段的总数是多少
SELECT COUNT(字段) FROM 表名;
分页查询
SELECT * FROM 表名 LIMIT (当前页-1)*每页显示多少条,每页显示多少条;
SELECT * FROM 表名 LIMIT 0,2;
表示当前页为第一页,显示2条记录。注意起始行是从0开始。
排序查询
SELECT * FROM 表名 ORDER BY 字段 ASC/DESC;
asc:按自然顺序(a-z),默认为顺序查询
desc:按自然倒序(z-a)
分组查询
SELECT * FROM 表名 GROUP BY 字段名;
分组查询并筛选
SELECT * FROM 表名 WHERE 条件 GROUP BY 字段名 HAVING 条件;
分组之前条件用where,分组之后条件用having