MYSQL入門操作及注意事項

對數(shù)據(jù)庫的操作:

數(shù)據(jù)庫的創(chuàng)建:
create database [in not exists] db_name [character set utf8] [collate collation_name]
in not exists:使用這句話之后脑题,創(chuàng)建的數(shù)據(jù)庫存在就不再創(chuàng)建夜焦,如果沒有這句話育八,創(chuàng)建的數(shù)據(jù)庫存在就報錯煎楣。
character set utf8:庫采用什么碼表,最好每次使用
create database testbase character set utf8 collate utf8_general_c1;
查看庫的創(chuàng)建信息:show database db_name;
刪除創(chuàng)建的數(shù)據(jù)庫:drop database db_name;
修改數(shù)據(jù)庫的字符集編碼:
alter database db_name character set utf8;
備份數(shù)據(jù)庫:
mysqldump -u root -p db_name>path_name (此命令屬于計算機的命令解滓,不能在sql命令行下執(zhí)行穗酥,必須在系統(tǒng)命令行下執(zhí)行瞬浓,并且不能有分號)
恢復(fù)數(shù)據(jù)庫:
    1、恢復(fù)只能恢復(fù)數(shù)據(jù)中的數(shù)據(jù)机打,要恢復(fù)庫矫户,必須先創(chuàng)建數(shù)據(jù)庫。
        1)進入數(shù)據(jù)庫:use db_name;
        2)執(zhí)行恢復(fù)source back_path_naem (source:執(zhí)行sql腳本)
    2残邀、恢復(fù)只能恢復(fù)數(shù)據(jù)中的數(shù)據(jù)皆辽,要恢復(fù)庫,必須先創(chuàng)建數(shù)據(jù)庫芥挣。
        1)進入數(shù)據(jù)庫:use db_name;
        2)mysql -u root -p db_name<path_name(此命令屬于計算機系統(tǒng)命令)

數(shù)據(jù)類型:

1驱闷、數(shù)值類型:
    bit(5) 保存5個二進制位,不指定位數(shù)空免,默認(rèn)是1空另。
    tinyint[unsigned][zerofill]:一個字節(jié)大小-127--128,跟上后面兩個參數(shù)的任何一個標(biāo)識無符號數(shù)0--255
    bool,boolean:數(shù)據(jù)庫中沒有turu,false,數(shù)據(jù)庫中保存的是0或1蹋砚,和使用bit(1)效果相同
    smallint[unsigned][zerofill],表示2的16次方痹换,對應(yīng)java中的short
    int [unsigned][zerofill]:2的32次方
    bigint[unsigned][zerofill]:2的64次方
    float[m,d] [unsigned][zerofill]:m,數(shù)據(jù)長度征字,d,保留的小數(shù)位數(shù)娇豫。
    double[m,d] [unsigned][zerofill]:m,數(shù)據(jù)長度匙姜,d,保留的小數(shù)位數(shù)冯痢。  
    decimal[m,d]:精度最高氮昧,可用于貨幣使用。
2浦楣、文本類型:
   1)char(size)     定長:最大大小為size,存一個字符袖肥,大小也是size。size設(shè)置最大為255
   2)varchar(size)  變長:最大大小為size振劳,存一個字符椎组,大小為1。size設(shè)置最大為65535
   3)blob,longblob:存儲二進制數(shù)據(jù)(圖片历恐,圖像等)2的10次方為1k寸癌,2的20次方為1M.實際開發(fā)中將大數(shù)據(jù)以文件形式存儲而不直接存儲在數(shù)據(jù)庫中。
   4)text(oracal中為clob)弱贼,longtext(longclob)
3蒸苇、時間日期
        date, datetime,timestamp

對表的基本操作:

查看表創(chuàng)建細節(jié):show create table table_name
查看表的結(jié)構(gòu):desc table_name

修改表:
    增加一個字段:alter table table_name add 字段 類型;
    修改字段的類型:alter table table_name modify 字段 類型吮旅;
    修改表中的字段名:altert table table_name change column 原字段名 新字段名 字段類型溪烤;
    刪除字段:alter table table_name drop 字段名;   
    修改表的字符編碼:alter table 表名 character set utf8庇勃;
    修改表名:rename table old_name  to new_name檬嘀;
    刪除表:drop table table_name;
    
創(chuàng)建表
    cteate table Student(
            id int,
            name varchar(20)
    );
    
