mysql基本命令

创建数据库:

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基本命令)