1.MySQL注释语法--,#
2.2.后缀是.sql的文件是数据库查询文件。
3.保存查询。 关闭查询时会弹出提示是否保存,保存的是这段文字,不是表格(只要是执行成功了表格已经建立了)。保存以后下次再查询的话列表里面会出现保存的表格,双击就可以打开文字,看到以前写的内容。
CRUD操作:
create 创建(添加)
read 读取
update 修改
delete 删除
1、添加数据
insert into Info values('p009','张三',1,'n001','2016-8-30 12:9:8') ;
给特定的列添加数据
insert into Info (code,name) values('p010','李四');
自增长列的处理
insert into family values('','p001','数据','T001','数据',1);
insert into 表名 values(值)
2、删除数据
删除所有数据
delete from family
删除特定的数据
delete from Info where code='p001'
delete from 表名 where 条件
3、修改数据
修改所有数据
update Info set name='徐业鹏'
修改特定数据
update Info set name='吕永乐' where code='p002'
修改多列
update Info set name='吕永乐',sex=1 where code='p003'
update 表名 set 要修改的内容 where 条件
4、读取数据
(1)简单读取,查询所有列(*) 所有行(没有加条件)
select * from Info
(2)读取特定列
select code,name from Info
(3)条件查询
select * from Info where code='p003'
(4)多条件查询
select * from Info where code='p003' or nation='n002' #或的关系
select * from Info where sex=0 and nation='n002' #与的关系
(5)关键字查询(模糊查询)
查所有包含奥迪的汽车
select * from car where name like '%奥迪%'; #百分号%代表任意多个字符
查以'皇冠'开头的所有汽车
select * from car where name like '皇冠%';
查询汽车名称中第二个字符是'马'的
select * from car where name like '_马%'; #下划线_代表任意一个字符
(6)排序查询
select * from car order by powers #默认升序排列
select * from car order by powers desc #升序asc 降序 desc
先按brand升序排,再按照price降序排
select * from car order by brand,price desc
MySQL之修改表中的列
修改表中列的语法:
一张表,创建完毕,有了N列。之后还可以增加或删除或修改列
增加表中列的语法:
alter table 表名 add 列名称 列类型 列参数; [这样加的列在表的最后]
例:alter table family add age int
alter table 表名 add 列名称 列类型 列参数 after 某列; [新列加在某列后]
例:alter table m1 add username char(20) not null default '';
如果想增加一列,并位于表的最前面,用first
alter table 表名 add 列名称 列类型 列参数 first;
例:alter table m1 add pid int not null first;
上面红色字体效果运行后不起作用,可以在表格中拖动列的位置放在目标位置。
删除表中列的语法:
alter table 表名 drop 列名
例:alter table family drop age
修改表中列类型的语法:
alter table 表名 modify 列名 新类型 新参数;
例:alter table family modify age varchar
修改表中列名及类型的语法:
alter table 表名 change 旧列名 新列名 新类型 新参数;
例:alter table family change name mingzi varchar(20)
(7)范围查询
select * from car where price>40 and price<60 --查询价格在40-60之间的
select * from car where price between 40 and 60 --between...and...
(8)离散查询 查询离散值,例如查询汽车价格是30、40、50、60等整数的
select * from car where price=30 or price=40 or price=50 or price=60;
select * from car where price in(30,40,50,60)
select * from car where price not in(30,40,50,60) --价格除30,40,50,60以外的数的
(9)聚合函数(统计查询)
select count(*) from car --查询这张表里面有多少数据。count方法可以用来求条数
select count(code) from car #取所有的数据条数。code为主键,内容不为空,可以用code查询。
select sum(price) from car #求价格总和
select avg(price) from car #求价格的平均值
select max(price) from car #求最大值
select min(price) from car #求最小值
数据查询原理:数据库在查询数据的时候会每一条数据都会查一遍,查询的时候如果条件成立,会返回数据true,如果不成立,会返回false。如果返回的是true,就会选取这条数据,如果返回的是false,就pass掉这条数据。例如,如果select * from car where 1=1,输出的会是表格的所有数据,因为1=1恒满足条件。
(10)分页查询 每一页有很多数据,可以查看下一页的数据。
select * from car limit 0,10 #分页查询,跳过几条数据(0) 取几条(10)
规定一个每页显示的条数:m
当前页数:n
select * from car limit (n-1)*m,m 取第n页显示的m条数据
(11)去重查询
select distinct brand from car --distinct表示去重,前面代码表示对brand列去重查询
去重查询适合查1列,查2列就不适合用了。
(12)分组查询
查询汽车表中,每个系列下汽车的数量。按照brand分组。
select brand,count(*) from car group by brand
分组之后,只能查询该列或聚合函数
取该系列价格平均值大于40的系列代号
select brand from car group by brand having avg(price)>40
取该系列油耗最大值大于8的系列代号
select brand from car group by brand having max(oil)>8