您的位置:首页 > 数据库 > MySQL

mysql必知必会(二)

2015-07-09 23:28 597 查看
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 支持的条件操作符有:

= 等于

<> 不等于

! 不等于

< 小于

> 大于

<= 小于等于

>= 大于等于

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字句的开始处。

函数放在(三)中
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: