1 .MySQL安装
第一步:下载MySQL的zip文件下载链接在这to=https%3A%2F%2Fdev.mysqk.com%2Fdownloads%2Fmysql%2F5.7.html
第二步:搞环境变量(点击“我的电脑”–右键点击“属性”–点击“高级系统设置”—点击系统变量path,点“编辑”,然后添加MySQL所在目录地址)
第三步:在MySQL文件里新建一个名为“my”的ini文件,并输入以下代码
第四步:cmd以管理员身份打开(cmd打开是一片漆黑的界面,最上面有一些字)
第五步:切换目录到MySQL文件的bin下面(第一行写MySQL所在盘的名称+:然后回车,如D:;回车后第二行 cd+空格+MySQL下bin文件的地址,然后回车)
第六步:输入以下几行代码
mysqld -install 安装MySQL,输入后回车,会显示安装成功,然后输入第二行代码
mysqld --initialize-insecure --user=mysql 这个指令的意思是初始化数据文件,输入后回车,然后输入第三行代码
net start mysql 这个是启动MySQL的意思,等待一下,会显示“正在启动,启动成功”这种话,然后回车输入第四行代码
mysql -u root -p 这个是进入管理界面的意思,输入后回车,会弹出“输入密码”的英文字样,不用管这个,等一会又会出现一大段英文字,不用管,回车后输入第五行代码
update mysql.user set authentication_string=password('123456') where user='root' and Host = 'localhost'; 这是设置密码为123456的意思,你也可以改成其他的,然后回车输入第六行代码
flush privileges; 这个就是刷新权限的意思,回车后会显示一些英语,以防万一,看看搞好没还可以输入以下代码进入MySQL
exit 这个是退出的意思
net stop mysql 这个是关闭MySQL
net start mysql 这个是启动MySQL
这三行的作用就是要重启MySQL,然后输入下面的代码进入管理界面,输入密码就可以了,说明已经安好了。
mysql -u root -p
第七步:把第三步的文件里输入的最后一行删掉或者在最后一行开头填一个#(把最后一行做注释的意思)
这就是安装MySQL的过程,挺复杂的
最后补充,如果输入代码时出现问题,就输入这个代码,全部重新来过
sc delete mysql
如果这个指令不管用,那就在环境变量那里添加以下三个东西
%SystemRoot%\system32
%SystemRoot%
%SystemRoot%\System32/Wbem
2.安装sqlyog
这个就按照软件步骤来安装就好了,
安装好之后,进行如下操作
3.连接数据库
安装好sqlyog后就可以创建数据库,做表格等等,然后最后这些数据都可以在cmd中看到,cmd以管理员身份打开,输入以下代码就可以看到自己用sqlyog做的表格等等东西
mysql -u root -p123456 --连接数据库
update mysql.user set authentication_string=password('123456') where user='root' and Host = 'localhost'; ---修改用户密码
flush privileges; --刷新权限
show databases; --查看所有数据库
use school --切换数据库:use 数据库名 显示Database changed即切换成功
show tables; --查看数据库中的所有表
describe student; --显示数据库中表的信息:describe 表名
create database westos; --创建一个数据库westos
exit; --退出连接
像这样
4.数据库的一些干货知识
作者:Ping开源
链接:https://www.jianshu.com/p/ce9e583398ce
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
数据库的列类型
1)数值
①tinyint 十分小的数据 1个字符
②smallint 较小的数据 2个字节
③mediumint 中等大小的数据 3个字节
④int 标准的整数 4个字节 常用的int
⑤bigint 较大的数据 8个字节
⑥float 浮点数 4个字节
⑦double 浮点数 8个字节
⑧decimal 字符串形式的浮点数 在金融计算的时候使用
2)字符串
①char 固定大小的字符串 0-255
②varchar 可变的字符串 0-65535 常用的String
③tinytext 微型文本 2的8次方-1
④text 文本串 2的16次方-1 保存大文本
3)时间日期 对应Java中的java.util.Date
①date 日期格式:YYYY-MM-DD
②time 时间格式:HH:mm:ss
③datetime 最常用的时间格式:YYYY-MM-DD HH:mm:ss
④timestamp 时间戳 较为常用
⑤year 年份表示
4)null:没有值,未知。
注:不要使用NULL进行运算,没有意义,结果仍为NULL。
3.数据库的字段属性
1)Unsigned:无符号的整数,声明了该列不能为负数。
2)zerofill:0填充的。不足的位数,使用0来填充。
例:int(3),5——>005
3)自增:通常理解为自增,自动在上一条记录的基础上+1(默认)。
通常用来设置唯一的主键index,必须是整数类型。
可以自定义设置主键自增的起始值和步长。
4)非空:假设设置为not null,如果不给它赋值就会报错。
NULL,如果不填写值,默认就是null。
5)默认:设置默认的值。如果不指定该列的值,则会有默认的值。
6)拓展:每一个表都必须在以下五个字段。未来做项目用的,表示一个记录存在意义。
①id 主键
②version 乐观锁
③is_delete 伪删除
④gmt_create 创建时间
⑤gmt_update 修改时间
5.数据库的类型
关于数据库引擎:INNODB 默认使用、MYISAM 早些年使用的。
MYISAM INNODB
事务支持 不支持 支持
数据行锁定 不支持 支持
外键约束 不支持 支持
全文索引 支持 不支持
表空间的大小 较小 较大,约为MYISAM的2倍
常规使用操作:
MYISAM:节约空间,速度较快。
INNODB:安全性高,事务的处理,多表多用户操作。
在物理空间存在的位置:
所有的数据库文件都存在data目录下,一个文件就对应一个数据库。
本质还是文件的存储!
MySQL引擎在物理文件上的区别:
InnoDB:在数据表中只有一个.frm文件,以及上级目录下的ibdata1文件。
MYISAM对应文件:
①.frm 表结构的定义文件
②.MYD 数据文件(data)
③.MYI 索引文件(index)
(在sqlyog上)
操作数据库=
CREATE DATABASE [IF NOT EXISTS] westos;创建名为westos的数据库
DROP DATABASE [IF EXISTS] westos; 删除数据库
USE `westos`; 使用数据库
--tab键的上面的那个反引号,如果表名或者字段名是一个特殊字符就用这个
SHOW DATABASES --查看所有的数据库
创建一个数据表
格式
CREATE TABLE [IF NOT EXISTS] `表名` (
`字段名` 列类型 [属性] [索引] [注释],
······
)[表类型] [字符集设置] [注释]
`
举例
```cpp
CREATE TABLE IF NOT EXISTS `student` (
`id` INT(4) NOT NULL AUTO_INCREMENT COMMENT '学号',
`name` VARCHAR(30) NOT NULL DEFAULT '匿名' COMMENT '姓名',
`pwd` VARCHAR(20) NOT NULL DEFAULT '123456' COMMENT '密码',
`sex` VARCHAR(2) NOT NULL DEFAULT '女' COMMENT '性别',
`birthday` DATETIME DEFAULT NULL COMMENT '出生日期',
`address` VARCHAR(100) DEFAULT NULL COMMENT '家庭住址',
`email` VARCHAR(50) DEFAULT NULL COMMENT '邮箱',
PRIMARY KEY(`id`)
)ENGINE=INNODB DEFAULT CHARSET=utf8
删除修改表的操作
--修改表名:ALTER TABLE 旧表名 RENAME AS 新表名
ALTER TABLE teacher RENAME AS teacher1
--增加表的字段:ALTER TABLE 表名 ADD 字段名 列属性
ALTER TABLE teacher1 ADD age INT(11)
--修改表的字段(重命名、修改约束)
--修改约束:ALTER TABLE 表名 字段名 列属性
ALTER TABLE teacher1 MODIFY age VARCHAR(11)
--字段重命名:ALTER TABLE 表名 CHANGE 旧名字 新名字 [列属性]
ALTER TABLE teacher1 CHANGE age age1 INT(1)
--删除表的字段:ALTER TABLE 表名 DROP 字段名
ALTER TABLE teacher1 DROP age1
--删除表(如果表存在再删除):
DROP TABLE [IF EXISTS] 表名
如DROP TABLE IF EXISTS teacher1
ps.注释用–或/ * * /,不要用#。