MySql常用总结
库 sql
创建数据库
create database 数据库名
使用数据库
use 数据库名
查看数据库
show databases 数据库名
删除数据库
drop database 数据库名;
数据库导入
1.use 数据库
2.source .sql 文件路径
数据库导出
mysqldump -h IP -u 用户名 -p 数据库名 > 导出路径+sql文件名
例如 mysqldump -h 127.0.0.1 -u root -p jinlebao.sql >/Applications/htdocs/jinlebao.sql
字段常用类型
字符串型
char 固定长度 (如 身份证啊、手机号啊)
char(18)最多存储18个字节 超出不存
varchar 可变长度 (如地址啊、留言信息啊)
varchar(18) 超出也存
text 文本 (就是用于放文章啊)
整数型
int 整型 就是1 2 3 4 5 (就是存放数字啊)
tinyint (通常用于存放状态)
最多显示尺寸255 (-128 -127) 最大值为127
小数型
decimal 定点(存放固定长度的小数,通常用于金额,数量等字段)
create table
create table 表名(
id int(11) not null auto_increment comment ‘主键自增id’ primary key,
name varchar(32) default null comment ‘名称’,
phone char(11) default null comment ‘手机号’,
total decimal(12,2) default ‘0.00' comment ‘金额’,
create_time int(11) default null comment ‘创建时间’,
status tinyint(6) default ‘1’ comment ‘审核状态 1待审核 2审核中 3已完成’,
content text defuault null comment ‘申请内容’
) ENGINE = InnoDB AUTO_INCREMENT 80 DEFAULT CHARST =UTF-8 comment= ‘用户信息表’;
SELECT table
SELECT * FROM table_name WHERE 1=1 AND (name=‘张三’ OR keywords like ‘%张%’) OR phone =‘18636055380’ GROUP BY name,keywords ORDER BY(create_time DESC) LIMIT 1,10;
- 代表所有 也可以查询相关字段名 按’,’分割
WHERE 条件
1=1 通常用于 多数据查询的sql拼接
and 并且 or 或
like 模糊查询 %通配符
GROUP BY 分组匹配(避免重复数据)
ORDER BY 排序 ASC 正序 DESC 倒序
LIMIT 1,10 1=第一页,10=每页10条
INSERT、UPDATE、DELETE
添加表数据
INSERT INTO table_name SET field1=value1,field2=value2
编辑表数据
UPDATE table_name SET field1=value1,filed2=value2 WHERE 条件
删除表数据
DELETE FROM table_name WHERE 条件
给表添加一个字段
ALTER TABLE 表名 ADD 字段名 字段类型 null default ‘默认值’ comment ‘说明’
null 是否允许字段值为null
default 字段默认值
comment 字段说明
索引
索引 主要应用于数据量较大的时候,提高数据列的检索速度,适用如下
重复检索字段
数据统计字段
数据表关联的关键字段
索引分为
主键索引 primary key
普通索引 index
创建 CREATE INDEX order_total ON order_table(order_total
);
更新 ALTER TABLE order_table ADD INDEX order_total(order_total
)
唯一索引(不会)
创建CREATE UNIQUE INDEX order_total ON order_table(order_total
)
更新 ALTER TABLE order_table ADD UNIQUE order_total(order_total
)
LEFT JOIN
表关系设计合理,可提高数据的检索数据、避免数据允余
left join 适用于1对1 查询 1对多查询 会照成 某一张表的数据重复拉取
表关联 获取需求数据
SELECT A.filed_1,B.file_2,C.file_3 FROM table_a AS A
LEFT JOIN table_b AS B ON a.a_id = b.a_id
LEFT JOIN table_c AS C ON B.b_id = C.b_id
WHERE 条件
A为主表 B C为关系表
AS 别名 也可用于字段 可避免获取数据被覆盖
允许远程访问
方法一
找到mysql.cnf文件
编辑 bind-address = 127.0.0.1 注释掉 或 更改为 0.0.0.0
重启 service mysql restart
方法二
use 数据库名
grant all privileges on . to root@'%' identified by “root";
FLUSH PRIVILEGES;
访问慢
vim /etc/mysql/my.cnf
增加配置参数 [mysqld]skip-name-resolve