MySQL經常使用sql語句大全

建立數據庫面試

1複製代碼
create database dbname;複製代碼

刪除數據庫redis

1複製代碼
drop database dbname;複製代碼

選擇數據庫數據庫

1複製代碼
use dbname;複製代碼

建立表express

12345678複製代碼
CREATE TABLE IF NOT EXISTS `book`(   `id` INT UNSIGNED AUTO_INCREMENT,   `title` VARCHAR(100) NULL,   `author` VARCHAR(40) NOT NULL,   `date` DATE,   INDEX title_index(title(100)),   PRIMARY KEY ( `id` ))ENGINE=InnoDB;複製代碼
  • AUTO_INCREMENT定義列爲自增的屬性,默認自增1,通常用做主鍵
  • NOT NULL指定該字段不能爲空, 在操做數據庫時若是輸入該字段的數據爲NULL ,就會報錯
  • PRIMARY KEY關鍵字用於定義列爲主鍵
  • ENGINE 設置存儲引擎
  • CHARSET 設置編碼
  • INDEX設置列爲普通索引、也可使用UNIQUE指定惟一索引、 FULLTEXT指定全文索引

添加表字段bash

1複製代碼
alter table book add press varchar;複製代碼

刪除表字段服務器

1複製代碼
alter table book drop press;複製代碼

修改表字段多線程

1複製代碼
alter table book modify press char;複製代碼

查看錶結構函數

1複製代碼
show columns from book;複製代碼

修改表名源碼分析

1複製代碼
alter table book RENAME TO book1;複製代碼

刪除表學習

1複製代碼
drop table book;複製代碼

建立索引

123複製代碼
create index title_index ON book(title(100)); alter table book ADD INDEX title_index(title);複製代碼

刪除索引

1複製代碼
drop index title_index ON book;複製代碼

插入數據

1234567複製代碼
insert into book values(值1,值2,....);#值的順序與字段在表中的順序一致insert into book(title,author) values('Java學習路線','Java學習錄');#爲指定字段賦值 insert into book(title,author) select title,author from test;#copy另外一張表的數據複製代碼

修改表數據

1複製代碼
update table set title='學習筆記',date='2019-05-21'複製代碼

刪除表數據

123複製代碼
truncate table book;#刪除表中全部數據delete from book where xx=yy;#根據條件刪除表中數據複製代碼

查詢

1複製代碼
select * from book;複製代碼

經常使用函數

1234567891011121314151617181920212223複製代碼
character_length("title") #字符串title的字符數concat("title","author") #將字符串title和author合併爲一個字符串concat_ws(",""title","author") #將字符串title和author合併爲一個字符串,合併時使用逗號做爲分隔符lower("title") #將字符串title的內容轉爲小寫upper("title") #將字符串title的內容轉爲大寫reverse("title") #反轉字符串titleabs("price") #求price的絕對值avg("price") #求price的平均值count("price") #求price的總記錄數max("price") #求price的最大值min("price") #求price的最小值sum("price") #求price的和rand()#返回0-1之間的隨機數adddate("date",n) #date加上n天的時間addtime("date",n) #date加上n秒的時間curdate() #當前日期current_time() #當前時間current_timestamp() #當前日期時間datediff(d1,d2) #d1和d2相隔的天數period_diff(d1,d2) #d1和d2相隔的月數subdate(d,n) #d減去n天的日期subtime(d,n) #d減去n秒的時間connection_id()#服務器當前鏈接數複製代碼

case when

123456789101112131415複製代碼
CASE expression    WHEN condition1 THEN result1    WHEN condition2 THEN result2   ..    WHEN conditionN THEN resultN    ELSE resultEND#CASE 表示函數開始#END 表示函數結束#若是 condition1 成立#則返回 result1#若是 condition2 成立#則返回 result2#當所有不成立則返回 result#而當有一個成立以後,後面的就不執行了複製代碼

IF

1複製代碼
IF(expr,v1,v2)#若是表達式 expr 成立,返回結果 v1;不然,返回結果 v2。複製代碼

IFNULL

1複製代碼
IFNULL(v1,v2)#若是 v1 的值不爲 NULL,則返回 v1,不然返回 v2複製代碼

去除結果集中的重複元素

1複製代碼
select distinct(title) from book;複製代碼

模糊查詢

123複製代碼
select * from book where title="Java%";#查詢以Java開頭的數據,只有這樣使用索引如下兩種不使用索引select * from book where title="%Java";#查詢以Java結尾的數據select * from book where title="%Java%";#查詢包含Java的數據複製代碼

合併結果集

1複製代碼
select title from book1 union select title from book2複製代碼

鏈接(left jion/right jion/jion/逗號)

1234複製代碼
select * from book1 left jion book2 where xx=yy #獲取左表全部記錄,即便右表沒有對應匹配的記錄select * from book1 right jion book2 where xx=yy #獲取右表全部記錄,即便左表沒有對應匹配的記錄select * from book1 jion book2 where xx=yy #獲取兩個表中字段匹配關係的記錄select * from book1 , book2 where xx=yy#同jion複製代碼

分組

1複製代碼
select count(*) from book group by author ='Java學習錄' #查詢公衆號Java學習錄一共寫了多少篇文章複製代碼

排序

12複製代碼
select * from book order by date ASC#默認就是ASC 可省略,按date升序排列select * from book order by date DESC#按date降序排列複製代碼

分頁

123複製代碼
select * from table limit 5; #返回前5行select * from table limit 0,5; #同上,返回前5行select * from table limit 5,10; #返回6-15行複製代碼

推薦閱讀

  1. SpringCloud學習系列彙總
  2. 爲何一線大廠面試必問redis,有啥好問的?
  3. 多線程面試必備基礎知識彙總
  4. Java集合源碼分析彙總-JDK1.8
  5. Linux經常使用命令速查-彙總篇
  6. JVM系列文章彙總

博客全部文章首發於公衆號《Java學習錄》轉載請保留 掃碼關注公衆號便可領取2000GJava學習資源

1

相關文章
相關標籤/搜索