mysql必知必会(二)

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 支持的条件操作符有:

  1. = 等于
  2. <> 不等于
  3. ! 不等于
  4. < 小于
  5. > 大于
  6. <= 小于等于
  7. >= 大于等于
  8. between 在指定的两个值之间

其中还有逻辑操作符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操作符。
通配符有:
百分号(%),表示任何字符出现任何字数。
下划线(_),只能匹配单个字符。

  • 不要过度使用like,如果其他操作符可以完成就使用其他操作符
  • 通配符搜索使用的时间比较长
  • 尽量不要把通配符放在where字句的开始处。

函数放在(三)中

你可能感兴趣的:(mysql,select)