MySQL數據庫操作及SQL語句筆記 --- 2018-11-07

果你在電腦上沒安裝可視化數據庫操作,需要在cmd命令行輸入命令操作數據庫,那么可能會用以下命令

(1)連接數據庫

? ? * 打開cmd窗口,使用命令,連接mysql數據庫

? ? * 命令: mysql -u root -p 密碼? ? -u username? ? -p? password? ? ? ?

(2)創建數據庫

? ? * 語句: create database 數據庫的名稱;

? ? ** 示例:create database testdb1;

(3)查看所有的數據庫

? ? * 語句:show databases;

(4)刪除數據庫

? ? * 語句:drop database 要刪除的數據庫的名稱;

? ? ** 示例: drop database testdb1;

(5)切換數據庫

? ? * 如果想要創建一個數據庫表,這個表要在一個數據庫里面,所以需要切換到數據庫

? ? * 語句:use 要切換的數據庫的名稱;

? ? ** 示例:use testdb2;

(6)查看數據庫表的建表結構。

? ? show create database 表名;


下面是關于SQL語句的筆記

(1)創建數據庫表

? ? * 語句 create table 表名稱 (

? ? ? ? 字段 類型,

? ? ? ? 字段 類型

? ? ? ? ? )

? ? * 創建表 user,字段? id? username? password? sex

? ? create table user (

? ? ? ? id int,

? ? ? ? username varchar(40),

? ? ? ? password varchar(40),

? ? ? ? sex varchar(30)

? ? )

(2)mysql的數據類型

? ? 字符串型

? ? VARCHAR、CHAR

? ? * 當創建表時候,使用字符串類型,name varchar(40),指定數據的長度

? ? * varchar和char的區別

? ? ** varchar的長度是可變的,比如 name varchar(5),存值 a ,直接把a存進去? //a<5(a不能超過5)

? ? ** char的長度是固定的,比如 name char(5),存值 b,把b存進去,后面加很多空格? //b<5(b也不能超過5)

? ? 大數據類型

? ? BLOB、TEXT

? ? * 使用這個類型可以存儲文件,一般開發,不會直接把文件存到數據庫里面,存文件的路徑

? ? 數值型

? ? TINYINT 、SMALLINT、INT、BIGINT、FLOAT、DOUBLE

? ? * 對應java里面

? ? byte? ? ? short? ? int? long? ? float? double

? ? 邏輯性

? ? BIT

? ? * 類似java里面的boolean

? ? 日期型

? ? DATE:用于表示日期 1945-08-15

? ? TIME:用于表示時間 19:10:40

? ? 下面的兩個類型可以表示日期和時間

? ? DATETIME:手動添加時間到數據表里面

? ? TIMESTAMP:自動把時間添加到表里面

(3)查看表結構

? ? * 語句 desc 表名稱;

? ? +----------+-------------+------+-----+---------+-------+

? ? | Field? ? | Type? ? ? ? | Null | Key | Default | Extra |

? ? +----------+-------------+------+-----+---------+-------+

? ? | id? ? ? | int(11)? ? | YES? |? ? | NULL? ? |? ? ? |

? ? | username | varchar(40) | YES? |? ? | NULL? ? |? ? ? |

? ? | password | varchar(40) | YES? |? ? | NULL? ? |? ? ? |

? ? | sex? ? ? | varchar(30) | YES? |? ? | NULL? ? |? ? ? |

? ? +----------+-------------+------+-----+---------+-------+

(4)mysql的約束有三種

? ? 第一種,非空約束 not null

? ? ? ? * 表示數據不能為空

? ? 第二種,唯一性約束 unique

? ? ? ? * 表中的記錄不能重復的

? ? 第三種,主鍵約束 primary key

? ? ? ? * 表示非空,唯一性

? ? ? ? * 自動增長 auto_increment

(5)創建帶約束的表

? ? create table person (

? ? ? ? id int primary key ,

? ? ? ? username varchar(40) not null,

? ? ? ? sex varchar(20)

? ? )

? ? +----------+-------------+------+-----+---------+-------+

? ? | Field? ? | Type? ? ? ? | Null | Key | Default | Extra |

? ? +----------+-------------+------+-----+---------+-------+

? ? | id? ? ? | int(11)? ? | NO? | PRI | NULL? ? |? ? ? |

? ? | username | varchar(40) | NO? |? ? | NULL? ? |? ? ? |

? ? | sex? ? ? | varchar(20) | YES? |? ? | NULL? ? |? ? ? |

? ? +----------+-------------+------+-----+---------+-------+

(6)刪除表

? ? * 語句 drop table 要刪除表的名稱;

(7)查看當前的數據庫里面有哪些表

? ? * 語句 show tables;

使用sql對表中的記錄進行操作(增刪改查操作)

? ? (1)向表里面添加記錄 insert

? ? * 語句 insert into 要添加的表名稱 values(要添加的值);

? ? * 注意:當添加的字段的數據類型是int類型,直接寫值

