mysql必知必会02
创建计算字段
计算字段:+,-,*,/
拼接字段:select concat(vend_name,'(',vend_country,')') as vend from table;
使用数据处理函数
文本处理函数
Upper():转大写
Lower():转小写
Left():返回串左边的字符
Right():返回串右边的字符
Length():返回串的长度
Locate():找出串中的一个子串
LTrim():去掉左边的空格
RTrim():去掉串尾空格
Soundex():返回串的soundex值(发音类似)
SubString():返回子串的字符
日期处理函数:AddDate(),AddTime(),CurDate(),CurTime(),Date(),DateDiff(),Date_add(),date_Format(),Day(),Year(),Hour(),DayOfWeek(),Now()...
数值处理函数
abs(),Cos(),Exp(),Mod(),Pi(),Rand(),Sin(),Sqrt(),Tan(),...
汇总数据
聚集函数
AVG(),COUNT(),MAX(),MIN(),SUM(),
分组数据
graup by column
过滤分组条件关键字不用where用having
where是在分组之前过滤,having是在分组之后过滤,两者使用方式相同
select子句顺序:
select ->from-> where-> group by->having->order by->limit
子查询
常用操作符:where in
联结表
外键
苗卡儿积
等值联结|内部联结:inner join
创建高级联结
使用表别名 as
使用不同类型的联结
自联结
自然联结
外部联结
right outer join | right join
left outer join | left join
full outer join | full join
组合查询
union:两条或多条select语句之间用Union关键字链接
查询一个表|多个表
全文本搜索
必须使用MyISAM引擎
select Match() Against()
开启全文本搜索
create table tablename(
id int not null auto_increment,
..
note_text null,
primary key(id),
FULLTXEX(note_text)
)ENGINE=MyISAM;
使用:
select note_text from tablename where Match(note_text) Against('rabbit');
排序:
select note_text,Match(note_text) Against('rabbit') AS rank from tablename;
# 名为rank的计算全文本搜索的等级值
使用查询扩展
select note_text from tablename where Match(note_text) Against('rabbit' WITH QUERY EXTENSION);
布尔文本搜索 IN BOOLEAN MODE
select note_text from tablename where Match(note_text) Against('rabbit*' IN BOOLEAN MODE);
布尔操作符:+,-,>,<,(),~,*,""
插入数据
insert into table values();
insert into table() values();
insert into table() values()();
insert into table() select ...from table2;
更新数据
update table set 字段=值,字段2=值2 where 条件;
update ignore table set 字段=值,字段2=值2 where 条件; //忽略错误继续更新
删除数据
delete from table where 条件;
truncate table ;//删除原来的表并重新创建一个表(速度快)
创建和操纵表
create table
primary key
auto_increment
default
engine
引擎类型:
InnoDB/MyISAM/MEMORY
更新表:alter table
add
drop
删除表: drop table
重命名表:rename old to new,old1 to new1;