MySql 命令行操作

建立数据库

  1. 显示所有的数据库 show databases;
  2. 直接创建数据库 create database chat; //显示1行受影响 成功
    检测创建数据库:在创建的时候 检测该数据库是否存在 不存在创建
    create database if not exists chat;
  3. 使用数据库 use mysql;//database changed
  4. 删除数据库 drop database chat;

建立数据表

  1. 显示汉字 set names gbk;
  2. 创建表: (表名、表的字段名、定义每个表的字段)
    注意:字段的数据类型 (int float double decimal date datetime varchar)
    创建字段的时候 字段可以为null 也可以not null
    auto_increment 自增列 默认每次自增+1 设置自增列得添加主外键
  create table user(  //直接创建
  create table if not exists user(  //检测创建的表是否存在  在创建  
     id int not null auto_increment primary key,
     name varchar(50) ,
     sex  varchar(10),
     brithday datetime
  ) default  charset=utf8;  
  //设置表的编码格式可写可不写 编码格式和数据库引擎默认设置
  1. 查看表创建时的信息 show create table user;
  2. 删除表 drop table user; drop table if exists user;

操作数据库里面的表

  1. 增加 数据表内容 insert into
insert into `user` (id, name,sex,birthday)
values
 ("1","trankle","女","1995-01-15 12:00:00"),
 ("2","youkusou","女","2020-01-15 13:00:00");
  • 表创建好之后 添加列
    alter table user add column columnname varchar(100) not null;
  1. 查询数据 select from
    查询所有列 select * from user
    查询某列 select liename1,liename2,liename3 from user
  2. 修改 update 条件判断 (否则会修改全部)
update `user` set name = "ROY" where id=3;
  1. 删除 delete from 条件判断 (否则会删除全部)
delete from `user`  where id=3;
  1. 条件判断 where 条件语句(= != > < >= <= like “”)
  2. 模糊查找
    like替代= ;like% %like %like%
select * from user where name like "张%"; //张***  
//like后边没有使用%和等号效果一样
  1. 排序order by
    asc 正序、desc 倒序;order by 子句可以和条件之类连用
select * from `user` order by id asc;
select * from `user` order by id desc;
  1. 分组 group by
    对一个或者多个列进行分组 在分组的列上可以使用 count sum avg函数,
select * from `user` group by sex;
//列 起名
select sex,count(*) as sexcount from `user` group by sex;
select sex,sum(sexcount) as sum from `user` group by sex;

with rollup关键字 是在分组的情况下,做最终的统计 ;统计完成之后存在null空值 使用coalesce(,’’)-with rollup;方法处理列上的空值

select coalesce(name,'总数') as name,sum(count) as sum from `user` group by name with rollup;
  1. 多表链接查询
    多表查询+分组以及虚拟表起别名
 select user.id,user.name from user,(select name,sum(count)as count from user2 group by name) as login where user.name = user2.name;

多表查询+条件
select user.id,user.name from user,job where user.name = job.name;
子查询 使用关键字 in
select * from user where id in(select id from score where score>90);

添加主外键

主键primary key 外键foreign key 唯一键 unique key

  1. 主键(自增列是主键):不能为null 不重复 id int auto_increment primary key
    联合主键(primarykey(id,name)一张表存在多个主键)。
    add表外添加主键 alter table user add primary key (id);
    drop表外删除主键 alter table user drop primary key (id);
  2. 外键 :引用的主键
creata table 'user'( id int auto_increment  primary key, 
 			 foregin key(userid) references user(id));

add表外添加外键 alter table 'user' add foregin key (userid) references user(id);
drop表外删除外键 alter table 'user' drop foregin key (userid) references user(id);

  1. 唯一键: 可为null不重复 id int unique key
    联合唯一键(uniquekey(id,name)
    add表外添加外键 alter table 'user' add unique key (id);
    drop表外删除外键 alter table user drop unique key (id);

存储过程

定义存储过程

   //关键语法  修改;为别的符号  
   delimiter &&
   create procedure myinfo(in number int,out num int) // in 向存储过程传入值  out 传出值
   //create procedure 存储过程名(参数)
   //create function 存储函数名(参数)
begin
   DECLARE num int (unsigned default 4000000);//变量定义
   select count(*) into num from user where age>=number;
   set count=num; 
   select count;
end&&
   //存储过程创建完成之后把;修改回来
   delimiter;
// 执行存储过程
 @p=0; //变量赋值
call myinfo(20,@p);

删除存储过程

drop procedure myinfo;

连接

内连接:返回交集 inner join···on···
select user.id,name from user inner join user2 on user.id=user2.id;
左连接:返回左表全数据,右表的交集 left join···on···
select user.id,name from user left join user2 on user.id=user2.id;
右连接:返回右表全数据,左表的交集 right join···on···
select user.id,name from user right join user2 on user.id=user2.id;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值