由于没有系统学过mysql,之前自己看的相关ppt资料也是囫囵吞枣式的,对视图、游标、事物什么的理解都不是很深刻。特意找了本基础的书(《mysql必知必会》)看了下。
常用命令关键词
登录账户:mysql -u username
显示库的信息:show databases
操作库之前选择对应的库:use database_name
显示库中的表: show tables
显示表的列: show columns from table_name 或 describe table_name
正则表达式查找: REGEXP (用法同LIKE,只不过关键词右边跟的是正则串)
mysql函数
字符串
字符串连接: concat(str…)
串左边字符: left(str,len)
串右边字符: right(str,len)
串长度:length(str)
字串位置 : locate(substr,str)
将串转小写:lower(str)
将串转大写:upper(str)
去全部空格:trim(str)
去左边空格:ltrim(str)
去右边空格:rtrim(str)
返回子串:substirng(str FROM pos FOR len)
soundex发音值:soundex(str)
日期
增加时间:Date_add(date,interval expr type)
当前日期+时间:now()
当前日期:curdate()
当前时间:curtime()
返回日期部分:Date(expr)
返回时间部分:Time(expr)
返回年份部分:year(expr)
返回月份部分:month(expr)
返回天数部分:day(expr)
返回分钟部分:month(expr)
返回秒数部分:second(expr)
返回日期之差(result_type:day):dateDiff(expr1,expr2)
时间格式化:date_format(date,format)
返回星期几:dayOfWeek(date) [1=星期日,2=星期一…7=星期六]
全文本查找
需要为被搜索列建立FULLTEXT索引,并且引擎为MYISAM; 建表语句例如:
文本查找语句则为:
视图
主要用来简化复杂查询语句,创建可重用的 “sql查询接口”,至于更新操作(包括插入,删除)则取决于视图建立条件,如果采用聚合函数、group by等就不允许更新。(更新视图实质上是对原表进行更新,不确定具体字段 自然不会允许更新)
创建视图:
存储过程
实质上是sql中的函数,主要用于处理复杂的sql业务(高效,安全)。例如用户商品下单时对库存商品进行一系列处理,检查商品,预定商品,更新库存数目等等 一系列流程就可采用存储过程实现。
创建过程中IN代表函数接收参数,OUT是返回结果,INOUT则复合了IN、OUT的特性。
显示存储过程信息:
|
|
创建存储过程:
|
|
执行存储过程:
|
|
调用函数结果:
|
|
游标
实质上是存储了数据序列的结果集,在mysql中只能用于存储过程中
|
|
触发器
将事件与sql执行状况绑定,可使用NEW、OLD虚拟表访问具体操作的字段值
|
|
|
|