mysql概括

索引:
是指把你设置为索引的字段A的内容储存在一个独立区间S里,里面只有这个字段的内容。在找查这个与这个字段A的内容时会直接从这个独立区间里查找,而不是去到数据表里查找。找到的这些符合条件的字段后再读取字段A所指向真实的数据记录的物理地址,再把对应的数据内容输出。如果你查找的不是索引的字段那么他会从数据表里面查找。因为数据表有很多不相关的字段,数据库程序是不会省略不查找。要判断那些不相关的字段以及多次在记录中跳转是花费一定的资源的。当然不是设置越多索引就越好。因为索引都放到这个独立区间S,独立区间S越大搜索所占的资源就越大。如果你只有一个字段为索引,那么你搜索这个字段是非常快速的。 建立索引的目的是加快对表中记录的查找或排序。为表设置索引要付出代价的:一是增加了数据库的存储空间,二是在插入和修改数据时要花费较多的时间(因为索引也要随之变动)。索引的好处在于可以将指定列进行排序,提高检索的速度。
游标:
游标实际上是一种能从包括多条数据记录的结果集中每次提取一条记录的机制。使用游标(cursor)的一个主要的原因就是把集合操作转换成单个记录处理方式。用SQL语言从数据库中检索数据后,结果放在内存的一块区域中,且结果往往是一个含有多个记录的集合。游标机制允许用户在SQL server内逐行地访问这些记录,按照用户自己的意愿来显示和处理这些记录。
mysql中select * for update
作用为锁定该语句所选择到的对象。防止在选择之后别的地方修改这些对象造成数据不一致。要保证在统计(查询)执行过程中,记录不被其他用户更新,则可以使用For update子句进行加锁。这样在这个锁释放前其他用户不能对这些记录作update、delete和加锁。
AND和OR关键字
实例1
使用OR关键字查询employee表中的记录。查询条件为num取值在(1,2,3)集合中,或者age的范围为24~26,或者homeaddress的取值中包含“厦门市”。SELECT语句的代码如下:
SELECT * FROM employee WHERE
num IN(1,2,3) OR age BETWEEN 24 AND 26
OR homeaddress LIK ‘%厦门市%’;
结果显示,只要符合这3个条件表达式中的任意一个条件,这样的记录就会被查询出来。
OR可以和AND一起使用。当两者一起使用时,AND要比OR先运算。
实例2
使用OR和AND关键字查询employee表中的记录。SELECT语句的代码如下:
SELECT * FROM employee WHERE num IN(1,3,4) AND age=25 OR sex=’女’;
结果显示,只要符合num IN(1,3,4) AND age=25的记录或者符合sex=’女’的记录都被显示了出来。
如果将条件的顺序换一下,将SELECT语句变成下面的情况:
SELECT * FROM employee WHERE sex=’女’ OR num IN(1,3,4) AND age=25;结果显示,与前面的SELECT语句的执行结果是一样的
模糊查询
% _ [] [^] 四种用法
%:
表示任意0个或多个字符。可匹配任意类型和长度的字符,有些情况下若是中文,请使用两个百分号(%%)表示。
比如 SELECT * FROM [user] WHERE u_name LIKE ‘%三%’
将会把u_name为“张三”,“张猫三”、“三脚猫”,“唐三藏”等等有“三”的记录全找出来。
另外,如果需要找出u_name中既有“三”又有“猫”的记录,请使用and条件
SELECT * FROM [user] WHERE u_name LIKE ‘%三%’ AND u_name LIKE ‘%猫%’
_:
表示任意单个字符。匹配单个任意字符,它常用来限制表达式的字符长度语句:
比如 SELECT * FROM [user] WHERE u_name LIKE ‘
只找出“唐三藏”这样u_name为三个字且中间一个字是“三”的;
[ ]:
表示括号内所列字符中的一个(类似正则表达式)。指定一个字符、字符串或范围,要求所匹配对象为它们中的任一个。
比如 SELECT * FROM [user] WHERE u_name LIKE ‘[张李王]三’ 将找出“张三”、“李三”、“王三”(而不是“张李王三”);
如 [ ] 内有一系列字符(01234、abcde之类的)则可略写为“0-4”、“a-e”
SELECT * FROM [user] WHERE u_name LIKE ‘老[1-9]’ 将找出“老1”、“老2”、……、“老9”;
[^ ] :
表示不在括号所列之内的单个字符。其取值和 [] 相同,但它要求所匹配对象为指定字符以外的任一个字符。
比如 SELECT * FROM [user] WHERE u_name LIKE ‘[^张李王]三’ 将找出不姓“张”、“李”、“王”的“赵三”、“孙三”等;
SELECT * FROM [user] WHERE u_name LIKE ‘老[^1-4]’; 将排除“老1”到“老4”,寻找“老5”、“老6”、……
limit
limit是MySQL的语法
select * from table limit m,n
其中m是指记录开始的index,从0开始,表示第一条记录
n是指从第m+1条开始,取n条。
select * from tablename limit 2,4
即取出第3条至第6条,4条记录。
MySQL中怎么对varchar类型排序问题
参考:http://blog.youkuaiyun.com/sunhuaqiang1/article/details/47090285
多表查询
参考:http://blog.youkuaiyun.com/sunhuaqiang1/article/details/47090321

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值