美文网首页
mysql基本命令

mysql基本命令

作者: 游荡魂 | 来源:发表于2018-12-08 15:38 被阅读0次

    创建数据库:

    create database 数据库名字

    create database user;

    创建表:

    create table 表名(id int(4)  age int(4) name char(20));

    create table user(id int(4) age int(4) name char(20));

    显示所有的数据库:

    show databases;

    查看数据库中所有的表单;

    show tables;

    显示创建表的详细信息:

    show create table 表名;

    show create table name;

    选择数据库:

    use 数据库名字;

    use name;

    删除数据库;

    drop database 数据库名字;

    drop database name;

    删除表;

    drop table 表名;

    drop table name;

    查看表结构;

    desc 表名;

    desc name;

    添加表一个字段;

    alter table 表名 add 新字段名称    字段属性;

    alter table name add sex int(4);

    删除表的一个字段;

    alter table 表名 drop 删除字段名称;

    alter table name drop id;

    修改表名;

    alter table 旧表名 rename 新表名 ;

    alter table name rename user;

    修改表一个字段;

    alter table 表名 change 旧字段名称  新字段名称  字段属性;

    alter table name change id id int(4);

    自增长属性和主键的添加删除:

    一张表中只能有一个字段是自动增长的,并且被设定为自动增长的这个字段一定要设置为主键;

    如果一个主键字段有自增长属性,如果想要直接删除主键,这是操作不了的;必须是先将自增长属性去除,然后才能删除主键;

    alter table name change id id int(4) auto_increment;  #添加自增长属性;#必须先添加主键才能添加自增长属性,不能直接添加

    alter table name change id id int(4);#删除自增长属性;

    alter table name change id id int(4) primary key;#添加主键

    alter table name drop primary key;删除主键 #添加了自增长属性的,必须先删除自增长属性才能删除主键,不能直接删除

    增加数据:

    insert into 表名(字段1,字段2,字段3......)  values(值1,值2,值3.....);

    insert into name(id,age,sex)  values(1005,20,"男");

    insert into name values(1005,20,"男");#必须是个表单结构是对应的;

    一次写入多个数据;

    insert into 表名(字段1,字段2..) values(值1.1,值2.1...),(值1.2,值2.2,....);

    insert  into  name(id,name,sex,age)values('1001','张三','男',20),('1002','李四','男',21);

    #插入的是日期,和字符串一样,使用引号括起来。

    更新表单数据:如果where子句没有指定,则默认将表中的数据全部更新
    update 表名 set  字段=值  where  条件;

    update name set sex="男" where id=1001;  修改id=1001的学生性别

    update name set setmath=98,chinese=93 where  id=1002;修改id=1002的数学和语文成绩

    update name set chinese=chinese+5;给所有学生的语文成绩+5;

    update name set chinese=chinses+5 where id>1003;给id大于1003的学生语文成绩加5;

    删除表单数据;如果where子句没有指定,则默认将表中的数据全部删除

    delete from 表名 where 条件;

    delete from name where id=1003;  删除id=1003的学生信息

    delete from name;  删除表中的全部数据

    查询数据;

    select * from 表名; #查询表中的所有数据

    select * from name;

    select * from 表名 where 条件;#查询表中id =1004的数据

    select * from nam where id=1004;

    select id,sex from name;#查询指定字段的数据

    select sex as "性别" from name;#查询指定sex字段的数据,并且给添加“性别”别名;as (用于添加别名);

    as不是给表里的字段取别名,而是给查询的结果字段取别名。其目的是让查询的结果展现更符合人们观看习惯,在多张表查询的时候可以直接的区别多张表的同名的字段。

    条件查询;

    模糊查询;

    %: 表示任意个或多个字符,可匹配任意类型和长度的字符

      _: 匹配任意一个字符

     select * from name where name like "王%"; 查询出学生姓王的学生信息;like 后面跟查询的信息

    select * from name where name like "%王%";查询出学生姓名中带王的学生信息

    select * from name where name like "%王";查询出学生姓名中最后一个字是王的学生信息

    and 并且查询;

    select * from nam where  sex="男" and name like "%王%";查询学生为男性,并且姓名中带有王字的学生的信息;

    or 或者,满足任意一个条件即可;

    select * from name where birth>1990 or sex="男";查询出生日期大于1990,或者为男性的学生信息;

    between x and y //在x与y之间的 

    select * from name where birth between 1989 and 1992;查询出生日期在1989到1992之间的学生信息;

    select * from user where birth between 1989 and 1992 and name like "王%";查询出生日期在1989到1992之间的学生信息并且姓名为王的学生信息:

    select * from user where birth between 1989 and 1992 and id between 905 and 907;查询出生日期在1989到1992之间的学生信息并且id 在905到907之间的学生信息;

    in在..里面,允许规定多个值:
    select * from  name where  class="1704"or class="1703"; # 显示1703和1704两个班级学生信息;

    select * from  name where  class   in("1703","1704‘’);

    limit 指定显示多少行,limit后面2个数字,用逗号隔开,第一个表示数字后。第二数字表示显示

    select * from name limit 10;显示前10行数据

    select * from name limit 3,4;显示第4行到底7行的数据;

    select * from name limit 3,2;显示第4行到第5行的数据,limlit使用的是chinese排序

    select * from name where english between 70 and 90 limit 0,2;显示english成绩在70—90的开头两行数据

    select department,sex,count(sex) from user group by department,sex;

    select department,sex,count(sex) from user group by department,sex having sex="女";

    7、逻辑运算符                                   8、算术运算符

      > 大于                                                        + 加法

      < 小于                                                         - 减法

      >= 大于等于                                              * 乘法

      <= 小于等于                                              / 除法

      =  等于                                                        % 取余

      != 不等于

    其他(聚合函数)

    1、count() 统计数量

    select class ,count(class) from user ;#统计所有班级的数量

    select class,count(class) from user group by class;#统计每个班级的数量  group by 分组

    select department,sex,count(sex) from user group by department,sex having sex="女";#统计每个院系女生的数量

    having 表示条件(类似where) 虚拟字段是不可以放在where后面的,例如where avg(math)其中math是实际字段,但avg(math)是求出来的平均分是虚拟字段; 需要进行条件处理的虚拟字段,可以放在having后面;

    2、avg() 求平均分

    select avg(math) from user;#统计全部班级的数学平均分

    select class,avg(math) from user group by class;#统计每个班级的数学平均分

    3、sum() 求和

    select sum(math)  from user;#统计全部班级的数学总分

    select class,sum(math) from user group by class;#统计每个班级的数学平均分:

    4、max()最大值

    select max(math)  from user;#统计全年级数学坐高分

    select class,max(math) from user group by class;#统计每个班级的数学最高分

    5、min()最小值

    select min(math)  from  user;#统计全年级的数学最少分

    select class,min(math) from user group by class;#统计每个班级的数学最高分

    6、distinct() 去重复

    select distinct(name) from  user ;#去除名字相同的学生

    7、order by 排序

    select * from  user order by id;// 默认是升序

    select name,sum(grade) from score group by name order by sum(grade) ;#统计每个学生的总分,成绩按照从低到高列出

    select * from  user  order by id desc;// 降序

    select name,sum(grade) from score group by name order by sum(grade) desc;#统计每个学生的总分,成绩按照从高到底列出

    8、group by 分组

    select  class,count(class)  from  user group by class;

    9、having 表示条件(类似where) 虚拟字段是不可以放在where后面的,例如where avg(math)其中math是实际字段,但avg(math)是求出来的平均分是虚拟字段; 需要进行条件处理的虚拟字段,可以放在having后面;

    select department,sex,count(sex) from user group by department,sex having sex="女";

    show databases;#查看所有数据库

    show tables;#查看数据下的所有表单

    use 数据库名字;#选择数据库

    creater databse 数据库名称;#查看数据库

    creater table 表名(字段,int());#创建表单

    drop database 数据库名字;#删除数据库

    drop table 表名;删除表单;

    alter table 表名 drop 字段;#删除表单的某个字段

    alter table name drop primary key;#删除主键

    alter table 旧表名 rename 新表名;修改表名

    alter table 表名 add  字段 字段属性;#表单中添加字段

    alter table 表名 change 旧字段 新字段 新字段属性;#修改某个字段

    alter table 表名 change 旧字段 新字段 新字段属性

    alter table 表名 change 添加主键的字段 字段 字段属性 primary key;#添加主键

    alter table 表名 change 添加自增长字段 字段 字段属性 auto_auto_increment;#添加自增长属性

    alter table 表名 change 删除自增长字段 字段 字段属性;#删除自增长属性

    desc 表名;#查看表单结构

    insert into  表名(字段1,字段2,.......) values(值1,值2,.......);#表中添加数据

    insert into  表名(字段1,字段2,.......) values(值1,值2,.......),(值1,值2,.......);#一次性添加多个数据

    insert into 表名 values(值1,值2,..........);#添加的数据必须与表单结构对应

    update 表名 set 字段=值;#更改这个字段的所有值

    update 表名 set 字段=值 where 条件;#x更改某个字段的值,条件为更改所在字段的某个字段值,如:(id=1001)或者(name="张三")等值都可以。

    select * from 表名;查看表数据

    avg():平均

    select avg(math) from user;#统计全部班级的数学平均分

    sum():求和

    select sum(math)  from user;#统计全部班级的数学总分

    max():求最大值

    select max(math)  from user;#统计全年级数学坐高分

    min():最小

    select min(math)  from  user;#统计全年级的数学最少分

    distinct():去重

    select distinct(name) from  user ;#去除名字相同的学生

    order by:排序

    select * from  user order by id;// 默认是升序

    select * from  user  order by id desc;// 降序

    group by:分组

    select  class,count(class)  from  user group by class;#group by 给班级分组

    having同where

    select department,sex,count(sex) from user group by department,sex having sex="女";#having和where类似一样,区别是having后面跟虚拟字段

    相关文章

      网友评论

          本文标题:mysql基本命令

          本文链接:https://www.haomeiwen.com/subject/mmxicqtx.html