一.安装:
windows:点击我!
linux:yum install mysql-server
windows安装步骤:(5.7.18为例)下载完成后
1.下载完成后,双击安装程序运行。详细教程点击这里。
2.安装成功后,找到文件安装路径下的BIN目录。默认一般是:C:Program FilesMySQLMySQL Server 5.7in 首先以管理员方式运行命令行,cd C:Program FilesMySQLMySQL Server 5.7in 切换到此目录。
3.执行 mysqld
-
-
initialize
-
insecure 指令初始化data目录 此时可以看到安装目录下多了data文件夹。
4.启动并连接mysql: 命令行键入 mysqld 回车便可以开启mysql。 然后可以重开一个cmd 输入mysql -u root -p 回车 (d是服务端开启,没有d是客户端对服务端的连接。-u root 表示root用户,也可更改其它已存在用户。),此时会提示输入密码。如果安装时候设置过密码则输入正确密码回车即可。
注:如果未添加环境变量,则需要先cd到mysql的bin目录下才可执行相应操作,所以为了方便我们最好应该添加环境变量,具体配置可以看这里;注意bin目录要改成自己对应的真实目录。
5.添加mysql服务。上一步解决了一些问题,但不够彻底,因为在执行【mysqd】启动MySQL服务器时,当前终端会被hang住,即开启服务端后需要等待客户端的接入,那么做一下设置即可解决此问题:
# 制作MySQL的Windows服务,在终端执行此命令: (必须以管理员方式运行终端)
"c:mysql-5.7.16-winx64inmysqld"
-
-
install (引号内为自身实际路径)
"c:mysql-5.7.16-winx64inmysqld"
-
-
remove
二.基本操作
连接:
默认:用户root
查看data所有文件: show databases;
切换到目录下:use 数据库名称;
查看目录下所有的表:show tables;
查看表里所有内容:select * from 表名;
查看表的对应列内容:select name,age,id from 表名;
查看账户信息表:mysql数据库user表
use mysql;
select user,host from user;
创建用户:
create user 'alex'@'192.168.1.1' identified by '123123'; (create user创建用户 'alex'用户名@'ip地址,%表示所有地址' by'密码')
create user 'alex'@'192.168.1.%' identified by '123123';
create user 'alex'@'%' identified by '123123';
授权:
权限 人
grant select,insert,update on db1.t1 to 'alex'@'%'; (select查看 insert 插入 updata 更新 on 表明 *.*表示所有文件 to '账户名以及ip')
grant all privileges on db1.t1 to 'alex'@'%';
revoke all privileges on db1.t1 from 'alex'@'%'; (解除权限)
DBA: 用户名密码
3. 学习SQL语句规则
操作文件夹
创建文件夹:create database db2;
创建文件夹以UTF8编码:create database db2 default charset utf8; *****
show databases;
删除文件夹:drop database db2;
操作文件
show tables;
创建表,id限制Int类型,name列限制10个字符 默认编码utf8:create table t1(id int,name char(10)) default charset=utf8;
engine=innodb,存储引擎,区别: create table t1(id int,name char(10))engine=innodb default charset=utf8;
id int类型作为主键,主键是唯一的。:create table t3(id int auto_increment primary key,,name char(10))engine=innodb default charset=utf8; *****
null,可以为空。
create table t1(
列名 类型 null,
列名 类型 not null,
列名 类型 not null auto_increment primary key,
id int,
name char(10)
)engine=innodb default charset=utf8;
# innodb 支持事务,原子性操作
# myisam myisam
auto_increment 表示:自增
primary key: 表示 约束(不能重复且不能为空); 加速查找
not null: 是否为空
数据类型:
数字:
tinyint(
tinyint[(m)] [unsigned] [zerofill] 小整数,数据类型用于保存一些范围的整数数值范围: 有符号: -128 ~ 127. 无符号: 0 ~ 255 特别的: MySQL中无布尔值,使用tinyint(1)构造。
)
int(
int[(m)][unsigned][zerofill] 整数,数据类型用于保存一些范围的整数数值范围: 有符号: -2147483648 ~ 2147483647 无符号: 0 ~ 4294967295 特别的:整数类型中的m仅用于显示,对存储范围无限制。例如: int(5),当插入数据2时,select 时数据显示为: 00002
)
bigint(
bigint[(m)][unsigned][zerofill] 大整数,数据类型用于保存一些范围的整数数值范围: 有符号: -9223372036854775808 ~ 9223372036854775807 无符号: 0 ~ 18446744073709551615
)
FLOAT
0.00000100000123000123001230123
DOUBLE
0.00000000000000000000100000123000123001230123
0.00000100000123000000000000000
decimal
0.1(唯一精确的小数类型。)
字符串:
char(10) 速度快() ,如存储字符不足10自动补全10
root
root
varchar(10) 节省空间
root
PS: 创建数据表定长列往前放
text
上传文件:
文件存硬盘
db存路径
时间类型
DATETIME
enum (
枚举类型, An ENUM column can have a maximum of 65,535 distinct elements. (The practical limit is less than 3000.) 示例: CREATE TABLE shirts ( name VARCHAR(40), size ENUM('x-small', 'small', 'medium', 'large', 'x-large') ); INSERT INTO shirts (name, size) VALUES ('dress shirt','large'), ('t-shirt','medium'),('polo shirt','small');
)
set(
集合类型 A SET column can have a maximum of 64 distinct members. 示例: CREATE TABLE myset (col SET('a', 'b', 'c', 'd')); INSERT INTO myset (col) VALUES ('a,d'), ('d,a'), ('a,d,a'), ('a,d,d'), ('d,a,d');
)
create table t1(
id int signed not null auto_increment primary key,
num decimal(10,5),
name char(10)
)engine=innodb default charset=utf8;
清空表:
delete from t1; (计数不归零,不可以回滚)
truncate table t1; (针对具有自动递增值的字段,做计数重置归零重新计算。可以回滚)
删除表:
drop table t1;
操作文件中内容
插入数据:
insert into t1(id,name) values(1,'alex');
删除:
delete from t1 where id<6
修改:
所有age列的值更新为18:update t1 set age=18;
所有age为17的值改为18:update t1 set age=18 where age=17;
查看数据:
select * from t1;
外键:
create table userinfo(
uid bigint auto_increment primary key,
name varchar(32),
department_id int,
xx_id int,
constraint fk_user_depar foreign key (department_id) references color(id)
)engine=innodb default charset=utf8;
create table department(
id bigint auto_increment primary key,
title char(15)
)engine=innodb default charset=utf8;
今日内容参考博客:
http://www.cnblogs.com/wupeiqi/articles/5713315.html
作业:
http://images2015.cnblogs.com/blog/425762/201608/425762-20160803224643778-2071849037.png
http://www.cnblogs.com/wupeiqi/articles/5729934.html