數(shù)據(jù)插入:insert into
    字符责嚷,字符串和如期類數(shù)據(jù)使用單引號枪眉。
    插入空值,不指定或使用null
    細節(jié):
      1再层、可以將任何數(shù)據(jù)都使用單引號贸铜。
      2、插入數(shù)據(jù)的時候跟上字段名稱聂受,便于后期維護蒿秦。
      3、輸入中文字符亂碼問題:
          原因:例如蛋济,數(shù)據(jù)表使用的編碼為utf-8棍鳖,客戶端輸入的字符為gb2312編碼,此時將數(shù)據(jù)存入到數(shù)據(jù)表中,查詢的是utf-8碼表渡处,就會出現(xiàn)亂碼問題镜悉。
          解決辦法:
               1)顯示所有字符集編碼變量:show variables 'character%'
               2)存儲亂碼:設(shè)置客戶端編碼為gb2312:set character_set_client=gb2312
               3)顯示結(jié)果亂碼:set character_set_results='gb2312'
        
修改數(shù)據(jù):
  update table_name set 字段名 = 值,字段名 = 值 where 條件
      注意:書寫update先書寫where條件医瘫,以免忘記侣肄。

刪除數(shù)據(jù):
  delete from table_name where 條件:刪除數(shù)據(jù)時一條條的進行刪除。
  truncate table_name:摧毀整個表醇份,重建表結(jié)構(gòu)稼锅。

簡單查詢數(shù)據(jù):
   一般查詢: select 字段名,字段名 from table_name
   過濾重復(fù)數(shù)據(jù):select distinct 字段名僚纷,字段名 from table_name
   查詢中使用別名:select name as 姓名, enScore + chScore + 10 as 總成績 from tabe_name(不跟as也可以)
   結(jié)果排序:select * from table_name order by 字段名 asc(升)|desc(降序)矩距,默認(rèn)是升序

比較運算符:
  between ...and...:包含前后的值
  顯示在列表中的值:in(value1, value2),值為value或者value2
  模糊查詢:like '張pattern'   pattern:_代表一個字符,%代表0個或多個字符
    is null判斷是否為null

合計函數(shù):
     count(字段名):計算條目數(shù)量怖竭,只統(tǒng)計有值的行锥债,NULL不統(tǒng)計
     select count(*) from table_name where 條件

     sum(字段名 + 字段名 + ...):求和,只適用于數(shù)值痊臭,非數(shù)值報錯哮肚。

    avg(字段名 + 字段名 + ...):求平均數(shù)

    max(字段名 + 字段名 + ...)/min(字段名 + 字段名 + ...):求一列中的最大值,最小值

分組:group by
    select name, sum(price) from goods group by name:相同name的分為一組趣兄,對同一組的價格進行求和

having:過濾(where也可以用于過濾,區(qū)別在于having可以跟合計函數(shù))

時間日期相關(guān)函數(shù)

addtime(date1, date2):將data2加到data1
current_date():獲取當(dāng)前日期
current_time():獲取當(dāng)前時間
current_timestamp():獲取當(dāng)前時間戳
date(datetime):獲取datatime的日期部分
date_add(date1悼嫉,date2):data1中加上data2
date_sub(date1, date2):data1中減去data2
datediff(date1,date2):兩個時間差
now():獲取當(dāng)前時間
year|month|date(datetime):年月日

字符串相關(guān)函數(shù)

charset(str):返回字符串字符集
concat(str,str):鏈接字符串
instr(str1, str2):返回str2在str1中出現(xiàn)的位置艇潭,,沒有返回0
ucase(str):轉(zhuǎn)換成大寫
lcase(str):轉(zhuǎn)換成大寫
left(str,len):從str左邊起去len個字符
length(str):str長度
replace(str, search, replace):將str中的search替換成replace
strcmp(str1,str2):逐個字符比較兩個字符串大小
substring(str, position, len):從str的position開始去len個字符
ltrim(str), rtrim(),trim():去掉兩邊空格

數(shù)學(xué)相關(guān)函數(shù)

abs(num):去絕對值
bin(num):十進制轉(zhuǎn)二進制
ceiling(num):向上取整
conv(num, from_base, to_base):進制轉(zhuǎn)換
floor(num):向下去整
forrmat(num, decimal_places):保留小數(shù)位數(shù)
hex(num):轉(zhuǎn)十六進制
least(num1, num2, ....):求最小值
mod(num, denominator):求余
rand([seed]) 

定義表的約束

主鍵約束:
     primary key:不允許重復(fù)戏蔑,不能為空蹋凝,且唯一
     刪除主鍵約束:alter table table_name drop primary key;
     聯(lián)合主鍵:primary key(tea_id, stu_id)
     
定義主鍵自動增長:
     auto_increment;
     id int primary key auto_increment
     如果將其中一條數(shù)據(jù)刪除,此id將不會填充

定義唯一約束:
     unique
     id int primary key auto_increment;
     name varchar(40) unique;

定義唯一約束:
     not null
     name varchar(40) unique not null;

定義外建約束:
student_id int,(此id來自學(xué)生表中的id), 
constraint 外建名稱 foreign key(student_id) references student(id)

數(shù)據(jù)表的設(shè)計

一對多(多對一):在"多"的一方中創(chuàng)建外建保存"一"的一方的Id总棵。

