mysql 命令查看打开状态:services.msc
进入数据库 mysql -u 数据库名 -p
DDL 数据定义语言:用来定义数据库对象,数据库,表,列等:
create 创建 alter 修改 drop 删除
DML 数据操作语言,用来对数据库中表的记录进行更新:
insert 插入 delete 删除 updata 更新
DCL 数据控制语言,用来定义数据库的访问权限和安全级别及创建用户
DQL 数据查询语言,用来查询数据中表的记录:
select 查询 from 来自 where 查询条件
SQL基本命令:
创建数据库: create database 数据库名;
显示数据库: show databases;
删除数据库: drop database 数据库名;
使用数据库: use 数据库名;
有时候表中的信息是乱码:解决 set names'gbk';
原因。dos中的编码是GBK,而数据库中的编码是 utf-8;
创建数据表的格式:
create table 表名(
列名1 数据类型 约束(可写可不写),
列名2 数据类型 约束(可写可不写),
列名3 数据类型 约束(可写可不写)
);
约束:主键约束,保证这列的数据永远保持唯一性和非空性;
关键字:primary key (auto_increment) 可自动增长序号
非空性约束,保证此列数据不能为空;
唯一约束,保证这列的唯一性;
表的基本操作:
删除表: drop table 表名;
查看表: show tables;
查看表详细结构: desc 表名;
查看某个表中的数据:select * from 表名;
查询指定列的数据:
select 列名1,列名2 from 表名;
修改表 :
添加列,添加字段:
alter table 表名 add 列名 数据类型 约束
修改列,在原有列上修改:修改列名,数据类型的约束:
alter table 表名 modify 列名 数据类型 约束;
修改列名:
alter table 表名 change 旧列名 新列名 类型(长度) 约束;
删除列:
alter table 表名 drop 列名;
修改表名:
rename table 表名 to 新名;
修改表的字符集:
alter table 表名 character set 字符集;
查看表的所有:
select * from 表名 where 条件; // name = '吃饭支出';
price > 1000;
查询值在一个范围:
select * from 表名 where 条件 and 条件;
// where moneny > 2000 and money < 5000;
select * from 表名 where 列名 between 条件 and 条件;
//where money between 1000 and 5000;
查询条件是/ 不是 多个中的任意一个:
select * from 表名 where 列名 in (1000,2000,4000);
select * from 表名 where 列名 not in (1000,2000,4000);
like 模糊查询;必须配合通配符;
查询所有支出:
select * from 表名 where 列名 like '%条件';
// where name like '王%';
% : 表示多个字符
_ : 表示一个字符
查询不为空的:
select * from 表名 where is not null;
向表中添加数据:
insert into 表名(列名1,列名2,列名3) value (值1,值2,值
3);
insert into 表名 values (值1,值2,值3); //没有写
列名,但是输入值要把信息值全写,不能省略,不然系统会认为第一个值
为主键;
添加数据,批量写入:
insert into 表名(列名1,列名2,列名3) values (值1,值2,
值3),(值1,值2,值3),(),....可以无限加,若有主键,且自动增加,则
可以坐在列名和值省略。
对数据进行更改,在原有的基础上:
updata 表名 set 列1=值1,列2=值2 where 条件;
删除表中的数据:
delete from 表名 where 条件;
drop table 表名; //删除整个表
SQL的不等于:<>
与:and
或:or
非:not
查询,对结果进行排序
升序,降序,对指定列排序
order by 列名 [desc][asc] //asc 升序 desc 降序
select * fromm 表名 order by 列名 desc;
对过滤出来的信息进行排序:
select * from 表名 where 列名 like '%条件%' order by 列名 desc;
//
select * from 表名 where name like '%型%' order by age desc;
聚合查询:纵向查询;
聚合函数:
count :统计指定列不为null的记录行为;
sum :计算指定列的数值合;
max : 计算指定列的最大值;
min :计算指定列的最小值;
avg :计算指定列的平均值;
求和,对表中的数据个数求和:
select count(*) as 'count' from 表名;
sum 求和,对一列中数据进行求和计算 sum(列名)
select sum(列名) from 表名;
带条件的求和
select sum(列名) from 表名 where 列名 like '%条件%';
max 找出某列的最大值:
select max(列名) from 表名;
avg 算出一个列的所有数据平均数;
select avg(列名) from 表名;
分组查询:
group by 被分组的列名;必须跟随聚合函数;select 查询时,被
分组的列,要出现在select 选择列的后面;
select sum(列名),列名 from 表名 group by 列名;
//
select sum(pricee),name from product group by name;
吧名字一样的分成了一组,并求他们的金额总和;
带条件的分组:
对内容进行查询求和,但只要输出
select sum(列名),列名 from 表名 where 列名 like '%支出%' group
by 列名 order by sum(列名) desc;
//
select sum(price)as 'getsum',name from product where name like '%
支出%' group by name order by sum(price) desc;
having 关键之能对分组查询后,再次进行筛选,而where不能
// 对price 内容进行分组求和,但是只要支出,显示大于5000;
select sum(price)as 'getsum',name from product where name like '%
支出%' group by name having getsum>5000;
进入数据库 mysql -u 数据库名 -p
DDL 数据定义语言:用来定义数据库对象,数据库,表,列等:
create 创建 alter 修改 drop 删除
DML 数据操作语言,用来对数据库中表的记录进行更新:
insert 插入 delete 删除 updata 更新
DCL 数据控制语言,用来定义数据库的访问权限和安全级别及创建用户
DQL 数据查询语言,用来查询数据中表的记录:
select 查询 from 来自 where 查询条件
SQL基本命令:
创建数据库: create database 数据库名;
显示数据库: show databases;
删除数据库: drop database 数据库名;
使用数据库: use 数据库名;
有时候表中的信息是乱码:解决 set names'gbk';
原因。dos中的编码是GBK,而数据库中的编码是 utf-8;
创建数据表的格式:
create table 表名(
列名1 数据类型 约束(可写可不写),
列名2 数据类型 约束(可写可不写),
列名3 数据类型 约束(可写可不写)
);
约束:主键约束,保证这列的数据永远保持唯一性和非空性;
关键字:primary key (auto_increment) 可自动增长序号
非空性约束,保证此列数据不能为空;
唯一约束,保证这列的唯一性;
表的基本操作:
删除表: drop table 表名;
查看表: show tables;
查看表详细结构: desc 表名;
查看某个表中的数据:select * from 表名;
查询指定列的数据:
select 列名1,列名2 from 表名;
修改表 :
添加列,添加字段:
alter table 表名 add 列名 数据类型 约束
修改列,在原有列上修改:修改列名,数据类型的约束:
alter table 表名 modify 列名 数据类型 约束;
修改列名:
alter table 表名 change 旧列名 新列名 类型(长度) 约束;
删除列:
alter table 表名 drop 列名;
修改表名:
rename table 表名 to 新名;
修改表的字符集:
alter table 表名 character set 字符集;
查看表的所有:
select * from 表名 where 条件; // name = '吃饭支出';
price > 1000;
查询值在一个范围:
select * from 表名 where 条件 and 条件;
// where moneny > 2000 and money < 5000;
select * from 表名 where 列名 between 条件 and 条件;
//where money between 1000 and 5000;
查询条件是/ 不是 多个中的任意一个:
select * from 表名 where 列名 in (1000,2000,4000);
select * from 表名 where 列名 not in (1000,2000,4000);
like 模糊查询;必须配合通配符;
查询所有支出:
select * from 表名 where 列名 like '%条件';
// where name like '王%';
% : 表示多个字符
_ : 表示一个字符
查询不为空的:
select * from 表名 where is not null;
向表中添加数据:
insert into 表名(列名1,列名2,列名3) value (值1,值2,值
3);
insert into 表名 values (值1,值2,值3); //没有写
列名,但是输入值要把信息值全写,不能省略,不然系统会认为第一个值
为主键;
添加数据,批量写入:
insert into 表名(列名1,列名2,列名3) values (值1,值2,
值3),(值1,值2,值3),(),....可以无限加,若有主键,且自动增加,则
可以坐在列名和值省略。
对数据进行更改,在原有的基础上:
updata 表名 set 列1=值1,列2=值2 where 条件;
删除表中的数据:
delete from 表名 where 条件;
drop table 表名; //删除整个表
SQL的不等于:<>
与:and
或:or
非:not
查询,对结果进行排序
升序,降序,对指定列排序
order by 列名 [desc][asc] //asc 升序 desc 降序
select * fromm 表名 order by 列名 desc;
对过滤出来的信息进行排序:
select * from 表名 where 列名 like '%条件%' order by 列名 desc;
//
select * from 表名 where name like '%型%' order by age desc;
聚合查询:纵向查询;
聚合函数:
count :统计指定列不为null的记录行为;
sum :计算指定列的数值合;
max : 计算指定列的最大值;
min :计算指定列的最小值;
avg :计算指定列的平均值;
求和,对表中的数据个数求和:
select count(*) as 'count' from 表名;
sum 求和,对一列中数据进行求和计算 sum(列名)
select sum(列名) from 表名;
带条件的求和
select sum(列名) from 表名 where 列名 like '%条件%';
max 找出某列的最大值:
select max(列名) from 表名;
avg 算出一个列的所有数据平均数;
select avg(列名) from 表名;
分组查询:
group by 被分组的列名;必须跟随聚合函数;select 查询时,被
分组的列,要出现在select 选择列的后面;
select sum(列名),列名 from 表名 group by 列名;
//
select sum(pricee),name from product group by name;
吧名字一样的分成了一组,并求他们的金额总和;
带条件的分组:
对内容进行查询求和,但只要输出
select sum(列名),列名 from 表名 where 列名 like '%支出%' group
by 列名 order by sum(列名) desc;
//
select sum(price)as 'getsum',name from product where name like '%
支出%' group by name order by sum(price) desc;
having 关键之能对分组查询后,再次进行筛选,而where不能
// 对price 内容进行分组求和,但是只要支出,显示大于5000;
select sum(price)as 'getsum',name from product where name like '%
支出%' group by name having getsum>5000;