mysql命令大全

一、数据库的操作
  1. 连接数据库

    mysql -uroot -p ;

  2. 退出数据库

    quit/exit/ctrl+d

  3. 查看所有数据库

    show databases;

  4. 查看数据时间

    select now()

  5. 查看数据库版本

    select version

  6. 创建数据库

    create database <数据库名> charset=utf8;

  7. 查看创建数据库的语句

    show create database <数据库名>;# 默认的是拉定文
    show create database <数据库名> charset=utf8;# 指定编码格式为utf8

  8. 删除数据库

    drop database <数据库名>

  9. 使用数据库

    use <数据库名>

  10. 查看当前使用数据库

    select database();

二、 数据表操作

  1. 查看数据库中所有表

    show tables;

  2. 查看表结构

    desc <表名>

  3. 创建表结构语法

    create table <table_name>(
    	# 字段名称	数据类型	可选的约束条件
        column1		datatype(int,char)	contrai(primary key),
        column1		datatype,	
    );
    

    例:创建一个班级表

      create table classes(
      	id int unsigned auto_increment primary key not null,
          name varchar(10)
      );
    
  4. 修改表-添加字段

    alter table <表名> add <列名> 类型;
    例:
    alter table staudents add birthday datetime;

  5. 修改表-修改字段=重命名

    alter table <表名> change <原名> <新名> <类型及约束>;
    例:
    alter table students change birthday birth datetime not null;

  6. 修改表-修改字段不重命名

    alter table <表名> modify <列名> <类型及约束>;
    例:
    alter table students modify birth date not null;

  7. 修改表-删除字段

    alter table <表名> drop <列名>;
    例:
    alter table students drop birthday;

  8. 删除表

    drop table <表名>;
    例:
    drop table students;

  9. 查看表的创建语句-详细过程

    show create table <表名>

    例:

    show create table classes

三、增删改查
查询基本使用
  1. 查询所有列

    select * from <表名>;
    列:
    select * from classes;

  2. 查询指定列

    select <列1>,<列2>,… from <表名>;
    例:
    select id, name, age from classes;

  3. 使用as 给字段起别名

    select id as <序号>, name as <名字>, gender as <性>别 from students;

  4. 消除重复行

    select distinct <列名> from 表名;
    例:查询班级中学生的性别
    select gender from students;

条件查询:
  1. where条件查询中的比较运算符查询

    select * from <表名> where <条件>;

  2. 逻辑运算符

    例:查询编号大于3的女同学
    select * from student where id > 3 and gender=0;

  3. 模糊查询 like %(表示多个任意字符) _(表示一个任意字符)

    select * from students where name like ‘黄%’;

  4. 范围查询(in,between…and…)

    例:查询编号是1或3或8的学生(in表示不连续查询)
    select * from students where id in(1,2,3)
    例: 查询编号为3至8的学生(between…and…表示连续查询)
    select * from students where id between 3 and 8;
    例: 查询编号为3至8的学生的男学生
    select * from students where (id between 3 and 8) and gender=1;

分页查询语法

select * from 表名 limit start=0, count
例:查询前3行男生信息
select * from students where gender=1 limit 0,3;

	1. 从start开始,获取count条数据
	2. start默认值为0
	3. 也就是当用户需要获取数据的前n条的时候可以直接写上 xxx limit n;
增加
  1. 全列插入: 值的顺序与表结构字段的顺序完全一一对应

    insert into <表名> values(…);
    例:
    insert into students values(0,‘小明’,1,‘山西’);

  2. 部分插入:值的顺序与根除的顺序对应

    insert into 表名 (列1,…) values(值1,…)
    例:
    insert into students(name,hometown,birthday) values(‘小明’,‘日本’,‘2016-3-2’);

  3. 部分插入多行

    insert into 表名(列1,…) values(值1,…),(值1,…)…;
    例:
    insert into students(name) values(‘杨康’),(‘杨过’),(‘小龙女’);

修改

update <表名> set 列1=值1,列2=值2… where 条件
例:
update students set gender=0,hometown=‘北京’ where id=5;

删除

delete from 表名 where 条件
例:
delete from students where id=5;

排序
  1. 排序语法(order by)

    select * from <表名> order by <列1> asc|desc
    例:查询未删除学生信息,按名称升序
    select * from students where is_delete=0 order by name;
    例:显示所有的学生信息,先按照年龄从大–>小排序,当年龄相同时 按照身高从高–>矮排序
    select * from students order by age desc,height desc;

空判断(is null,is not null)
  1. 判断为空

    例:查询没有填写身高的学生
    select * from students where height is null;

  2. 判断非空

    例:查询填写了身高的学生
    select * from students where height is not null;

聚合函数
  1. 查询总数

    例:查询学生总数
    select count(*) from students;

  2. 最大值

    例:查询女生的编号最大值
    select max(id) from students where gender=2;

  3. 最小值

    例:查询未删除的学生最小编号
    select min(id) from students where is_delete=0;

  4. 求和sum(列) 表示求此列的和

    例:查询男生的总年龄
    select sum(age) from students where gender=1;
    平均年龄
    select sum(age)/count(*) from students where gender=1;

  5. 平均值avg(列) 表示求此列的平均值

    例:查询未删除女生的编号平均值

    select avg(id) from students where is_delete=0 and gender=2;​

group by分组
  1. group by的使用

    select gender from students group by gender;

  2. group_concat(字段名)根据分组结果,使用group_concat()来放置每一个分组中某字段的集合

    select gender,group_concat(name) from students group by gender; ​

连接查询语法
  1. 连接查询的格式:(对于外连接 outer关键字可以省略)

    select * from <表1> <inner或left或right join> <表2> on <表1.列> <运算符> <表2.列

  2. 使用内连接查询班级表与学生表

    select * from students inner join classes on students.cls_id = classes.id;

  3. 使用左连接查询班级表与学生表

    select * from students as s left join classes as c on s.cls_id = c.id;

  4. 使用右连接查询班级表与学生表

    select * from students as s right join classes as c on s.cls_id = c.id;

数据库的备份与恢复

mysql dump -uroot -p <数据库名> > python.sql

mysql -uroot -p <新数据库名> < python.sql

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值