数据库点点

数据库在进行字符患上 比较时,默认会去掉字符串尾部的空格,且大小写不敏感,即:

select 'a'='a   '; selct 'aa'='AA';结果都是1;但selct 'a'=' a';结果为0,字符串前面的空格不保留。


多表查询:

left join以左表为基础,即左表内容,右表匹配不上的显示NULL,如果where字句包含了右表信息,刚右表匹配不上的则舍弃该行。就类似inner join。

right join类似如上

inner join左右两表交集。


主键和索引:

所谓主键,就是可以唯一标识表中一行记录的属性或属性组。一个表只能有一个主键,但可以有多个索引。

***主键可以保证记录的唯一及非空,数据库管理系统会为主键自动生成唯一索引,所以主键是一种特殊的索引。

***主键是逻辑键,而索引是物理键,也即主键不实际存在,而索引实际存在数据库中。


索引,用来快速地查找那些具有特定值的记录,MYSQL索引都是用B树形式存储。

***对于索引中的每一项,MySQL在内部为它保存一个数据文件中实际记录所在位置的“指针”。当使用索引查找时会先查找索引表,然后再根据查出的结果找到数据表中对应的记录。

***索引分为:普通索引、唯一索引(UNIQUE)、主键、全文索引。

***索引也还有个称为最左前缀(Leftmost Prefixing)的概念,意即,如果我们有一个firstname、lastname、age列上的多列索引,我们称这个索引为fname_lname_age。当搜索条件是以下各种列的组合时,MySQL将使用fname_lname_age索引:
firstname,lastname,age
firstname,lastname
firstname
从另一方面理解,它相当于我们创建了(firstname,lastname,age)、(firstname,lastname)以及(firstname)这些列组合上的索引。下面这些查询都能够使用这个fname_lname_age索引。

***另MySQL只有对以下操作符才使用索引:<,<=,=,>,>=,BETWEEN,IN,以及某些时候的LIKE。可以在LIKE操作中使用索引的情形是指另一个操作数不是以通配符(%或者_)开头的情形。例如,“SELECT peopleid FROM people WHERE firstname LIKE 'Mich%';”这个查询将使用索引,但“SELECT peopleid FROM people WHERE firstname LIKE '%ike';”这个查询不会使用索引。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值