MySQL基础操作命令
MySQL登录命令
mysql -h 服务器主机地址 –u 用户名 -p用户密码
库的相关操作命令
create database [if not exists] 库名; //创建新库
use 库名 //使用库
drop database if existse 库名; //删除指定库
show databases; //查看当前所有库
update user set pasaword=password(新密码)//修改密码
where user=‘用户名’;
flush privileges;
表的相关操作命令
desc 表名; //查看的表的属性结构
drop tables 表名; //删除指定表
create table 表名; //创建新表
show create table 表明; //查看建表语句
select * from 表名; //查看指定表种的所有数据
create table 新建表名 as select * from 待复制表名 where 1=0;//复制指定表的数据结构,并不复制其中的内容,where是判断语句后面的1=0的结果是false就会执行
修改表的相关操作命令
alter table 旧表名 rename as 新表名; //修改表名
alter table 表名 add 字段名 类型 属性; //添加字段
alter table 表名 modify 字段名 类型 属性; //修改字段
alter table 表名 change 旧字段名 新字段名 类型 属性;
alter table 表名 drop 字段名; //删除指定字段
alter table 表名 drop foreign key 外键名;//删除外键
修改表中数据的相关操作
update 表名 set 字段=‘修改的数据’,字段2=‘修改的数据’… where 判断条件;//在指定相关条件下修改指定数据
update 表名 set 字段=concat(‘数据’,字段) ;//将字段的所有数据前都追加上指定数据内容
delete from 表名 where 指定条件 ;//删除指定条件下的数据
注意:使用delete删除数据,自增值依然会从原来的基础上增加,但同样适用delete from清空表数据,重启数据库服务后,对于INNODB的表, 自增列从初始值重新开始,而MYISAM类型的表,自增列依然从上一个自增数据基础上开始,原因是INNODB表的自增记录保存在内存中,而MYISAM保存在文件中,所有重启后,INNODB新增数据会从0开始增加
truncate table 表名; //清空表中所有数据,保留表的数据结构并且将自增字段重新归零
where语句的用法
where语句为条件语句
示例一:
select * from 表名 where 主键 between 3 and 10;//显示指定表中主键值为3-10直接的所有数据
示例二:
update 表名 set 字段=字段*2 where 字段>60 and 字段2>2;//修改字段数据为乘2,条件为字段大于60,且字段2大于2
关键字INSERT:添加数据
INSERT INTO 表名(字段1,字段2,字段3…) VALUES
( ‘字段1值’, ‘字段2值’, ‘字段3值’, …),
( ‘字段1值’, ‘字段2值’, ‘字段3值’, …) ; //完整的插入一条数据/或插入多条完整数据
INSERT INTO 表名(字段) VALUES (‘字段值’); //指定字段新增的数据
设置(增/删)外键格式
第一种增外键的方式:在创建表时完成的操作
constraint 外键名 foreign key(指定当前表的字段) references 其他表(其他表的字段);
第二种增外键的方式:单独完成操作
alter table 表名 add constraint 外键名 foreign key(字段) references 其他表(其他表的字段);
删外键的方式:
alter table 表名 drop foreign key 外键名;//该操作为删除实际外键
alter table 表名 drop index 外键名; // 该操作为删除外键的索引(仅是一个名字)
注意:
创建外键注意要使两个键的数据类型、大小、以及属性一致,才可以创建。
关键字as:取别名
select 字段 as 别名, 字段2 as 别名 from 表 as 别名;//可以使用as来为列或表来取别名,as也可以省略
关键字concat:在指定字段的所有数据前加上统一字符
select concat(‘字符’,字段) from 表;
关键字distinct:显示数据结果去除重复项关键字
select distinct 字段 from 表;
关键字like:模糊匹配
select * from 表名 where like ‘匹配项’;
举例:select name from student where name like ‘李_’; //输出student表中所有姓李的姓名
关键字join:表连接
内连接双表:
select a.字段 ,b.字段 from a join b on a.id=b.id;将表a与表b进行关联,条件是a表中的id与b表中的id相同的的数据进行展示
内连接多表:
select a.字段,b.字段,c.字段 from a
join b on a.字段=b.字段
join c on b.字段=c.字段 //关键字on后面为条件,可以根据需求更改
外连接:
左外连接:以left join的左右的表为主表,关联右表的数据
右外连接:以right join的右边的表为主表,关联左表的数据
自关联:
select a.字段 ,b.字段 from
表名 a join 表名 b on
b.字段1 =a.字段2
where ‘条件’;//其中表为同一张表,是将自己的表中的数据进行关联
单层判断
case 字段 when 值 then 操作1 else 操作2 end //解释:当字段显示的值为指定内容时执行操作1否则执行操作2 最后加上关键字end
多层判断
case 字段
when 值 then 操作 else 操作
when 值 then 操作 else 操作
…
end//原理与条相同,只不过为多重判断
关键字order by:排序
asd升序:默认升序
desc降序
示例:order by 字段 desc //如果不写desc将默认asd升序
关键字limit:分页显示
limit (pageno-1)*pagesize,pagesize;//(当前页码-1)页容量,页容量,这是标准的分页显示格式
关键字count:计数
count(字段) //将显示该字段总共的条数
关键字group by:分组
group by 字段;
关键字having :与where功能相同,但判断的条件需要建立在分组的基础上