MySQL的卸载与安装问题
卸载步骤
- 关闭服务: 【计算】–>右键–>【管理】–>【服务】–>【mysql的服务】–>【停止】
- 软件卸载
- 清理残余文件,安装和数据目录,C:\ProgramData\MySQL
- 重启计算机
- (选做)清理注册表、服务、环境变量
安装步骤
.
- 某些电脑会需要C++环境,联网点击execute或手动安装即可。
- 安装失败,再安装可能出错。可以参考卸载部分的2,3步骤。
DDL操作
- 创建数据库 create database 数据库名 [character set 字符集][collate 校对规则] 注: []意思是可选的意思
- 查看所有的数据库 show databases;
- 查看数据库的定义结构 show create database 数据库名;
- 删除数据库 drop database 数据库名;
- 修改数据库 alter database 数据库名 character set 字符集;注意 是utf8,不是utf-8
- 选定数据库 use 数据库名;
- 创建表 create table 表名(
列名 类型 [约束],
列名 类型 [约束]
…
); - 查看所有的表 show tables;
- 查看表的定义结构 desc student;
- 修改列的类型约束:
alter table 表名 modify 字段 类型 约束 ;
- 修改列的名称,类型,约束:
alter table 表名 change 旧列 新列 类型 约束;
- 删除一列:
alter table 表名 drop 列名;
- 修改表名 :
rename table 旧表名 to 新表名;
- 删除表 drop table 表名;
DML操作
- 插入 insert into 表名(列,列…) values(值,值…);
- 更新记录 update 表名 set 列 =值, 列 =值 [where 条件]
- 删除记录 delete from 表名 [where 条件] 注意: 删除数据用delete,不用truncate
- truncate 把表直接DROP掉,然后再创建一个同样的新表。删除的数据不能找回。执行速度比DELETE快
- 约束 PRIMARY KEY、AUTO_INCREMENT、NOT NULL、UNIQUE
- 删除约束 ALTER TABLE persons DROP PRIMARY KEY
DQL操作
- 查询 select 要查询的字段名 from 表名 [where 条件]
- 去重 distinct
- 模糊查询和正则匹配
like ‘xxx’ 模糊查询是处理字符串的时候进行部分匹配
如果想要表示0~n个字符,用%
如果想要表示确定的1个字符,用_
regexp ‘正则’ - 单列排序 SELECT 字段名 FROM 表名 [WHERE 条件] ORDER BY 字段名 [ASC|DESC]; //ASC: 升序,默认值; DESC: 降序
- 组合排序 SELECT 字段名 FROM 表名 WHERE 字段=值 ORDER BY 字段名1 [ASC|DESC], 字段名2 [ASC|DESC];
- 分组查询 SELECT 字段1,字段2… FROM 表名 [where 条件] GROUP BY 列 [HAVING 条件];
- where和having的区别 |
- where 子句
- 对查询结果进行分组前,将不符合where条件的行去掉,即在分组之前过滤数据,即先过滤再分组。
- where后面不可以使用聚合函数
having字句
- having 子句的作用是筛选满足条件的组,即在分组之后过滤数据,即先分组再过滤。
- having后面可以使用聚合函数 |
分页查询 select … from … limit a ,b
- 外键约束
1. create table [数据名.]从表名(
字段名1 数据类型 primary key ,
字段名2 数据类型 ,
…,
[constraint 外键约束名] foreign key (从表字段) references 主表名(主表字段) [on update 外键约束等级][on delete 外键约束等级]
#外键只能在所有字段列表后面单独指定
#如果要自己命名外键约束名,建议 主表名_从表名_关联字段名_fk
);
2. alter table 从表名称 add [constraint 外键约束名] foreign key (从表字段名) references 主表名(主表被参照字段名) [on update xx][on delete xx];
隐式内连接查询 select [字段,字段,字段] from a,b where 连接条件 (b表里面的外键 = a表里面的主键 )
显示内连接查询 select [字段,字段,字段] from a [inner] join b on 连接条件 [ where 其它条件]
左外连接查询 select 字段 from a left [outer] join b on 条件
右外连接查询 select 字段 from a right [outer] join b on 条件
union 查询语句1 union 查询语句2 union 查询语句3 …
子查询 子查询作为另一个查询的条件,子查询作为另一个表
DCL语句
创建用户 CREATE USER ‘用户名’@‘主机名’ IDENTIFIED BY ‘密码’;
授权用户 GRANT CREATE,ALTER,DROP,INSERT,UPDATE,DELETE,SELECT ON test.* TO ‘user1’@‘localhost’;
撤销授权 REVOKE 权限1, 权限2… ON 数据库.表名 FROM ‘用户名’@‘主机名’;
** 查看权限** SHOW GRANTS FOR ‘用户名’@‘主机名’;
删除用户 DROP USER ‘用户名’@‘主机名’;
修改管理员密码 mysqladmin -uroot -p password 新密码 -- 新密码不需要加上引号
set password for ‘用户名’@‘主机名’ = password(‘新密码’);