mysql基本命令整理

一、replace into(insert into 的加强版)mysql

replace into tbl_name(col_name, ...) values(...)
replace into tbl_name(col_name, ...) select ...
适用状况: 判断数据是否存在;若是不存在,则插入;若是存在,则更新。
replace into 跟 insert 功能相似,不一样点在于:replace into 首先尝试插入数据到表中, 若是发现表中已经有此行数据(根据主键或者惟一索引判断)则先删除此行数据,而后插入新的数据。不然,直接插入新数据。
要注意的是:插入数据的表必须有主键或者是惟一索引,不然的话,replace into 会直接插入数据,这将致使表中出现重复的数据。正则表达式

二、limit-查询返回数量限制sql

SELECT * FROM table LIMIT [offset,] rows | rows OFFSET offset 
LIMIT 接受一个或两个数字参数。参数必须是一个整数常量。
若是给定两个参数,第一个参数指定第一个返回记录行的偏移量,第二个参数指定返回记录行的最大数目。
初始记录行的偏移量是 0(而不是 1): 为了与 PostgreSQL 兼容,MySQL 也支持句法: LIMIT # OFFSET #。
mysql> SELECT * FROM table LIMIT 5,10; // 检索记录行 6-15 ,注意,10为偏移量 
//为了检索从某一个偏移量到记录集的结束全部的记录行,能够指定第二个参数为 -1:
mysql> SELECT * FROM table LIMIT 95,-1; // 检索记录行 96-last.
//若是只给定一个参数,它表示返回最大的记录行数目:
mysql> SELECT * FROM table LIMIT 5; //检索前 5 个记录行 //也就是说,LIMIT n 等价于 LIMIT 0,n。
若是你想获得最后几条数据能够多加个 order by id desc测试

mysql不支持select top n的语法,应该用这个替换:
select * from tablename order by orderfield desc/asc limit position,counter;
position 指示从哪里开始查询,若是是0则是从头开始,counter 表示查询的个数
取前15条记录:
select * from tablename order by orderfield desc/asc limit 0,15ui

三、like-模糊查询通配符使用
SQL模式
SELECT 字段 FROM 表 WHERE 某字段 Like 条件
其中关于条件,SQL提供了四种匹配模式:
1,%:表示任意个或多个字符。可匹配任意类型和长度的字符。
2,_:表示任意单个字符。匹配单个任意字符,它经常使用来限制表达式的字符长度语句:(能够表明一个中文字符)blog

注意:SQL的模式缺省是忽略大小写的
正则模式
由MySQL提供的模式匹配的其余类型是使用扩展正则表达式。当你对这类模式进行匹配测试时,使用REGEXP和NOT REGEXP操做符(或RLIKE和NOT RLIKE,它们是同义词)。
扩展正则表达式的一些字符是:
.  -匹配任何单个的字符。(单字节字符)
[...] - 一个字符类“[...]”匹配在方括号内的任何字符。例如,“[abc]”匹配“a”、“b”或“c”。为了命名字符的一个范围,使用一个“-”。“[a-z]”匹配任何小写字母,而“[0-9]”匹配任何数字。索引

* - 匹配零个或多个在它前面的东西。
^ - 匹配开头
$ - 匹配结尾ip

例如,“x*”匹配任何数量的“x”字符,“[0-9]*”匹配的任何数量的数字,而“.*”匹配任何数量的任何东西。rem

正则表达式是区分大小写的,可是若是你但愿,你能使用一个字符类匹配两种写法。例如,“[aA]”匹配小写或大写的“a”而“[a-zA-Z]”匹配两种写法的任何字母。it

四、建立表

create table blog_article
(
  article_Id int unsigned not null  auto_increment,
  article_title varchar(20) not null unique,
  article_content longtext not null,
  article_date datetime not null,
  article_readTime int unsigned not null default 0,
  user_Name char(15) not null,
  category_Name char(18) not null,
  primary key(article_Id),
  foreign key(user_Name) references blog_user(user_Name) on delete cascade on update cascade,
  foreign key(category_Name) references blog_category(category_Name) on delete cascade on update cascade

)engine=innodb default charset=utf8 auto_increment=1;
 create table tb_equipment
(  e_id int unsigned not null  auto_increment,  e_name varchar(20) not null unique,  e_value longtext not null,  e_categoryid varchar(50) null,  e_assetclassname varchar(20),  e_version char(15) not null,  e_brand char(18) not null,  primary key(e_id ),)engine=innodb default charset=utf8 auto_increment=1;
相关文章
相关标签/搜索