mysql相關知識點

數(shù)據(jù)庫可能會考的題目
1跋破、數(shù)據(jù)庫和數(shù)據(jù)庫管理系統(tǒng)之間的關系帆竹?
數(shù)據(jù)庫:存儲目胡,維護和管理數(shù)據(jù)的集合
數(shù)據(jù)庫管理系統(tǒng):其實就是數(shù)據(jù)庫管理軟件,通過它可以進行數(shù)據(jù)庫的管理和維護工作

2源织、sql 語言分類
DDL 數(shù)據(jù)定義語言 庫 表結構
DML 數(shù)據(jù)操作語言 數(shù)據(jù)增刪改
DQL 數(shù)據(jù)查詢語言 數(shù)據(jù)查詢
DCL 數(shù)據(jù)控制語言

3翩伪、庫層的增刪改查
創(chuàng)建庫 create database 數(shù)據(jù)庫名 default charset=utf8;
刪除庫 drop database 數(shù)據(jù)庫名;
修改庫字符集 alter database 數(shù)據(jù)庫名 default charset=utf8;
查看庫 show databases;
查看建庫語句 show create database 數(shù)據(jù)庫名谈息;
查看當前使用的數(shù)據(jù)庫 select database();
切換進入數(shù)據(jù)庫 use database

4缘屹、表結構層的增刪改查

  • 創(chuàng)建表create table 表名(

    ? 字段名1 類型 限制,(primary key auto_increment)

    ? 字段名2 類型 限制侠仇,

    ? ...

    ? 復合主鍵可以放在這primary key(字段轻姿,字段)

    )engine=innodb default charset=utf8;

primary key 主鍵 不允許有重復值,不允許為空
auto_increment 自增長犁珠,只對int型主鍵起作用

  • 刪除表 drop table 表名;

  • 改表

    • 修改表名 alter table 表名 rename 新表名

    • 修改字段數(shù)據(jù)類型 alter table 表名 modify 字段名 類型 [限制]

    • 修改字段名和類型 alter table 表名 change [column] 舊字段名 新字段名 類型 [限制];

    • 增加字段 alter table 表名 add [column] 字段名 類型 [限制];

    • 刪除字段 alter table 表名 drop [column] 字段名;

    • 修改字段的排列位置 alter table 表名 modify 字段1 數(shù)據(jù)類型 first|after 字段2

  • 查看表結構 desc 表名互亮;

  • 查看建表語句 show create table 表名犁享;

5、表數(shù)據(jù)層的增刪改查

  • 增 insert

    insert into 表名(字段1豹休,字段2...) values(值1,值2...);
    insert into 表名 values(值1,值2...);
    insert into 表名(字段1炊昆,字段2...) 
               values(值1,值2...),
               (值1,值2...),
               (值1,值2...)....
    
    
  • 刪 delete和truncate

    delete from 表名 where 條件;#如果不加條件威根,會刪除表中所有數(shù)據(jù),慎重使用

    truncate table 表名,清空表中所有記錄窑眯,等價于delete from 表名;

delete和truncate差別医窿,truncate后磅甩,表中自增主鍵值從1開始
  • 改 update

    update 表名 set 字段1=值1,字段2=值2... where 條件 #不加where修改的是所有的記錄

  • 查 select
    select 字段 from 表名 [ where 條件 、 group by 姥卢、having 卷要、 order by 、limit ]

    • 單表常規(guī)查詢
    • 單表子查詢
    • 多表查詢 隱式連接(標準sql)和 顯示內(nèi)連接 join on
    • 表自身連接
    • 外鏈接 左連接和右連接
    • 查詢合并操作(只支持查詢結果的并集)

6独榴、事務
7僧叉、索引

  • 創(chuàng)建索引
    普通索引 create index 索引名 on 表名(字段 asc/desc) 默認asc升序
    唯一索引 create unique index 索引名 on 表名(字段 asc/desc) 默認asc升序 (或修改字段限制為unique)
    主鍵索引 主鍵字段自帶
    全文索引 create FULLTEXT index 索引名 on 表名(字段 asc/desc)
  • 刪除索引 drop index 索引名 on 表
  • 查看索引 show index from 表 \G(;)

通過修改字段的方式添加索引:
alter table 表 add index(字段1,字段2,...)
alter table 表 add primary key(字段1,字段2,...)
alter table 表 add unique(字段1,字段2,...)
alter table 表 add fulltext(字段1,字段2,...)