? ? 如果添加的字段的類型是varchar類型和日期類型,使用單引號把值包起來

? ? * 例如:向user表里面添加記錄

? ? insert into user values(1,'aaa','123456','nan');

? ? * 自動增長的效果

? ? ** 創建一個表

? ? create table stu (

? ? ? ? id int primary key atuo_increment,

? ? ? ? sname varchar(40)

? ? )

? ? insert into stu values(null,'aaa');

? ? (2)修改表里面的記錄 update

? ? * 語句 update 表名稱 set 要修改的字段的名稱1=修改的值1,要修改的字段的名稱2=修改的值2 where 條件

? ? * 例如:修改user表里面id=1的username修改為QQQ,修改password為999

? ? update user set username='QQQ',password='999' where id=1;

? ? (3)刪除表里面的記錄 delete

? ? * 語句 delete from 表名稱 where 條件

? ? * 例如:刪除user表里面id=1的記錄

? ? delete from user where id=1;

? ? ** 不添加where條件,把表里面的所有的記錄都刪除

? ? (4)查詢表中的記錄 select

? ? * 語句 select 要查詢的字段的名稱 (*) from 表名稱 where 條件

? ? * create table user (

? ? ? ? id int,

? ? ? ? username varchar(40),

? ? ? ? chinese int,

? ? ? ? english int

? ? )

? ? * insert into user values(1,'lucy',100,30);

? ? insert into user values(2,'mary',60,80);

? ? insert into user values(3,'jack',90,20);

? ? * 例如一:查詢user表里面的所有的數據

? ? select * from user;

? ? * 例如二:查詢user表里面用戶名和語文成績

? ? select username,chinese from user;

? ? * 例如三:查詢user表里面id=2的數據

? ? select * from user where id=2;

? ? (4)別名

? ? * as 別名

? ? select username as u1,chinese as c1 from user;

? ? (5)distinct,去除表里面重復記錄

? ? * 語句 select distinct * from 表名;

? ? (6)where子句

? ? 一,運算符 < > >= <=

? ? * 例如:查詢user表里面語文成績大于60的所有的人員

? ? select * from user where chinese > 60;

? ? 二,in:指定的數

? ? * 例如:查詢user表里面英語成績是80、90的人員的信息

? ? select * from user where english in (80,90);

? ? 三,and:在where里面如果有多個條件,表示多個條件同時滿足

? ? * 例如:查詢user表里面語文成績是100,并且英語成績是30的人員的信息

? ? select * from user where chinese=100 and english=30; //對于同一個人的英語成績及語文成績同時滿足

? ? 四,得到區間范圍的值

? ? * 例如:查詢user表里面語文成績在70-100之間的值

? ? 寫法一,select * from user where chinese >=70 and chinese <=100;

? ? 寫法二,select * from user where chinese between 70 and 100;

? ? 五,like:模糊查詢

? ? * 例如:查詢user表里面username包含a的人員信息

? ? select * from user where username like '%a%';

? ? % :表示查詢匹配 0-N個字符? ? _? 表示匹配任意一個字符

? ? (7)查看當前的運行的數據庫

? ? select database();

? ? (8)對表中查詢的記錄排序 order by

? ? * order by寫在select語句的最后

? ? 第一,升序 order by 要排序字段 asc(asc可以省略,默認的情況下就是升序)

? ? * 例如:對user表里面查詢的數據,根據語文成績進行升序排列

? ? select * from user order by chinese asc;

? ? 第二,降序 order by 要排序字段 desc

? ? * 例如:對user表里面的英語成績進行降序排列

? ? select * from user order by english desc;

8、聚集函數

? ? (1)使用提供一些函數,直接實現某些功能

? ? (2)常用的聚集函數

? ? 第一,count()函數

? ? * 根據查詢的結果,統計記錄數

? ? * 寫法 select count(*) from ...where....

? ? * 例如一;查詢user表里面有多少條記錄

? ? select count(*) from user;

? ? * 例如二:查詢user表里面語文成績大于60的人員有多少

? ? select count(*) from user where chinese>60;

? ? 第二,sum()函數

? ? * 求和的函數

? ? * 寫法 select sum(要進行求和字段) from ...where....

? ? * 例如一:得到user表里面的語文的總成績

? ? select sum(chinese) from user;

? ? * 例如二:得到user表里面語文總成績,英語的總成績

? ? select sum(chinese),sum(english) from user;

? ? * 例如三:得到user表里面語文成績的平均分(總的成績/總的人數)

? ? select sum(chinese)/count(*) from user;

? ? 第三,avg()函數

? ? * 計算的平均數的函數

? ? * 寫法 select avg(要計算平均數的字段名稱) from ...

? ? * 例如:得到user表里面語文成績的平均分

? ? select avg(chinese) from user;

? ? 第四,max()函數:計算最大值

? ? * 寫法 select max(字段) from...

? ? 第五,min()函數:計算最小值

? ? * 寫法 select min(字段) from...

