mysql中column的用法_关于MySQL的一些用法
關于MySQL的一些用法
1.DBMS
1.1基于共享文件系統的DBMS
例如:Microsoft Access和FileMaker
用于桌面用途,通常不用于高端或更關鍵的應用。
1.2基于客戶機-服務器的DBMS
例如:MySQL、Oracle、Microsoft SQL Server
服務器:負責所有數據訪問和處理的一個軟件,這個軟件運行在稱為數據庫服務器的計算機上。與數據文件打交道的只有服務器軟件,關于數據、數據添加、刪除和數據更新的所有請求都由服務器軟件完成。
客戶機:與用戶打交道的軟件,客戶機通過網絡提交請求給軟件服務器,服務器軟件處理請求,把結果送到客戶機軟件。
2.Mysql administrator
圖形交互客戶機,簡化MySQL服務器管理
提示輸入服務器和登錄信息(允許保存服務器定義供以后使用),然后顯示允許選擇不同視圖的圖標:
Server Information(服務器信息)顯示客戶機和被連接的服務器的狀態和版本信息;
Service Control(服務控制)允許啟動和停止MySQL以及指定服務器特性;
User Administration(用戶管理)用來定義MySQL用戶、登錄和權限;
Catalogs(目錄)列出可用的數據庫并允許創建數據庫和表。
3.如何使用mysql
3.1選擇數據庫
#選擇數據庫test
USE test;
3.2顯示數據庫數據
#顯示所有的數據庫
SHOW DATABASE;
#顯示test數據庫的tables
USE test;
SHOW TABLES;
#顯示test數據庫中table1表的columns
USE test;
SHOW COLUMNS FROM table1;
#或者直接用下面的語句操作顯示columns
USE test;
DESCRIBE table1;
#顯示服務器狀態信息
SHOW STATUS;
#顯示創建特定數據庫
SHOW CREATE DATABASE;
#顯示創建特定表
SHOW CREATE TABLE;
#顯示授權用戶
SHOW GRANTS;
#顯示服務器錯誤或警告信息
SHOW ERRORS;
SHOW WARNINGS;
#查看所有的show語句
HELP SHOW;
3.3檢索數據
#注意多條sql語句是以;結尾的,且sql語句不區分大小寫
#可以考慮所有SQL關鍵字用大寫,而對所有列和表名使用小寫
USE test;
#檢索test數據庫table1表的column1列
SELECT column1
FROM table1;
#檢索多個列
SELECT column1,column2,column3
FROM table1;
#檢索所有列
SELECT *
FROM table1;
#檢索不同的行
#注意不能部分使用DISTINCT,例如兩個column,兩個中的任何一個不同都會顯示出來
SELECT DISTINCT column1
FROM table1;
#注意檢索出來的第1行為行0
#限制結果,顯示前5行
SELECT column1
FROM table1
LIMIT 5;
#指定檢索開始的行和行數,從行5開始的5行
SELECT column1
FROM table1
LIMIT 5,5;
#或者下面
#從行5開始取5行
LIMIT 5 OFFSET 5
#使用完全限定的表明和列名
SELECT table1.column1
FROM test.table1;
3.4排序檢索數據
#ORDER BY子句位置: 位于FROM子句后,LIMIT子句前,如果有WHERE子句,位于WHERE之后
USE test;
#按照column1列排序
#按照多個列排序,逗號隔開就可以,但有排序優先性
#默認升序(ASC)排列
SELECT *
FROM table1
ORDER BY column1;
#指定降序排列
SELECT *
FROM table1
ORDER BY column1 DESC;
#再多個列上降序排列,需要對每個列指定DESC
#混合排序,column1降序排列,再對column2排序
SELECT *
FROM table1
ORDER BY column1 DESC,column2;
3.5過濾數據
#MySQL執行匹配時不區分大小寫
#條件過濾檢索
USE test;
#顯示column1=1的數據
SELECT *
FROM table1
WHERE column1=1;
#WHERE子句操作符
# =、<>、!=、、>=、BETWEEN AND
#空值檢查
WHERE column1 IS NULL;
3.6數據過濾
#優先處理AND操作符,復雜操作使用括號明確分組
USE test;
#AND操作符,同時滿足多個條件
SELECT *
FROM table1
WHERE column1=1 AND column2<=2;
#OR操作符,滿足其中的一種條件
SELECT *
FROM table1
WHERE column1=1 OR column2<=2;
#IN操作符
#適用情況:在使用長的合法選項清單時;計算次序容易管理;執行速度塊;可以包含其他SELECT語句
SELECT *
FROM table1
WHERE column1 IN(1,2);
#NOT操作符
#匹配column1不等于1和2的
SELECT *
FROM table1
WHERE column1 NOT IN(1,2);
3.7通配符過濾
#LIKE操作符
USE test
#百分號(%)通配符,區分大小寫,可以匹配0個字符,但是不能匹配NULL
#檢索任意以he起頭的詞
#搜索模式'he%'
SELECT *
FROM table1
WHERE column1 LIKE 'he%';
#多個通配符,任意位置包含hello的
SELECT *
FROM table1
WHERE column1 LIKE '%hello%';
#下劃線(_)通配符
#只匹配單個字符(不能多也不能少)
SELECT *
FROM table1
WHERE column1 LIKE '_ hello';
#輸出:
column1????? column2
1???????? a hello
2???????? b hello
#通配符技巧
#所花費時間長
#優先選擇其他操作達到目的
#盡量不要放在搜索開始處
3.8正則表達式進行搜索
#用途:
#提取電話號碼;查找名字中有數字的;
#文本塊中找到所有重復單詞;替換頁面中所有URL為這些URL的上實際HTML鏈接
#不區分大小寫,想要區分使用BINARY關鍵字:WHERE column1 REGEXP BINARY 'hello .00'
USE test;
#檢索column1包含文本100的所有行
SELECT *
FROM table1
WHERE column1 REGEXP '100'
ORDER BY column1;
#.是正則表達式語言中一個特殊的字符,表達匹配任意一個字符
SELECT column1
FROM table1
WHERE column1 REGEXP '.00';
輸出:
column1
a hello 100
b hello 200
#LIKE '100'與REGEXP '100'的區別:
LIKE匹配整個列,對應列值完全相等才會匹配,REGEXP則是包含就匹配
#進行OR匹配
SELECT column1
FROM table1
WHERE column1 REGEXP '100|200'
ORDER BY column1 DESC;
輸出:
column1
hello 200
hello 100
#匹配幾個字符之一
#正則表達式[123]表示:匹配1或2或3
#[]是另一種形式的OR語言
SELECT column1
FROM table1
WHERE column1 REGEXP '[123] hello'
ORDER BY column1 DESC;
輸出:
column1
2 hello z
1 hello s
#使用'1|2|3 hello'
#這里的意思是:'1'或'2'或'3 hello'
SELECT column1
FROM table1
WHERE column1 REGEXP '1|2|3 hello'
ORDER BY column1;
輸出:
1 hello z
2 hello s
world 100
world 200
#否定字符集匹配
SELECT column1
FROM table1
WHERE column1 REGEXP '[^123] hello'
ORDER BY column1 DESC;
#匹配范圍
#[1-3]、[6-9]、[a-z]
SELECT column1
FROM table1
WHERE column1 REGEXP '[1-5] hello'
ORDER BY column1;
輸出:
.5 hello a
1 hello z
2 hello s
#匹配特殊字符
#因為.匹配任意字符,因此每個行都被檢索
#匹配特殊字符必須用\\為前導,\\-表示查找-,\\.表示查找.。
#正則表達式中具有特殊意義的所有字符都必須用\\轉義字符,包括.、|、[]
#\\也用來引用元字符:
\\f??? 換頁
\\n??? 換行
\\r??? 回車
\\t??? 制表
\\v??? 縱向制表
SELECT column1
FROM table1
WHERE column1 REGEXP '\\.'
ORDER BY column1;
3.9創建計算字段
mysql的不同之處:多數DBMS使用+號來實現拼接,mysql則使用concat函數來實現,當把sql語句轉換成mysql語句時一定要記得這個區別
USE test;
#檢索后輸出:column1(column2)這樣的格式
SELECT Concat(column1,'(',column2,')')
FROM table1
ORDER BY column1;
#Concat()需要一個或多個指定的串,各個串之間用逗號分隔
#通過刪除數據右側多余的空格來整理數據
#RTrim()函數去掉右邊的所有空格
SELECT Concat(RTrim(column1),'(',RTrim(column2),')')
FROM table1
ORDER BY column1;
#LTrim()函數去掉左邊的空格,Trim()函數去掉兩邊的空格
#使用別名(alias),一個字段或值的替換名
#用AS關鍵字賦予
SELECT Concat(RTrim(column1),'(',RTrim(column2),')') AS column_title
FROM table1
ORDER BY coulmn1;
#別名用途:重命名包含不符合規定字符的實際表列名;在原來的名字含混或容易誤解時擴充它;有時稱為導出列
#執行算術計算
SELECT column1,column2,column1*column2 AS column_sum
FROM table1;
MySQL算術操作符:
操作符??? 說明
+?????? 加
-?????? 減
*?????? 乘
/?????? 除
#測試計算
SELECT 3*2;
#測試Trim()函數
SELECT Trim(' abc ');
#測試Now()函數,返回當前日期和時間
SELECT Now();
3.10使用數據處理函數
大多數SQL實現支持的函數類型:
用于處理文本串(如刪除或填充值,轉換值為大寫或小寫)的文本函數;
用于在數值數據上進行算術操作(如返回絕對值,進行代數運算)的數值函數;
用于處理日期和時間值并從這些值中提取特定成分(例如,返回兩個日期之差,檢查日期有效性等)的日期和時間函數;
返回DBMS正使用的特殊信息(如返回用戶登錄信息,檢查版本細節)的系統函數
文本處理函數
USE test;
#Upper()將文本轉換為大寫
SELECT column1,Upper(column1) AS column1_upcase
FROM table1
ORDER BY column1;
輸出:
column1?? column1_upcase
abc?? ?????? ABC
def????????? DEF
常用的文本處理函數
函數
說明
Left()
返回串左邊的字符
Length()
返回串的長度
Locate()
找出串的一個子串
Lower()
將串轉換為小寫
LTrim()
去掉串左邊的空格
Right()
返回串右邊的字符
RTrim()
去掉串右邊的空格
Soundex()
返回串的SOUNDEX值
SubString()
返回字串的字符
Upper()
將串轉換為大寫
SOUNDEX:將文本串轉換為發音描述,可以查找出發音類似的不同值
#Sundex()函數
SELECT column1,column2
FROM table1
WHERE Soundex(column1)=Soundex('Y Lie');
輸出:
column1?? column2
Inc????? Y Lee
日期和時間處理函數
#使用Date()函數
SELECT column1,column2
FROM table1
WHERE Date(coulmn_date)='2019-09-02';
#Date()函數返回日期時間的日期
#雖然可能column_date為日期,但最好還是用Date()函數
#Time也同樣類似
#日期格式:yyyy-mm-dd
#時間格式:00:00:00
#檢索2019年9月下的數據
SELECT column1,column2
FROM table1
WHERE Year(coulmn_date)='2019' AND Month(column_date)='9'BETWEEN '2019-09-01' AND '2019-09-30';
#或者下面不用考慮每個月多少天
SELECT column1,column2
FROM table1
WHERE Year(coulmn_date)=2019 AND Month(column_date)=9;
總結
以上是生活随笔為你收集整理的mysql中column的用法_关于MySQL的一些用法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: CHD6.3环境中,集中kylin3.0
- 下一篇: GDT、LDT详解