8棺榔、外鍵
如果表A的主關鍵字是表B中的字段瓶堕,則該字段稱為表B的外鍵,表A稱為主表症歇,表B稱為從表郎笆。
添加外鍵:

  • create table score1( score int, courseid int,stuid varchar(10), constraint stu_sco_id foreign key(stuid) references student(stuid) );

  • alter table score2 add constraint stu_sco_id foreign key(stuid) references student(stuid);

刪除外鍵:
ALTER TABLE 從表 DROP FOREIGN KEY 外鍵名

9、備份與恢復
shell下備份 mysqldump -u root -p 數(shù)據(jù)庫名>生成sql腳本的路徑
mysql下恢復 創(chuàng)建空數(shù)據(jù)庫 -> use 庫 -> source /home/rock/Desktop/mydb1.sql;
或者 創(chuàng)建空數(shù)據(jù)庫 -> mysql -uroot –p 數(shù)據(jù)庫名 < ~/備份文件.sql

10忘晤、pymysql 操作mysql的通用步驟

import pymysql

# 連接數(shù)據(jù)庫
conn = pymysql.connect('localhost', 'user', 'password', 'db')
# 創(chuàng)建游標
cursor = conn.cursor()

# 定制sql語句
sql = '增刪改查語句宛蚓,mysql怎么寫這里怎么寫'


# 操作表數(shù)據(jù)第一種情況是需要執(zhí)行事務的增刪改寫法
try:
    cursor.execute(sql)
    conn.commit()  # 如果全部執(zhí)行成功,提交事務
except Exception as e:
    print(e)
    conn.rollback() # 失敗回滾

# 操作表數(shù)據(jù)第二種情況是不需要執(zhí)行事務的查詢寫法
# 執(zhí)行sql語句设塔,獲取結果集
cursor.execute(sql)
res = cursor.fetchone()  # res = cursor.fetchall()

# 關閉游標
cursor.close()
# 關閉數(shù)據(jù)庫
conn.close()

11凄吏、char和varchar的區(qū)別:

  • char的執(zhí)行效率高于varchar ,varchar 相對于 char 節(jié)省存儲空間
  • 如果使用char 傳入的數(shù)據(jù)的長度 小于指定的長度的時候 存儲的實際長度 不夠的會拿空格來填充
  • 如果使用 varchar 傳入的數(shù)據(jù)的長度 小于指定的長度的時候 存儲的實際長度 為傳進來的數(shù)據(jù)的長度

12闰蛔、數(shù)據(jù)庫引擎痕钢,其中 myisam和innodb的區(qū)別:

  • myisam查詢速度快,不支持事務序六、不支持外鍵任连、支持表鎖

  • innodb增刪改效率高,支持事務难咕、支持外鍵课梳,支持行鎖

13距辆、事務的四大特征ACID

原子性(Atomicity余佃,或稱不可分割性)暮刃、
一致性(Consistency)、
隔離性(Isolation爆土,又稱獨立性)椭懊、
持久性(Durability)。

原子性:
一個事務(transaction)中的所有操作步势,要么全部完成氧猬,要么全部不完成,不會結束在中間某個環(huán)節(jié)坏瘩。事務在執(zhí)行過程中發(fā)生錯誤盅抚,會被回滾(Rollback)到事務開始前的狀態(tài),就像這個事務從來沒有執(zhí)行過一樣倔矾。

一致性:
在事務開始之前和事務結束以后妄均,數(shù)據(jù)庫的完整性沒有被破壞。這表示寫入的資料必須完全符合所有的預設規(guī)則哪自,這包含資料的精確度丰包、串聯(lián)性以及后續(xù)數(shù)據(jù)庫可以自發(fā)性地完成預定的工作。

隔離性:
數(shù)據(jù)庫允許多個并發(fā)事務同時對其數(shù)據(jù)進行讀寫和修改的能力壤巷,隔離性可以防止多個事務并發(fā)執(zhí)行時由于交叉執(zhí)行而導致數(shù)據(jù)的不一致邑彪。事務隔離分為不同級別,包括讀未提交(Read uncommitted)胧华、讀提交(read committed)寄症、可重復讀(repeatable read)和串行化(Serializable)。

持久性:
事務處理結束后矩动,對數(shù)據(jù)的修改就是永久的瘸爽,即便系統(tǒng)故障也不會丟失。

14铅忿、事務的流程

執(zhí)行開始事務命令后,下面將進入事務模式. start transaction剪决、begin

sql語句下 update、delete檀训、insert 需要事務

1在事務執(zhí)行完成后,確認執(zhí)行無誤且成功,就可以使用commit把內(nèi)存中執(zhí)行的結果,提交到物理內(nèi)存中

