1、
mysql -uroot -p密码;(也可以不带密码,之后输入) 本地登录
mysql -h host(登录ip,可连写可空格)
-P port(端口P需大写,通常3306,可连写可空格)
-uroot(用户名username,和-u连在一起写)
-proot(p小写)密码(password一般是root,和-p连在一起写);
远程登录(mysql -h localhost -P 3306 -uroot -proot)
mysqldump -u用户 -p 数据库名 > xx.sql; 导出数据库文件,保存
mysql -u用户 -p密码 数据库名< xx.sql;导入数据库文件(也可以选择登录进去,在选择数据库后,使用source命令导入数据)
2、
drop直接删掉表
truncate table 表名; 清空表并让id重新从1自增
delete删除表中数据,可以加where条件句,delete删除整个表数据时,再插入自增id不会从1开始
desc 表名;查看表的各个字段的属性,以及自增键
show databases; 查数据库
show tables; 查看表
create table 表名;建表(需要的类型需自行添加...)
create database 数据库名 default charset utf8; 创建数据库
3、
定义:索引(Index)是帮助MYSQL高效获取数据的数据结构
索引的作用:约束,加速查找
索引种类
普通索引:加速查找
主键索引:加速查找;约束(主键不能为空,不能重复)
唯一索引:加速查找;约束(索引不能重复)
组合索引:多列组成一个索引(联合主键索引,联合唯一索引,联合普通索引
4、`着重号`,``用来区分是一个关键字或则是一个字段名(可读性差的时候)用 如: SELECT `name` FROM user
分页
select 列名 from 表名 limit num; 显示num个
select 列名 from 表名 limit num1,num2;从num1后取num2行数据,num1是起始位置,num2是个数
select 列名 from 表名 limit num1 offset num2;从num2后取num1行数据,num2是起始位置, num1是个数
排序
select * from 表名 order by 列名 desc;从大到小排序
select * from 表名 order by 列名 asc;从小到大排序
select * from 表名 order by 列名1 desc 列名2 asc; 首先遵循列1从大到小排序,遇到相同数据 时, 按列2从小到大排序
分组操作
select count/sum/max/min/avg(列名1),列名2 from 表名 group by 列名(通常是列名2);分组操作
select count/sum/max/min/avg(列名1),列名2 from 表名 group by 列名(通常是列名2)having 条件;分组操作后筛选
连表操作
select * from 表1 left join 表2 on 表1.列名=表2.列名; 左连接
select * from 表1 right join 表2 on 表1.列名=表2.列名; 右连接
select * from 表1 inner join 表2 on 表1.列名=表2.列名; 内连接
注意:如果超过3个表联合操作,如果其中两个表操作时已经改变了表结构,应该将这两个表操作的结果作为一个临时表再与第三个表联合操作。
临时表
(select * from 表名as a);
外键适用于一对多,一对一,多对多三种情况;
5、
内连接:返回两表指定列名相同的数据,如果没有返回空。
select * from 表1 inner join 表2 on 表1.列名=表2.列名; 内连接
左连接:左边数据全显示,右边表只显示符合条件的数据,如果右边没有相符数据或满足的数据少于左边数据行,以null代替(记录不足的地方以null代替)
select * from 表1 left join 表2 on 表1.列名=表2.列名; 左连接
右连接:与左连接相反
select * from 表1 right join 表2 on 表1.列名=表2.列名; 右连接
....
天冷随记,以后好补充,加深一下记忆...*.*