sql中最常用的就是查询(select),下面对查询做下简单的总结。
在mysql必知必会(一)中少了更改表(alter),在这添加上。
1.更改表(alter)
添加一列
alter table user add tel char(11);
删除一列
alter table user drop column tel;
添加唯一约束
alter table user add constraint uk_name unique(name);
添加默认值
alter table alter password set default '123456';
添加非null约束
alter table user modify column name varchar(20) not null;
2.查询(select)
查询所有行
select * from user;
select id,name,password from user;
如果查询所有列应尽量避免使用通配符(*),因为这样会降低查询的性能。可以写全需要查询的字段。
去重复查询(distinct)
select distinct name from user;
限制结果,用于分页(limit)
select name from user limit 5;
select name from user limit 10,5;
第一句表示显示前5行,第二句表示从11行开始,显示5行。第一行为0.
排序(order by ASC/DESC)
select name,password from user order by id;
select name,password from user order by id desc;
select name,password from user order by name, tel;
select name,password from user order by name desc, tel;
select name,password from user order by name desc, tel desc;
asc是升序,desc是降序。
order by 默认排序是升序,即可以省略asc,但是降序时必须加上desc,如果有多个降序列,每列都要加上desc。
过滤查询
过滤查询就是在where字句中指定过滤条件。
where 支持的条件操作符有:
其中还有逻辑操作符and,or,not和in。
注意:and的优先级比or高,如果想先处理or两边的过滤条件,可以加上括号()。
select prod_name,prod_price from product where (id = 1001 or id =1002) and prod_price > 10;
select prod_name,prod_price from product where id in(1001, 1002);
select prod_name,prod_price from product where id not in(1001, 1002);
模糊查询
为在搜索字句中使用通配符,必须使用like操作符。
通配符有:
百分号(%),表示任何字符出现任何字数。
下划线(_),只能匹配单个字符。
函数放在(三)中