一、数据库
数据库可以理解成数据存储的文件夹,里面有各种表用来存储数据
show(展示) /database(数据库)/ table(表)
auto_increament(自增)/ primary(主要) /alter(修改)
create(创建)/select(查)/delete、truncate、drop(删除)
insert into(增)/update(改)
1.下载
MySQL Community Server 5.7.16
http://dev.mysql.com/downloads/mysql/
2.添加环境变量
将数据库的bin文件添加到,环境变量中
3.启动数据库
在终端输入 mysql -u root -p
二、操作数据库
1.显示数据库
SHOW DATABASES;
默认数据库:
mysql - 用户权限相关数据
test - 用于用户测试数据
information_schema - MySQL本身架构相关数据
2.创建数据库
CREATE DATABASE 数据名称 DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
3.删除数据库
drop database 数据库名称;
4.使用数据库
USE db_name;
5.显示表
SHOW TABLES;
6.授权
创建用户
create user '用户名'@'IP地址' identified by '密码';
删除用户
drop user '用户名'@'IP地址';
修改用户
rename user '用户名'@'IP地址'; to '新用户名'@'IP地址';;
修改密码
set password for '用户名'@'IP地址' = Password('新密码')
三、操作表
1.创建表
create table 表名(
列名 类型 是否可以为空,
列名 类型 是否可以为空
)ENGINE=InnoDB DEFAULT CHARSET=utf8
(1)是否为空
#id字段不准为空
create table 表名(id INT NOT NULL);
#id 字段为空设置默认值
create table 表名(id INT NOT NULL DEFATULT 2);
(2)自增和主键
#auto_increment自增 primary主键
create table 表名(id int auto_increment primary key);
#或
create table 表名(
nid int not null auto_increment,
primary(nid)
)
#注:自增时要用int 类型
#主键,不允许有空值,如果主键使用单个列,则它的值必须唯一,如果是多列,则其组合必须唯一。
create table 表名(
nid int not null auto_increment,
user char(10) not null,
primary(nid,user)
);
2.插入数据
insert into 表名(字段,字段) values('值','值');
3.查询数据
select * from 表名
三、数据类型
#数字类型
bit (M) 二进制,默认m=1
tinyint 整数数值范围:有符号: -128 ~ 127.无符号: 0 ~ 255
MySQL中无布尔值,使用tinyint(1)构造。
int(m)整数类型:有符号:-2147483648 ~ 2147483647 无符号: 0 ~ 4294967295
m仅用于显示,对储存无限制。
decimal(m[,d]) 准确的小数值,m是数字总个数(负号不算),d是小数点后个数。 m最大值为65,d最大值为30。
float/double 双精度数值越大越不准确
#字符串
char 固定 长度最多255个字符,读取速度快
vchar 可变长度,最多255个字符,占用空间小
text 可变长度,最多65535
blob 保存二进制数据
mediumtext 16,777,215
longtext 4,294,967,295
#时间
DATE
YYYY-MM-DD(1000-01-01/9999-12-31)
TIME
HH:MM:SS('-838:59:59'/'838:59:59')
YEAR
YYYY(1901/2155)
DATETIME
YYYY-MM-DD HH:MM:SS(1000-01-01 00:00:00/9999-12-31 23:59:59 Y)
TIMESTAMP
YYYYMMDD HHMMSS(1970-01-01 00:00:00/2037 年某时)
四、修改表
添加列:alter table 表名 add 列名 类型
删除列:alter table 表名 drop column 列名
修改列:
alter table 表名 modify column 列名 类型; -- 类型
alter table 表名 change 原列名 新列名 类型; -- 列名,类型
添加主键:
alter table 表名 add primary key(列名);
删除主键:
alter table 表名 drop primary key;
alter table 表名 modify 列名 int, drop primary key;
添加外键:alter table 从表 add constraint 外键名称(形如:FK_从表_主表) foreign key 从表(外键字段) references 主表(主键字段);
删除外键:alter table 表名 drop foreign key 外键名称
修改默认值:ALTER TABLE testalter_tbl ALTER i SET DEFAULT 1000;
删除默认值:ALTER TABLE testalter_tbl ALTER i DROP DEFAULT;