1、下载
下载地址:MySQL :: Download MySQL Community Server
下载版本 Windows (x86, 64-bit), ZIP Archive
2、安装
解压,配置创建 my.ini 配置文件,然后进入对应的bin目录执行
1)初始化数据库:.\mysqld.exe --initialize --console
执行完成后,会输出 root 用户的初始默认密码,切记
2)安装命令:.\mysqld.exe install
注:如果执行不了,记得换用有管理员权限的命令行,详见:解决 win10安装MySQL服务失败,Install/Remove of the Service Denied!_一名准程序员-CSDN博客
3)启动服务:net start mysql
4)登陆: .\mysql.exe -h localhost -u root -p,登陆本机可不加-h参数
安装过程:
a.找不到ddl则安装下微软VC++2015版运行库(Microsoft Visual C++ 2015 Redistributable Package),详见https://blog.csdn.net/weixin_42089175/article/details/97294831
b.如果忘记记密码,则重置密码,方法:
b1)关闭服务:net stop mysql
b2)编写mysqlc.txt文件,内容:
ALTER USER 'root'@'localhost' IDENTIFIED BY 123456
(
注:命令行修改密码命令为(多了单引号):
alter user 'root'@'localhost' identified with mysql_native_password by '123456';
)
b3)命令行方式启动服务器,启动后即将密码改成123456:
.\mysqld.exe --init-file=Q:\MySQL\mysql-8.0.16-winx64\mysqlc.txt --console
b4)执行完b3命令,然后关掉,再用net start mysql启动服务,再用12345密码登陆即可
详见https://blog.csdn.net/csh1807266489/article/details/94477928
3、使用
登陆后执行指令。
1)切换数据库: use 数据库名;
2)字段类型
DATETIME 包含日期与时间
DATE 只有日期
TIME 只有时间
YEAR 只有年
3)创建数据库表:
CREATE TABLE IF NOT EXISTS `runoob_tbl`( `runoob_id` INT UNSIGNED AUTO_INCREMENT, `runoob_title` VARCHAR(100) NOT NULL, `runoob_author` VARCHAR(40) NOT NULL, `submission_date` DATE, PRIMARY KEY ( `runoob_id` ) )ENGINE=InnoDB DEFAULT CHARSET=utf8;
4)查询
- 你可以使用 LIMIT 属性来设定返回的记录数。
- 你可以通过OFFSET指定SELECT语句开始查询的数据偏移量。默认情况下偏移量为0。
5)<>, != 比较不等用这两个
6)UNION 只会选取不同的值。请使用 UNION ALL 来选取重复的值!
7)排序
SELECT field1, field2,...fieldN FROM table_name1, table_name2... ORDER BY field1 [ASC [DESC][默认 ASC]], [field2...] [ASC [DESC][默认 ASC]]
8)WITH ROLLUP 可以实现在分组统计数据基础上再进行相同的统计(SUM,AVG,COUNT…)。
mysql> SELECT name, SUM(signin) as signin_count FROM employee_tbl GROUP BY name WITH ROLLUP; +--------+--------------+ | name | signin_count | +--------+--------------+ | 小丽 | 2 | | 小明 | 7 | | 小王 | 7 | | NULL | 16 | +--------+--------------+
9)字段空值赋默认值,c为可选参数:
coalesce(a,b,c) 如果a==null,则选择b;如果b==null,则选择c;如果a!=null,则选择a;如果a b c 都为null ,则返回为null(没意义)。
10)连接
- INNER JOIN(内连接,或等值连接):获取两个表中字段匹配关系的记录。
- LEFT JOIN(左连接):获取左表所有记录,即使右表没有对应匹配的记录。
- RIGHT JOIN(右连接): 与 LEFT JOIN 相反,用于获取右表所有记录,即使左表没有对应匹配的记录。
11)null值
- IS NULL: 当列的值是 NULL,此运算符返回 true。
- IS NOT NULL: 当列的值不为 NULL, 运算符返回 true。
- <=>: 比较操作符(不同于 = 运算符),当比较的的两个值相等或者都为 NULL 时返回 true。
- ifnull(columnName2,0) 把 columnName2 中 null 值转为 0
12)
ROLLBACK 回滚的用法可以设置保留点 SAVEPOINT,执行多条操作时,回滚到想要的那条语句之前。
使用 SAVEPOINT
SAVEPOINT savepoint_name; // 声明一个 savepoint ROLLBACK TO savepoint_name; // 回滚到savepoint
保留点再事务处理完成(执行一条 ROLLBACK 或 COMMIT)后自动释放。
MySQL5 以来,可以用:
RELEASE SAVEPOINT savepoint_name;
13)修改表
删字段:ALTER TABLE testalter_tbl DROP i;
加字段:ALTER TABLE testalter_tbl ADD i INT;
指定新增字段的位置可用first或after:
ALTER TABLE testalter_tbl ADD i INT FIRST;
ALTER TABLE testalter_tbl ADD i INT AFTER c;
改字段:ALTER TABLE testalter_tbl MODIFY c CHAR(10);
改字段2:ALTER TABLE testalter_tbl CHANGE i j BIGINT;//在 CHANGE 关键字之后,紧跟着的是你要修改的字段名,然后指定新字段名及类型。
指定字段 j 为 NOT NULL 且默认值为100:
ALTER TABLE testalter_tbl MODIFY j BIGINT NOT NULL DEFAULT 100;
修改字段的默认值:
ALTER TABLE testalter_tbl ALTER i SET DEFAULT 1000;
ALTER 命令及 DROP子句来删除字段的默认值,如下实例:
ALTER TABLE testalter_tbl ALTER i DROP DEFAULT;
修改数据表的名称:
ALTER TABLE testalter_tbl RENAME TO alter_tbl;
查看数据表类型可以使用 SHOW TABLE STATUS
修改存储引擎:修改为myisam
alter table tableName engine=myisam;
删除外键约束:keyName是外键别名
alter table tableName drop foreign key keyName;
其它懒得抄了,见:MySQL 索引 | 菜鸟教程