MySQL 操作詳解

2021-08-20 06:03:24 字數 4009 閱讀 5344

建立並選擇資料庫:

mysql> show databases;

mysql> create database test;

mysql> use test

建立表:

mysql> create table pet (name varchar(20), owner varchar(20),
-> species varchar(20), *** char(1), birth date, death date);
檢視表:

mysql> show tables;
mysql> describe pet;
載入資料到表中:

mysql> load data infile '/home/shiyanlou/desktop/pet.txt' into table pet;
mysql> insert into pet     -> values ('puffball','diane','hamster','f','1999-03-30',null);
檢索表中資訊:

mysql> select * from pet;
修正錯誤記錄:

mysql> update pet set birth = '1989-08-31' where name = 'bowser';
選擇特殊行:

mysql> select * from pet where (species = 'cat' and *** = 'm')
-> or (species = 'dog' and *** = 'f');
選擇特殊列:

mysql> select name, species, birth from pet
-> where species = 'dog' or species = 'cat';
行分類:

mysql> select name, species, birth from pet    

-> order by species, birth desc;

注意desc關鍵字僅適用於在它前面的列名(birth);不影響species列的排序順序。

日期計算:

mysql> select name, birth, curdate(),
-> (year(curdate())-year(birth))
-> - (right(curdate(),5) from pet;
-> from pet order by name;
要想確定每個寵物有多大,可以使用函式timestampdiff()計算當前日期的年和出生日期之間的差也可以按照直接使用語句(year(curdate())-year(birth))計算,其中函式curdate()是計算當前的日期。如果當前日期的日曆年比出生日期早,則減去一年。以下**是查詢每個寵物的出生日期、當前日期和年齡(以年作為計算單位),其中關鍵字age是年齡這個計算結果的標籤。

此處,year()提取日期的年部分,right()提取日期最右面5個字元的mm-dd (月份和日期)部分。mm-dd值的表示式部分的值一般為1或0,如果curdate()的年比birth的年早,則年份應減去1。整個表示式看起來有些難懂,使用age來使輸出的列標記更有意義。

模式匹配:

mysql提供標準的sql模式匹配,以及一種基於類unix裡的程式如vi、grep和sed裡的擴充套件正規表示式模式匹配的格式。 sql模式匹配允許你使用「_」匹配任何單個字元,而「%」匹配任意數目字元(包括零字元)。在 mysql中,sql的模式預設是忽略大小寫的。下面給出一些例子。注意使用sql模式時,不能使用=或!=;而應使用like或not like比較操作符。 要想找出以「b」開頭的名字的動物資訊:

mysql> select * from pet where name like 'b%';
要想找出以「fy」結尾的名字:

mysql> select * from pet where name like '%fy';
要想找出包含「w」的名字:

mysql> select * from pet where name like '%w%';
要想找出正好包含5個字元的名字,使用「_」模式字元:

mysql> select * from pet where name like '_____';
擴充套件正規表示式的一些字元是:

『.』匹配任何單個的字元。  字元類「[...]」匹配在方括號內的任何字元。例如,「[abc]」匹配「a」、「b」或「c」。為了命名字元的範圍,使用乙個「-」。「[a-z]」匹配任何字母,而「[0-9]」匹配任何數字。  「 *」匹配零個或多個在它前面的東西。例如,「x*」匹配任何數量的「x」字元,「[0-9]*」匹配的任何數量的數字,而「.*」匹配任何數量的任何東西。

如果regexp模式與被測試值的任何地方匹配,模式就匹配(這不同於like模式匹配,只有與整個值匹配,模式才匹配)。 為了定位乙個模式以便它必須匹配被測試值的開始或結尾,在模式開始處使用「^」或在模式的結尾用「$」。 為了說明擴充套件正規表示式如何工作,下面使用regexp重寫上面所示的like查詢:

為了找出以「b」開頭的名字,使用「^」匹配名字的開始:

mysql> select * from pet where name regexp '^b';
如果你想強制使regexp比較區分大小寫,使用binary關鍵字使其中乙個字串變為二進位制字串。該查詢只匹配名稱首字母的小寫『b』。

mysql> select * from pet where name regexp binary '^b';
為了找出以「fy」結尾的名字,使用「$」匹配名字的結尾:

mysql> select * from pet where name regexp 'fy$';
為了找出包含乙個「w」的名字,使用以下查詢:

mysql> select * from pet where name regexp 'w';
為了找出包含正好5個字元的名字,使用「^」和「$」匹配名字的開始和結尾,和5個「.」例項在兩者之間:

mysql> select * from pet where name regexp '^.....$';
計算行數:

檢索了擁有寵物的人的名字。如果你想要知道每個主人有多少寵物,你也可以使用count(*)函式:

mysql> select owner, count(*) from pet group by owner;
檢視每種動物的數量:

mysql> select species, count(*) from pet group by species;
按種類和性別組合分類的動物數量:

mysql> select species, ***, count(*) from pet group by species, ***;

MySQL 基本操作詳解

create database table name create table ifnot exists userinfo id intunsigned auto increment username varchar 100 not null password varchar 40 not null...

mysql常用操作詳解

1.匯入.sql檔案 source sql檔案路徑 例如 source d 2.資料庫登陸命令 mysql h伺服器位址 u使用者名稱 p密碼 3.資料庫退出命令 quit 4.修改密碼操作 1 用set password命令 set password for 使用者名稱 伺服器名 ip passw...

pandas 操作mysql詳解

要實現 pandas 對 mysql 的讀寫需要三個庫 可能有的同學會問,單獨用 pymysql 或 sqlalchemy 來讀寫資料庫不香麼,為什麼要同時用三個庫?主要是使用場景不同,個人覺得就大資料處理而言,用 pandas 讀寫資料庫更加便捷。1 read sql query 讀取 mysql...