一、MySQL软件篇
1、官网下载最新版MySQL;
2、配置MySQL环境变量,可参考下面这篇文章:https://jingyan.baidu.com/article/c1a3101e72fc9bde656debf7.html;
3、安装指令
* mysqld --initialize --console 初始化数据库(注意保存初始密码)
* mysqld --install MySQL 注册命令
* net start mysql 启动服务器
* net stop mysql 关闭服务器
* mysql -uroot -p 登陆自己机器的MySQL数据库
* 改密码操作
方式1:
a、select 1; 注意打上分号
b、alter user user() identified by '新密码';
c、select 1;
方式2: alter user root@localhost identified with mysql_native_password by '123';
4、exit; 退出MySQL服务器
5、mysqld –remove 删除mysql服务
6、查看使用端口号: show global variables like 'port'; //在mysql内部使用
7、重置密码:参考文章https://blog.youkuaiyun.com/gupao123456/article/details/80766154
二、数据库
1、创建数据库
* create database 数据库名;
* create database 数据库名 character set '字符集'(如utf8) collate '校验规则';
* create database 数据库名 character set '字符集'(如gbk); (采用默认校验规则)
2、查询数据库
* show databases; 查询所有数据库
* select database(); 查询正在使用的数据库
* show create database 数据库名; 查询创建的数据库的定义信息
* show tables; 查询当前数据库包含的所有表
3、修改数据库
*修改数据库名称:官方无直接修改数据库名称的方法,相对麻烦一些,可自行百度,这里提供一种方法:
备份数据库:
命令行模式输入:mysqldump -u root -p 需备份数据库 >备份文件名.sql
恢复数据库:
a、创建空数据库:create database newDatabase;
b、使用新数据库:use newDatabase;
c、还原数据库:source 备份文件名.sql;
删除原数据库及备份文件;
这样newDatabase就是我们重命名的数据库了
*修改数据库:alter database 数据库名 character set '字符集' collate '校验规则';
4、删除数据库
drop database 数据库名;
5、切换数据库
use 数据库名。
三、表
1、创建表
create table 表名(
字段1 类型(长度) 约束,
字段2 类型(长度) 约束,
……
字段n 类型(长度) 约束
);
注意:
* 表名小括号,后面要有分号。
* 每一行字段后面要有逗号,但是最后一行没有逗号。
* 数据的类型后面有长度,如果是字符串类型,长度必须写明,其他类型可以不加。int 默认长度为11。
字段类型
*字符串型:char和varchar:char长度不可变,varchar长度可变;
*数值型:tinyint,shortint,int,bigint,float,double;
*逻辑型(对应boolean):bit;
*日期型:data,time,datatime,timestamp(若不传入数据,默认选择当前系统时间)
*文本型:blob(二进制文件),text(字符);
约束(单表):
*主键约束: primary key , 声明主键,默认非空唯一;
可采用auto_increment 维护主键,自动增长
*唯一约束: unique key, 值唯一;
*非空约束 not null, 值不能为空;
2、查询表
* desc 表名; 查询表结构
* show create table 表名; 查询建表语句、存储引擎和字符集
3、修改表
* rename table 表名 to 新表名; 修改表名
* alter table 表名 rename 新表名; 修改表名
* alter table 表名 character set '字符集'; 修改字符集
* alter table 表名 add 字段 类型(长度) 约束; 增加字段
* alter table 表名 drop 字段; 删除字段
* alter table 表名 modify 字段 类型(长度) 约束; 修改字段类型或约束
* alter table 表名 change 旧字段 新字段 类型(长度)约束 修改字段名称
* alter table 表名 engine ='新存储引擎' 更改表的存储引擎
4、删除表
* drop table 表名;
* alter table 表名 drop foreign key 外键别名; 删除表的外键约束;
四、数据
1、添加数据
* insert into table 表名(字段1,字段2……)values(值1,值2,……);
* insert into table 表名 values(值1,值2,……);
* insert into table 表1 (字段1,字段2) select (字段1,字段2) from 表2;
注:表2中字段名可与表1不同,但数据类型必须相同。
注意:
* 数据与字段的类型相同;
* 字段长度需要控制;
* 字符串或者日期类型需要使用'';
* 采用第二种方式时,主键设为auto_increment时,主键值可设为null或此时index值;
2、修改数据
* update 表名 set 字段1=值1,字段2=值2; 修改该字段所有值
* update 表名 set 字段1=值1 where 字段2(或主键)='值2'; 修改满足条件的字段
3、删除数据
* delete from 表名; 清除表中所有数据(一条一条删),支持事务,推荐使用;
* delete from 表名 where 字段1=值1; 清除满足条件的字段
* truncate 表名; 先删除整个表,再创建一个空表(效率高),不支持事务,删除数据无法恢复;
4、查询数据
* select * from 表名; 查询表中所有字段
* select 字段1,字段2 from 表名; 查询指定字段
* select distinct 字段名 from 表名; 过滤重复的数据
* order by 字段名 asc/desc 数据排序
按字段名进行升序(默认的)/降序,出现在select语句末尾。
* 查询的列可以运算;
* 可以使用别名:使用as 别名 ;并且as可以省略;
如求语数英总分:select (chinese+math+english) as sum from stu;
* 使用where条件进行过滤:
a、算术符号< ,>, <= , >= , = ,<>(不等于);
b、in(范围内取内容);
c、is null; 判断是否为空
d、and ,or,not;
e、like 模糊查询;
如like 李_或李%,'_'和'%'均表示占位符,区别是'_'表示只占一位,'%'可表示占多位;
如like 李_; 表示李X;
如like 李%; 表示李Xxx;
如like %李%; 表示含李即可;
* 聚集函数
count 统计数量,sum 求和,avg 均值,max 最大值,min 最小值;
* 分组归类
group by 字段; 此处过滤用having ,不能使用where;
* ifnull(字段名,0) 如果字段为空,则取值为0。
* select 语句顺序:
select ...from...where...group by...having...order by...
五、添加外键
1、创建时添加,如:
create table c_s(
cid int,
foreign key(cid) references class(cid)
);
2、创建后修改
将创建表中已存在的主键设为外键
alter table 表名 add foreign key 表名(关键字) references 关联的表(关键字);