多對多:創(chuàng)建中間表表示兩張表的關(guān)系鳍寂。

一對一:具有主從關(guān)系,人-主情龄,身份證-從迄汛。主可以沒有從,從不能沒有主骤视。
     在從表中鞍爱,將從表的主鍵也設(shè)置為外建,并且外建來自于主表的主鍵专酗。

自關(guān)聯(lián)數(shù)據(jù)的數(shù)據(jù)庫設(shè)計:(家族關(guān)系)
     在同一張表中創(chuàng)建字段描述關(guān)系(創(chuàng)建一個字段保存父類編號即可)睹逃。
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市祷肯,隨后出現(xiàn)的幾起案子沉填,更是在濱河造成了極大的恐慌疗隶,老刑警劉巖,帶你破解...
    沈念sama閱讀 212,080評論 6 493
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件翼闹,死亡現(xiàn)場離奇詭異斑鼻,居然都是意外死亡,警方通過查閱死者的電腦和手機橄碾,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,422評論 3 385
  • 文/潘曉璐 我一進店門卵沉,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人法牲,你說我怎么就攤上這事史汗。” “怎么了拒垃?”我有些...
    開封第一講書人閱讀 157,630評論 0 348
  • 文/不壞的土叔 我叫張陵停撞,是天一觀的道長。 經(jīng)常有香客問我悼瓮,道長戈毒,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,554評論 1 284
  • 正文 為了忘掉前任横堡,我火速辦了婚禮埋市,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘命贴。我一直安慰自己道宅,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 65,662評論 6 386
  • 文/花漫 我一把揭開白布胸蛛。 她就那樣靜靜地躺著污茵,像睡著了一般己肮。 火紅的嫁衣襯著肌膚如雪邢笙。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,856評論 1 290
  • 那天奇颠,我揣著相機與錄音民珍,去河邊找鬼襟士。 笑死,一個胖子當(dāng)著我的面吹牛嚷量,可吹牛的內(nèi)容都是我干的敌蜂。 我是一名探鬼主播,決...
    沈念sama閱讀 39,014評論 3 408
  • 文/蒼蘭香墨 我猛地睜開眼津肛,長吁一口氣:“原來是場噩夢啊……” “哼章喉!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,752評論 0 268
  • 序言:老撾萬榮一對情侶失蹤秸脱,失蹤者是張志新(化名)和其女友劉穎落包,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體摊唇,經(jīng)...
    沈念sama閱讀 44,212評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡咐蝇,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,541評論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了巷查。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片有序。...
    茶點故事閱讀 38,687評論 1 341
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖岛请,靈堂內(nèi)的尸體忽然破棺而出旭寿,到底是詐尸還是另有隱情,我是刑警寧澤崇败,帶...
    沈念sama閱讀 34,347評論 4 331
  • 正文 年R本政府宣布盅称,位于F島的核電站,受9級特大地震影響后室,放射性物質(zhì)發(fā)生泄漏缩膝。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,973評論 3 315
  • 文/蒙蒙 一岸霹、第九天 我趴在偏房一處隱蔽的房頂上張望疾层。 院中可真熱鬧,春花似錦贡避、人聲如沸痛黎。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,777評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽舅逸。三九已至桌肴,卻和暖如春皇筛,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背坠七。 一陣腳步聲響...
    開封第一講書人閱讀 32,006評論 1 266
  • 我被黑心中介騙來泰國打工水醋, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人彪置。 一個月前我還...
    沈念sama閱讀 46,406評論 2 360
  • 正文 我出身青樓拄踪,卻偏偏與公主長得像,于是被迫代替她去往敵國和親拳魁。 傳聞我的和親對象是個殘疾皇子惶桐,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 43,576評論 2 349

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

  • 1. Java基礎(chǔ)部分 基礎(chǔ)部分的順序:基本語法,類相關(guān)的語法,內(nèi)部類的語法姚糊,繼承相關(guān)的語法贿衍,異常的語法,線程的語...
    子非魚_t_閱讀 31,598評論 18 399
  • 第5章 引用類型(返回首頁) 本章內(nèi)容 使用對象 創(chuàng)建并操作數(shù)組 理解基本的JavaScript類型 使用基本類型...
    大學(xué)一百閱讀 3,219評論 0 4
  • 2018南昌正中美術(shù)考研工作室招生簡章 【目標(biāo)院芯群蓿】 以輸送至江西師范大學(xué)美術(shù)專業(yè)為主贸辈,兼顧其他院校。 【招生對象...
    不為修來世閱讀 124評論 0 0
  • 聶申龍 中德安聯(lián)人壽保險有限公司濟南SSC 六項精進臨沂242期樂觀一組 【日精進打卡第195天】 【知~學(xué)習(xí)】《...
    聶申龍閱讀 199評論 0 0
  • 清歡。
    呆呆77閱讀 143評論 0 0