2如果在事務執(zhí)行過程中,發(fā)生了錯誤,則可以使用rollback命令回滾到上一個事務操作

?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末柑潦,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子峻凫,更是在濱河造成了極大的恐慌渗鬼,老刑警劉巖,帶你破解...
    沈念sama閱讀 212,718評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件荧琼,死亡現(xiàn)場離奇詭異譬胎,居然都是意外死亡差牛,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,683評論 3 385
  • 文/潘曉璐 我一進店門堰乔,熙熙樓的掌柜王于貴愁眉苦臉地迎上來偏化,“玉大人,你說我怎么就攤上這事镐侯≌焯郑” “怎么了?”我有些...
    開封第一講書人閱讀 158,207評論 0 348
  • 文/不壞的土叔 我叫張陵苟翻,是天一觀的道長韵卤。 經(jīng)常有香客問我,道長崇猫,這世上最難降的妖魔是什么沈条? 我笑而不...
    開封第一講書人閱讀 56,755評論 1 284
  • 正文 為了忘掉前任,我火速辦了婚禮诅炉,結果婚禮上蜡歹,老公的妹妹穿的比我還像新娘。我一直安慰自己汞扎,他們只是感情好季稳,可當我...
    茶點故事閱讀 65,862評論 6 386
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著澈魄,像睡著了一般景鼠。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上痹扇,一...
    開封第一講書人閱讀 50,050評論 1 291
  • 那天铛漓,我揣著相機與錄音,去河邊找鬼鲫构。 笑死浓恶,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的结笨。 我是一名探鬼主播包晰,決...
    沈念sama閱讀 39,136評論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼炕吸!你這毒婦竟也來了伐憾?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 37,882評論 0 268
  • 序言:老撾萬榮一對情侶失蹤赫模,失蹤者是張志新(化名)和其女友劉穎树肃,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體瀑罗,經(jīng)...
    沈念sama閱讀 44,330評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡胸嘴,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,651評論 2 327
  • 正文 我和宋清朗相戀三年雏掠,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片劣像。...
    茶點故事閱讀 38,789評論 1 341
  • 序言:一個原本活蹦亂跳的男人離奇死亡乡话,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出驾讲,到底是詐尸還是另有隱情蚊伞,我是刑警寧澤席赂,帶...
    沈念sama閱讀 34,477評論 4 333
  • 正文 年R本政府宣布吮铭,位于F島的核電站,受9級特大地震影響颅停,放射性物質發(fā)生泄漏谓晌。R本人自食惡果不足惜寞秃,卻給世界環(huán)境...
    茶點故事閱讀 40,135評論 3 317
  • 文/蒙蒙 一怪瓶、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧揖铜,春花似錦喊熟、人聲如沸柏肪。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,864評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽烦味。三九已至,卻和暖如春壁拉,著一層夾襖步出監(jiān)牢的瞬間谬俄,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,099評論 1 267
  • 我被黑心中介騙來泰國打工弃理, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留溃论,地道東北人。 一個月前我還...
    沈念sama閱讀 46,598評論 2 362
  • 正文 我出身青樓痘昌,卻偏偏與公主長得像钥勋,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子辆苔,可洞房花燭夜當晚...
    茶點故事閱讀 43,697評論 2 351

推薦閱讀更多精彩內(nèi)容

  • ORA-00001: 違反唯一約束條件 (.) 錯誤說明:當在唯一索引所對應的列上鍵入重復值時算灸,會觸發(fā)此異常。 O...
    我想起個好名字閱讀 5,259評論 0 9
  • MYSQL 基礎知識 1 MySQL數(shù)據(jù)庫概要 2 簡單MySQL環(huán)境 3 數(shù)據(jù)的存儲和獲取 4 MySQL基本操...
    Kingtester閱讀 7,790評論 5 116
  • 轉 # https://www.cnblogs.com/easypass/archive/2010/12/ 08/...
    呂品?閱讀 9,710評論 0 44
  • 手動不易姑子,轉發(fā)請注明出處 --Trance 數(shù)據(jù)庫系統(tǒng)命令: (1).查看存儲過程狀態(tài):show pro...
    Trance_b54c閱讀 1,657評論 0 8
  • 一.摘抄金句 1.進行第一遍閱讀時乎婿,要減少我們的“需求”,并且通過嘗試不同的閱讀方法街佑,來增進我們對書中內(nèi)容的理解和...
    橋本奈奈末閱讀 138評論 0 0