在MySQL命令行输入:mysql> show variables like 'character_set_%';查看当前配置的编码; 在命令行插入或查询数据之前,先执行命令set names gbk;或者set names gb2312;然后再插入或查询数据,完了之后再set names utf8524(8)
一、mysql查询的五种子句 where(条件查询)、having(筛选)、group by(分组)、order by(排序)、limit(限制结果数) 二、mysql子查询 1、where型子查询 2、from型子查询 3、exists型子查询 三、union的用法 四、左连接,右连接,内连接522(4)
LIKE匹配整个列值;而REGEXP匹配列值的子串; 默认MySQL中的正则表达式匹配不区分大小写,可使用BINARY关键字区分大小写; 进行OR匹配:为搜索两个串之一,使用| ; 匹配几个字符之一:匹配任何单一字符,[]是另一种形式的OR语句。 可使用-来定义一个范围,如[1-9],[a-b]。 为了匹配特殊字符,必须用\\为前导,例如\\-,\\.等。 为了更方便工作,可以使用预定义的字符集,称为字符类(character class),如[:digit:]; 使用正则表达式重复元字符匹配多个实例 select * from students where name1 REGEXP 'm{2}'; 定位符(为了匹配特定位置的文本)select * from students where name1 REGEXP 'c$'; 简单的正则表达式测试:可以在不使用数据库表的情况下用SELECT来测试正则表达式,REGEXP检查总是返回0或1(匹配)。517(4)
事务(transaction)指一组SQL语句; 回退(rollback)指撤销指定SQL语句的过程; 提交(commit)指将未存储的SQL语句结果写入数据库表; 保留点(savepoint)指事务处理中设置的临时占位符(placeholder),可以对它发布回退(与回退整个事务处理不同)。 1、开始事务 START TRANSACTION; 2、使用ROLLBACK ROLLBACK命令用来回退(撤销)MySQL语句: 3、使用COMMIT 4、使用保留点 创建保留点:SAVEPOINTsap_name; 回退至保留点:ROLLBACK TOsap_name; 释放保留点:RELEASEsp_name; 516(8)
1.创建触发器: create trigger trigger_name (BEFORE|AFTER) (delete|update|insert) on table_name for each row -- 这句话在mysql是固定的 BEGIN 要触发的sql语句; END; 2.删除触发器 drop trigger t_trig; 3、查看触发器 show triggers; 二、实例 规则: 对于insert而言,新插入的行用new来表示,行中的每一列的值用new.列名来表示。 对于delete而言:原本有一行,后来被删除,想引用被删除的这一行,用old来表示,old.列名可以引用被删除的行的值。 对于update而言:被修改的行,修改前的数据,用old来表示,old.列名引用被修改之前行中的值;修改的后的数据,用new来表示,new.列名引用被修改之后行中的值。 三、before和after的区别 after是先完成数据的增删改,再触发;before是先完成触发,再增删改; 另一个区别: before:(insert、update)可以对new进行修改。 after不能对n
多对多关系表
1、创建视图 create view view_name AS select 语句 2、查看创建视图的语句 SHOW CREATE VIEW viewname; 3、删除视图 DROP VIEW viewname;524(16)
1、创建存储过程 create procedure sp_test() begin select name,classes_name from student222; end 2、执行存储过程 call sp_test; 3、删除存储过程 drop procedure if exists sp_test; 4、查看存储过程创建信息 show create procedure sp_test; 5、查看存储过程状态 show procedure status like 'sp_test'; 6、使用存储过程参数 (1)IN参数:只用来向过程传递信息,在MySQL存储过程内部可能会修改此参数,但in类型参数的修改对调用者(caller)来说是不可见的。 (2)OUT参数:只用来从过程传回信息,传值给调用者,在存储过程内部,该参数初始值为 null,无论调用者是否给存储过程参数设置值。 (3)INOUT参数可以向过程传递信息,也可以从存储过程内部传值给调用者。 create procedure sp_type_cnt(IN in_type va
一、自定义函数(UDF)的特性和功能 函数能返回字符串,整数或实数; 可以定义一次作用于一行的简单函数,或作用于多行的组的集合函数; 二、基本操作 1、创建自定义函数 CREATE [AGGREGATE]FUNCTION function_name RETURNS {STRING|INTEGER|REAL} BEGIN //函数实现的语句 END; 实例:创建一个自定义函数:将传递进来的值加上1~100的随机数作为返回值返回 2、使用自定义函数 select fun_add_round(quantity) from t_goods; 3、删除自定义函数 drop function if exists fun_add_round; 4、查看自定义函数创建信息 show create function fun_add_round 5、查看自定义函数状态 show function status like 'f
归纳: 1.获取某节点(左值为2、右值为11)的子孙节点算法: 所有左值大于等于该节点左值,并且右值小于等于该节点右值的节点都是该节点的子孙节点;select * from treelevel where Lft<=2 and Rgt>=11; 或者所有左值介于该节点左值与该节点右值之间的节点都是该节点的子孙节点 select * from treelevel where Lft between 2 and 11; 2.某个节点一共有多少个子孙节点: 子孙总数 = (右值 – 左值– 1) / 2,以Fruit为例,其子孙总数为:(11 –2 – 1) / 2 = 4。 3.节点在树中所处的层次: select count(*) from treelevel where Lft <= 2 AND Rgt >=11 4.获得某节点的祖先节点: SELECT * FROM treelevel WHERE Lft < 2 AND Rgt > 11 5.在某节点下插入一个子节点: 先获取该节点的右值right1; update treelevel se
Order by语句是用来排序的,默认为升序排序(即:从1到9,从a到z),order by desc为降序排序 实例:取出每个分类中最新的内容 (1)where+group by(对小组进行排序) select * from test where id in(select SUBSTRING_INDEX(group_concat(id order by `date` desc),',',1) from `test` group by category_id) order by date desc; (2)从from返回的数据下手脚(即用子查询) select * from (select * from `test` order by `date` desc) `temp` group by category_id order by `date` desc 518(16)
delete from tablename 可以使用where对要删除的记录进行选择,更灵活,但执行的速度不快 truncate table tablename 将删除表中的所有记录,执行得非常快61(32)
1.AUTO_INCREMENT的介绍及使用; 2.分别对于MyISAM表及InnoDB表使用UPDATE更新自增列的情况分析; 3.分别使用delete及truncate删除数据表时,对自增列的不同影响; 4.last_insert_id()函数的使用 5.修改AUTO_INCREMENT字段的起始值 6.auto_increment_increment & auto_increment_offset 两个变量的使用517(16)
1.key与primary key区别; 2.KEY与INDEX区别611(32)
mysql约束 1、not null:非空约束,指定某列不为空 2、unique:唯一约束,指定某列和几列组合的数据不能重复 3、primary key:主键约束,指定某列的数据不能重复、唯一 4、foreign key:外键,指定该列记录属于主表中的一条记录,参照另一条数据611(32)
Copyright © 2005-2024 51CTO.COM 版权所有 京ICP证060544号