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;
相關文章
相關標籤/搜索