mysql資料庫的使用及查詢語句
使用資料庫
連線
連線資料庫時,如果僅僅輸入mysql,可能會出現錯誤資訊,因為可能需要安全證書,或者是因為MYSQL沒有執行到本地或者預設埠上。mysql接受你可以使用的一組命令列引數。
mysql -u 資料庫賬戶 -p 密碼
連線成功之後會出現以下歡迎資訊
Welcome to the MySQL monitor...
...
mysql>
PS:
命令輸入在mysql>之後;
命令用;或者\g結束,換句話說,僅按Enter不執行命令;
輸入help或者\h獲取幫助,也可以輸入更多的文字獲得特定命令的幫助(如,輸入help select獲得使用select語句的幫助)
輸入quit或exit退出命令列實用程式
選擇資料庫
最初連結到MYSQL時,沒有開啟任何資料庫,需要選擇一個數據庫,可以使用USE關鍵字(key word)
例如,為了使用crashcourse資料庫,應該輸入一下內容:
USE crashcourse;
成功之後會返回
Database changed
PS:USE語句並不返回任何結果,依賴於使用的客戶機,顯示某種形式的通知。例如這裡顯示的Database changed訊息是mysql命令列實用程式在資料庫選擇成功後顯示的。
- MYSQL資料庫使用show命令來顯示資料庫的名字
SHOW DATABASES;
+-------------+
| Database +
+-------------+
| 資料庫一 |
| 資料庫二 |
| 資料庫三 |
+-------------+
- 使用SHOW TABLES;命令可以獲取資料庫內的表的列表,如下圖所示
SHOW TABLES;
+-----------------------+
| Tables_in_資料庫名 +
+-----------------------+
| 表一 |
| 表二 |
| 表三 |
+-----------------------+
- 當然,SHOW命令也可以用來顯示錶列
SHOW COLUMNS FROM customers;
+---------------+-----------+--------+
| Field | Type | ... |
+---------------+-----------+--------+
| cust_id |int(11) | ... |
| cust_name |char(50) | ... |
| cust_address |char(50) | ... |
| ... |... | ... |
+---------------+-----------+--------+
SHOW COLUMNS要求給出一個表名,(這個例子中的FORM customers),他對每個欄位返回一行,行中包含欄位名、資料型別、是否允許NULL、鍵資訊…
- SHOW STATUS 用於顯示廣泛的伺服器狀態資訊
- SHOW CREATE DATBASE和SHOW CREATE TABLE,分別用來顯示建立特定資料庫或者表的mysql語句
- SHOW GRANTS,用來顯示授予使用者的安全許可權
- SHOW ERRORS和SHOW WARNINGS用來顯示伺服器錯誤或警告訊息
檢索資料
SELECT語句 檢索單個列
SELECT name FROM student;
上述語句利用SELECT語句從student表中檢索一個名為name的列。
+------------+
| name |
+------------+
| 張一 |
| 張二 |
| 張三 |
+------------+
結束SQL語句: 多條SQL語句必須以;分隔。單條SQL語句後面可以不加;但是加上分號肯定沒有壞處。如果你使用mysql命令列,必須加上;來結束SQL語句。
SQL語句和大小寫:,SQL語句不區分大小寫,但是習慣上對於所有SQL關鍵字使用大寫,而對於所有列和表名使用小寫,這樣做使程式碼更易於閱讀和除錯。
檢索多列
檢索多列同樣使用SELECT語句,不同的是在SELECT關鍵字後給出多個列,列名之間必須以逗號分隔(當選擇多個列時,一定要在列名之間加上逗號,最後一個列名後不加,如果最後一個列名後加了逗號,將出現錯誤)
SELECT id, name, age FROM student;
上述例子,表明從student表中檢索學號,姓名,年齡
檢索所有列
除了指定所需的列外,SELECT語句還可以檢索所有的列而不必逐個列出他們。我們可以通過在實際列名的位置使用星號(*)萬用字元來達到。
SELECT * FROM student;
檢索不同的行
SELECT 語句返回所有匹配的行。但是有時我們不想每個值每次都出現,對於重複的值只出現一次就好。
解決辦法是使用DISTINCT(明顯的、清楚的、有區別的)關鍵字
SELECT DISTINCT id FROM student;
使用上述命令,是隻返回不同(唯一)的id,如果使用該關鍵字,他必須直接放在列名的前面。
限制結果
使用LIMIT子句,可以指定表中的每個行
SELECT name
FROM student
LIMIT 5;
上述語句使用SELECT語句檢索單個列,LIMIT 5只是mysql返回不多於5行
SELECT name
FROM student
LIMIT 5, 5;
LIMIT 5,5 指示mysql返回從第5行開始返回5行,第一個數是開始位置,第二個為要檢索的行數。行數不夠時,mysql將只返回他能返回的那麼多行。
排序檢索資料
單純的使用SELECT 子句檢索資料,輸出並沒有特定的順序。 而有時我們需要返回有序的的資料。這時我們可以使用 ORDER BY語句來實現。
SELECT id
FROM student
ORDER BY id;
這條語句表明按id順序返回學生的學號資訊
按多個列排序
經常需要不止一個列進行資料排序。例如要顯示僱員清單,可能希望按姓和名排序(先按照姓排序,在按照名字排序)
為了按多個列排序,只要指定列名,列名之間用逗號分開即可
SELECT id, name, age
FROM student
ORDER BY id, name;
上述語句將先按照學生id排序,當id相同時按照name排序。
指定排序方向
ORDER BY 預設按照升序排序(關鍵字ASC),我們可以通過使用關鍵字DESC來實現降序排列
DESC關鍵字,只要應用到直接位於其前面的列名
SELECT id, name, age
FROM student
ORDER BY id DESC, name;
上述語句將只對id降序排列,name列任然按照升序排列
相關推薦
mysql資料庫和查詢語句中欄位型別不匹配出現異常,查詢或更新多條的原因
說明 表結構和where查詢的欄位型別一致,均為字串或者是整數,不會型別轉化 表結構和where查詢的欄位型別不一致: 一個為TIMESTAMP或者是DATETIME,另一個為常量,常量會轉化為TIMESTAMP,再進行比較 一個為DECIMAL或者是整數,整數會轉化
mysql資料庫的使用及查詢語句
使用資料庫 連線 連線資料庫時,如果僅僅輸入mysql,可能會出現錯誤資訊,因為可能需要安全證書,或者是因為MYSQL沒有執行到本地或者預設埠上。mysql接受你可以使用的一組命令列引數。 mysql -u 資料庫賬戶 -p 密碼 連線成功之後
[資料庫] SQL查詢語句錶行列轉換及一行資料轉換成兩列
本文主要講述了SQL查詢語句表之間的行列轉換,同時也包括如何將一行資料轉換成兩列資料的方法、子查詢的應用、decode函式的用法。希望文章對你有所幫助~ 1.建立資料庫表及插入資料2.子查詢統計不同性質的學生總數3.一行資料轉換成兩列資料 union all4.錶行列資料轉
資料庫學習--mysql 分頁查詢語句
單條 SQL 語句的分頁 SQL 方法1: 適用於 SQL Server 2000/2005 SELECT TOP 頁大小 * FROM table1 WHERE id NOT IN ( SELECT TOP 頁大小*(頁數-1) id FROM table1 ORD
Mysql資料庫中查詢重複資料和去重資料 , 刪除重複資料的sql及分析
資料庫中有重複資料時,用到哪些sql語句? 這裡有若干資料,並摻雜了重複資料 1. 檢視過濾重複後的資料 思路, group by 分組可以對多個列進行分組, 分組後可以過濾掉重複的資料 sql語句: SELECT id,`name`,
mysql資料庫的基本語句及關鍵詞
mysql 是一個小型的資料庫,相較oracle簡單,語句也少很多,下面簡單的介紹一下基本的語句:1.首先登入資料庫(在cmd視窗進行操作)輸入:mysql -u root -p繼續按回車1.建立一個數據庫create datebase lala;(資料庫名,可以根據實際專
MySQL索引及查詢優化總結
存儲 一行 -1 type 一定的 關鍵技術 表示 智能 string類型 一個簡單的對比測試 前面的案例中,c2c_zwdb.t_file_count表只有一個自增id,FFileName字段未加索引的sql執行情況如下: 在上圖中,type=all,key=nul
Mysql 數據查詢語句中between and 是包含邊界值的
數據查詢 repl use ref net bsp 使用 一個數 not MySQL的sql語句中可以使用between來限定一個數據的範圍,例如: select * from user where userId between 5 and 7; 查詢userId為5、6,
python 3 mysql sql邏輯查詢語句執行順序
shanghai 不能 結果 utf8 才會 right 完成 並且 分享 python 3 mysql sql邏輯查詢語句執行順序 一 、SELECT語句關鍵字的定義順序 SELECT DISTINCT <select_list> FROM <left
關於MySQL常用的查詢語句
tex 程序員 列表 語言 連接 時間段 十六 聚合函數 ice 一查詢數值型數據: SELECT * FROM tb_name WHERE sum > 100; 查詢謂詞:>,=,<,<>,!=,!>,!<,=>,=<
mysql--單表查詢---語句與語法
cte 。。 for 居中 默認 quit 性別 lec hang 一、單表查詢的語法 select 字段1,字段2,字段3.。。from 表名 where 條件 group by field 分領域(組
MySQL學習——SQL查詢語句(連接查詢&子查詢)(三)
例如 必須 創建 clas 在一起 另一個 記錄 any 操作 一:連接查詢: 連接查詢是將倆個或者倆個以上的表按照某個條件連接起來,從中選擇需要的數據,連接查詢同時查詢倆個或者倆個以上的表時使用,當不同的表中存在表示相同意義的字段時,可以通過該字段來連接這幾個表,例如
MySQL - 數據查詢語句
sphinx 字段值 重復 註意 指定 手機號 -- round AC 數據查詢語句select 列名,列名,列名… from 表名 [where條件]列名是字段的名字,註意最後一個列名不加逗號,表名後面的條件可加可不加,加了就只查出來滿足條件的數據。 查詢user表裏的用
三十四、python學之Flask框架(六)資料庫:mysql資料庫及Flask-SQLAlchemy
一、資料庫知識回顧: 1.SQL:關係型資料庫,支援結構化查詢語言: 關係型資料庫:以表的形式儲存; 支援結構化查詢語言:SQL語句; 列數固定;行數可變,定義資料,主鍵、外來鍵,引用同表或不同表的主鍵,這種聯絡稱為關係. 2.關於正規化: 第一
如何提高MySql資料庫子查詢的效率
做django的專案,用python語言寫查詢資料庫的語句,使用OuterRef, Subquery,Exists,F建立複雜的查詢語句: 資料庫模型: from django.db import models # 經緯度唯一表 class LngLat(models.Model):
MySQL DQL 資料查詢語句整理
此內容摘自"MySQL5.7從入門到精通" 目錄 此內容摘自"MySQL5.7從入門到精通" 1.單表查詢 1.1查詢所有欄位 1.2 查詢指定欄位 1.3 查詢指定記錄 &nb
Mysql 日期時間查詢語句
-- 今天 select * from 表名 where to_days(時間欄位名) = to_days(now()); -- 昨天 SELECT * FROM 表名 WHERE TO_DAYS( NOW( ) ) - TO_DAYS( 時間欄位名) <= 1; -- 近7天 SELEC
Python連線MySQL資料庫執行sql語句時的引數問題
由於工作需要,今天寫了一個Python小指令碼,其中需要連線MySQL資料庫,在執行sql命令時需要傳遞引數,結果出問題了。在網上查了一下,發現有以下幾種方式傳遞引數: 一.直接把sql查詢語句完整寫入字串 try: connection = MySQLdb.connect(user
MySQL資料庫時間查詢
1 /*當前時間加1毫秒*/ 2 SELECT DATE_ADD(NOW(),INTERVAL 1 MICROSECOND); 3 4 /*當前時間減1毫秒*/ 5 SELECT DATE_ADD(NOW(),INTERVAL -1 MICROSECOND); 6 7 /*當前時間加1
c# MVC框架 對mysql資料庫的查詢
using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.Mvc; using demo2.Models; using MySql.Data.