? ? * 例如:得到user表里面語文成績的最高分數,英語的成績最低分數

? ? select max(chinese),min(english) from user;

9、分組操作?

? ? 分組使用 group by 根據分組的字段

? ? 在分組的基礎之上再進行條件的判斷 having,后面可以寫聚集函數

? ? (1)例如說明

? ? * 創建表 orders

? ? create table orders (

? ? ? ? id int,

? ? ? ? name varchar(40),

? ? ? ? price int

? ? )

? ? insert into orders values(1,'電視',2000);?

? ? insert into orders values(2,'電視',2000);

? ? insert into orders values(3,'蘋果',10);

? ? insert into orders values(4,'手機',500);

? ? insert into orders values(5,'手機',500);

? ? insert into orders values(6,'鼠標',33);

? ? insert into orders values(7,'鼠標',33);

? ? (2)例如一:統計orders表里面每類商品的總的價格

? ? select name,sum(price) from orders group by name;

? ? (3)例如二:對商品進行分類,得到每類商品的總價格大于66的商品

? ? select name,sum(price) from orders where sum(price)>66 group by name;

? ? = 上面的語句在邏輯上沒有問題,在語法上,where里面不能寫聚集函數,報錯

? ? 正確的寫法:

? ? select name,sum(price) from orders group by price having sum(price)>66;

mysql的關鍵字limit

? ? (1)limit關鍵字查詢表中的某幾條記錄

? ? (2)limit關鍵字不是標準sql的關鍵字,只能在mysql數據庫里面使用,實現分頁的功能

? ? * 在oracle里面特有關鍵字 rownum

? ? * 在sqlserver里面特有關鍵字 top

? ? (3)使用limit查詢前幾條記錄

? ? * 寫法: limit 前幾條記錄? limit 3

? ? * 例如:查詢user表里面前三條記錄

? ? select * from user limit 3;

? ? select * from user limit 0,3;

? ? (4)使用limit查詢第幾條到第幾條記錄

? ? * 寫法: limit 第一個參數,第二個參數

? ? ** 第一個參數開始的記錄數的位置,從0開始的

? ? ** 第二個參數從開始的位置向后獲取幾條記錄

? ? * 例如:查詢user表里面第二條到第四條記錄

? ? select * from user limit 1,3;


修改MySql數據庫的的密碼

(1)知道密碼,修改密碼

? ? 第一,連接mysql數據庫

? ? 第二,切換數據庫 mysql? use mysql

? ? 第三,進行密碼的修改 update user set password=password('要修改成的密碼的值') where user='root';

? ? 第四,重新啟動mysql服務


忘記MySQL數據庫密碼操作

忘記密碼,重置密碼

? ? 第一,把mysql的服務關閉? ? ? ? ? ? ? ? ? ? ? ? ? ? ?

? ? 第二,打開cmd窗口,輸入命令 mysqld --skip-grant-tables(不要加分號) //skip:跳過? grant:權限?

? ? 第三,再打開cmd窗口,連接數據庫,不需要輸入密碼? mysql -u root

? ? 第四,切換數據庫 mysql? use mysql

? ? 第五,進行密碼的修改 update user set password=password('要修改成的密碼的值') where user='root';

? ? 第六,把兩個cmd窗口都關閉,打開任務管理器,找到mysqld進程,結束

? ? 第七,啟動mysql服務

---------------------

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 228,739評論 6 534
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 98,634評論 3 419
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 176,653評論 0 377
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,063評論 1 314
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 71,835評論 6 410
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 55,235評論 1 324
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,315評論 3 442
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 42,459評論 0 289
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 49,000評論 1 335
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 40,819評論 3 355
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 43,004評論 1 370
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,560評論 5 362
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,257評論 3 347
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,676評論 0 26
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 35,937評論 1 288
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 51,717評論 3 393
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 48,003評論 2 374

推薦閱讀更多精彩內容

  • 觀其大綱 page 01 基礎知識 1 MySQL數據庫概要 2 簡單MySQL環境 3 數據的存儲和獲取 4 M...
    周少言閱讀 3,166評論 0 33
  • MYSQL 基礎知識 1 MySQL數據庫概要 2 簡單MySQL環境 3 數據的存儲和獲取 4 MySQL基本操...
    Kingtester閱讀 7,830評論 5 116
  • 一件衣服最好的歸宿,是遇見靈魂相似的身體。一顆大紅柑也是。柑皮和普洱,誰是衣服,誰是身體,誰是靈魂,誰又成就...
    水墨含聲閱讀 262評論 0 1
  • 迷茫不安中總是要做出一些舉動好像才能打破這些不安 2016年夏,18歲,我高中畢業了。距離大學開學還有10來天。我...
    青絲引閱讀 703評論 2 3
  • 最初的面龐,輾轉舊夢無常 韶華盛處,不知情長 轉身間已天各一方 此去經年,多少生動的笑容,模糊成美好卻冰涼的影像 ...
    弦音0011閱讀 316評論 0 5