化繁為簡的MySQL數據庫

MySQL數據庫

數據庫(MySQL.com下載)

查看系統所有數據庫:show databases;

創建數據庫:create database 數據庫名 charset=utf8;

切換到指定數據庫:use 數據庫名

查看當前數據庫:select database();

展示創建數據庫的語句:show create database 數據庫名;

刪除數據庫:drop database 數據庫名;

創建數據表

展示當前數據庫中所有表:show tables;

創建一個表結構:create table 表名 (id int unsigned auto_increment primary key not null,name varchar(32),其他字段和屬性);?

增(0 或者null表示占位? 實際以默認或者自動增長的值? 為準)

全列插入和表結構的字段一致。例:insert into students values(0,'小李',150),(null, '小王', 180);

指定插入:insert into students (age, name) values(182, '小王');

1、物理刪除

delete from students where id = 7;

刪除多行,可以使用in:delete from classmate where id in (2,4,5,6,7,8);

2、邏輯刪除-本質上是 更新數據的標記的操作

alter table students add isDelete bit default 0;

update students set isDelete = 1 where id = 1;

例:update students set age =0 where name='小王';

查(基本)

顯示全部信息select * from students;

指定字段查詢select name,age from students;

字段顯示別名,例:select name as '尊姓大名', age as '高壽' from students;

表起別名,例:select s.name,s.age from students s;

查(提高)

條件篩選:><=、不等于<>或者!=

使用枚舉查詢,enum是一個類,gender=enum()則是創建一個對象,而對象的返回值是內存地址,因此不能使用。枚舉(enum)本質數字構成的集合? 從1開始 ,可以直接用gender=1,來代表男性——select * from classmate where gender=1;

模糊匹配

%匹配任意多個字符:select * from students where name like '周%';

_匹配1個任意字符:select * from students where name like '周_';

查詢 姓名中含有小 的信息:select * from students where name like '%小%';

in () 判斷值是否在集合中存在

between 下限 and 上限

查詢 height字段沒有填寫的記錄,此處不能使用'=',必須使用is:select * from students where height is NULL;

排序(關鍵詞order by ——ASC 升序<默認>? DESC 降序)

select * from students order by height desc,age asc;

聚合函數

統計數量count()——select count(*) from students;

最大值select max(height) from students;

最小值select min(age) from students where gender = 1;

求和sum、求平均avg、保留小數位數round

分組

以性別分組 顯示性別 及其對應分組的平均年齡 及其 分組內每個成員的年齡——select gender, avg(age),group_concat(age) from students group by gender;

分組后過濾having——select gender, avg(age),group_concat(age) from students group by gender having count(*)>2;

分組后匯總with rollup——select gender,count(*) from students group by gender with rollup;

分頁

第n頁:limit (n-1)*每頁數,每頁數

例:第3頁的數據 每頁是3條select * from students limit 6, 3;——limit 開始位置是0

連接查詢——(笛卡爾積運算)

內連接——使用on過濾條件即兩個表中重復的字段select * from 表1 inner join 表2 on 表1.重復字段 = 表2.重復字段;

左連接—— select * from 表1 left join 表2 on 表1.重復字段 = 表2.重復字段;

可以重命名—例: select * from hero as h left join gongfu as g on h.gongfuid = g.id;

右連接——select * from 表1 right join 表2 on 表1.重復字段 = 表2.重復字段;

自連接—一個表即當表1又當表2,例:左表中的市所屬的省id即pid 需要等于右表的省份id即aid? ? (select * from areas city join areas pro on city.pid = pro.aid? where pro.atitle = '山東省'; )語句中有重命名

子查詢

標量子查詢

查詢出高于平均年齡的學生的信息select * from students where age > (select avg(age) from students);

列子查詢(結果是一個集合)—關鍵字in—格式:主查詢where條件in(列子查詢)

例:查詢已經上課的學生信息select * from students where cls_id in (select id from classes);

行子查詢(結果是一個元組)

例:查詢出班級上 年齡最大 和 身高最高的信息select * from students where (age,height) = (select max(age),max(height) from students);

展示創建表的語句:show create table students;

查看表結構:desc 表名;

修改表結構(相當于對字段的修改,而非表內容):alter table

添加一個字段—add:alter table students add age tinyint unsigned not null;

修改字段名稱、類型、約束—change:例:alter table students change birth(需要修改的字段) birthday(修改后字段) date not null(修改后字段的屬性);

只修改字段類型和約束? 不改名—modify:例:alter table students modify birthday(需要修改的字段) datetime not null(修改后屬性);

刪除字段—drop:例:alter table students drop birthday(需要刪除的字段);

和pycharm聯用

導入模塊:import pymysql

創建連接conn = pymysql.connect(host='127.0.0.1',port=3306, user='root',password='mysql',db='python_test_1',charset='utf8')

獲取游標cur = conn.cursor()

書寫sql語句

執行 數據庫操作row_count = cur.execute(sql)

提交修改conn.commit()

先關游標? cur.close()?

再關連接? conn.close()

參數化:可以有效防止sql注入—全部使用%s占位

在execute中傳入參數的列表,例:age = input('請輸入年齡:')

gender = input('請輸入性別:')? ? ? ? ? ? ? ? ??

sql = "select * from students where age>%s and gender= %s;"

row_count = cur.execute(sql,[age,gender])

MySQL高級

視圖——視圖就是一條SELECT語句執行后返回的結果集

創建視圖(建議以V-開頭),例:create view v_hebei_areas as select pro.atitle as patitle, c.id as cid, c.atitle as catitle, c.pid as cpid from areas as c join areas as pro on c.pid=pro.id where pro.atitle='河北省';

查看視圖:show tables;

使用視圖:select * from v_hebei_areas;

刪除視圖:drop view v_hebei_areas;

事務——原子性、一致性、隔離性、持久性

開啟事務:begin

提交事務:commit

回滾事務:rollback

索引

查看索引:show index from 表名;

創建索引:create index 索引名稱 on 表名(字段名稱(長度));

刪除索引:drop index 索引名稱 on 表名;

開啟時間監測:set profiling=1;

查看執行時間:show profiles;

賬戶管理——所有用戶及權限信息存儲在mysql數據庫的user表中

查看user表的結構:desc user;

查看所有用戶:select *或者(host,user,authentication_string) from user;分號前使用\G顯示全部內容

創建賬戶&授權:grant 權限列表 on 數據庫.* to '用戶名'@'訪問主機' identified by '密碼';

修改已有用戶的權限,例:grant select, create, update on students to 'xiaoyu'@'localhost' with grant option;

刷新:flush privileges;

修改已有用戶的密碼,例:update user set authentication_string=password('123456')where user='xiaoyu';

查看用戶有哪些權限,例:show grants for 'xiaoyu'@'localhost'

刪除一個用戶,例:drop user 'xiaoyu'@'localhost';

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

推薦閱讀更多精彩內容

  • 轉 # https://www.cnblogs.com/easypass/archive/2010/12/ 08/...
    呂品?閱讀 9,770評論 0 44
  • 閱讀原文 墨霖 很多年以前,我一直都聽信著正能量,覺得人該活的善良。只有善良,才能得到你該得到的,和想得到的。因此...
    心里有只貓閱讀 445評論 0 1
  • 心,再也不會疼了 就像干涸了千年的大地 再也擠不出一絲水分 也再供養不起一顆草 比荒蕪更荒蕪 ………… 風熄滅了最...
    端木丹陽閱讀 232評論 0 0
  • ECO生態幣,FLC環保幣,零投資,高受益,
    金掌柜閱讀 223評論 0 0