java28_mysql语句

//开启mysql服务的两种方法:
Services.msc
Net start mysql  
//Dos登陆mysql:
mysql -uroot -p123
//Dos退出mysql:
exit
//创建数据库:
create database 数据库名
//使用数据库:
use 数据库名
/*创建表:create table 表名(
			列名1 数据类型 约束,
			列名2 数据类型 约束,
			列名3 数据类型 约束
			)
*/
create table pubduct(
	sid int primary key auto_increment,
	sname varchar(100)
); 
//显示所有表
show tables;
//显示某个表的内容: desc 表名
desc user;
//删除表: drop tables 表名
drop tables user;
//添加列:alter table 表名 add 列名 数据类型 约束
alter table user add tel int ;
//修改列 修改列名,数据类型: alter table 表名 modify 列名 数据类型 约束
alter table user modify tel varchar(50);
//修改列名:alter table 表名 change 旧列名 新列名 数据类型 约束
alter table user change tel telphone int ;
//删除列:alter table  表名 drop 列名
alter table user drop utel;
//修改表名:rename table 表名 to 新名
rename table user to username;
//修改彩色电视,名字改为黑白电视机,价格,100
update product set pname ='黑白电视机',pprice=100 where id =6;
 
添加数据:
//insert into 表名(列名1,列名2,列名3) values (值1,值2,值3)
insert into product(pid,pname,pdes) values (5,'小米手机','性价比很高');
//insert into 表名 values (全部列的值)
insert into product values(4,'微波炉','做饭');
//批量写入:insert into 表名(列名1,列名2,列名3) values (值1,值2,值3),(值1,值2,值3);
insert into product(pname,pdes) values ('彩电','看电影'),('沙发','真皮');

更新数据:
//对数据进行更新操作:update 表名 set 列1=值1,列2=值2 where 条件
update product set pprice =1500 where id=2;
//修改彩色电视,名字改为黑白电视机,价格100
update product set pname='黑白电视机',pprice=100 where id =3;
//修改条件的写法 id=6 id<>6 id<=6 and or not
update product set pprice =100 where id=2 and id=3;
update product set pprice =100 where id in(2,3); 
update product set pprice =100 where id not in(2,3); 

删除数据:
delete from product where id =8;
truncate table 表名;truncate直接将表删除,重新建表,auto_increment重置为0,从新开始。
//dos乱码问题解决:
set names gbk;

查询数据:
//查询指定列的数据:select 列名1,列名2 from 表名
select zname,zmoney from zhangwu;
select * from zhangwu;
//查询去掉重复记录:distinct
select distinct zmoney  from zhangwu;
//查询重新命名列:as 
select zname as '名字' from zhagnwu;
//查询数据中,直接进行数学计算
select zname,zmoney+1000 as'求和' from zhangwu;

条件查询:
//查询所有吃饭支出
select * from zhangwu where zname='吃饭支出';
//查询金额大于1000
select * from zhangwu where zmoney>1000;
//BTEWEEN    and		查询出金额在2000到5000之间的商品信息
select * from zhangwu where zmoney between 2000 and 5000;
//in    查询出金额是1000,5000,3500的商品信息
select * from zhangwu where zmoney in(1000,5000,3500);
//查询出金额不是1000,5000,3500的商品信息
select * from zhangwu where zmoney NOT in(1000,5000,3500);
//like 模糊查询,配合通配符  查询出带支出两字的账务信息
select *  from zhangwu where zname like “%支出%”;
//查询账务名字,五个字符的 
select * from zhangwu where zname  like  ‘_____’;
//查询账务名,不为空的
select *from zhangwu where NOT (zname IS null);
/*查询,对结果集进行排序
升序,降序,对指定列排序
查询账务表,价格进行升序
*/
select * from zhangwu order by zmoney asC
//查询账务表,价格进行降序
select * from zhangwu order by zmoney DESC
//查询账务表,查询所有的支出,对金额降序排列
select * from zhangwu where zname like  ‘%支出%’ order by zmoney SESC

聚合函数
//Count 统计个数,对表中的数据的个数求和
//查询统计账务表中,一共有多少条数据
select  COUNT (*) as ‘count’ from zhangwu;
//sum 求和,对一列数据进行求和计算
select sum(zmoney) from zhangwu; 
//求和,统计所有支出的总金额
select sum(zmoney)  from zhangwu where zname like ‘%支出%’;
//max函数 对某列求最大数
select max(zmoney) from zhangwu;
//avg函数 计算一个列所有数据的平均数
select avg(zmoney) from zhangwu;
//分组查询 :查询所有的数据:吃饭支出 共计多少,工资收入 共计多少
select sum(zmoney),zname from zhangwu group by znamy;
//对zname内容进行分组查询求和,但是只要支出
select sum(zmoney),zname from zhangwu where zname like ‘%支出%’
group by zname
order by getsum DESC;
/*对zname内容进行分组查询求和,但是只要支出,显示金额大于5000
结果集是分组查询后,再次进行筛选,不能使用where,分组后再次过滤,使用关键字having
*/
select sum (zmoney) as ‘getsum’,zname from zhangwu where zname like ‘%支出%’
group by zname having getsum >5000;
#多表查询 内连接:得出的结果都是有数据的,没有数据的不会查询出来
select * from student,class where students.class_id = class.id;
-- 简写
select * from student s,class c where s.class_id = c.id;
-- 查看特定的列
select s.id,s.name,s.number,c.name from student s,class c where s.class.id = c.id;

-- 外连接:分为左连接和右连接
-- 左连接:保留左边表的数据
select * from student s left join studentfile sf on s.id = sf.student_id;
-- 右连接:保留右边表的数据 
select * from student s right join studentfile sf on s.id = sf.student_id; 

 

你可能感兴趣的:(Java)