數據庫學習入門

1.數據庫作用

數據是數據庫中存儲的基本對象,包括:文字 圖形 圖像 聲音 有組織的 可共享的數據集合

2.常用的DBMS

MYSQL oracle SQL-Server ?DB2

3.MYSQL登錄

開始-運行-cmd ? 輸入:mysql -uroot -p,然后輸入密碼或者 mysql -uroot -p 密碼 退出 quit \q

4.基本SQL語句

創建數據庫--create database school;

查看有哪些數據庫---show databases;

刪除數據庫-drop database school;

5.向數據庫中存儲數據

首先進入數據庫 use dbname;

查看數據庫中的表 show tables;

在數據庫中創建表 create table student(name varchar(20),age int sex char(2));

向表中插入數據-insert into dbname values('張三',18,‘男’);

查看表中所有的數據--select * ?from student;

只查看姓名和年齡--select name,age ?from student;

6.常用的數據類型

char varchar int?

7.其他常用的數據類型

date datetime text/blob

8.mysql常用函數

查看數據庫版本-select versin();

查看當前數據庫時間--select current_date();

查看當前連接數據庫的用戶--select user()

or(滿足一個條件)和and(都需要滿足)

in(x,x)返回條件中的記錄與or作用相似

between and 返回兩者之間的記錄

like與%一起使用 模糊查詢 ?like‘張%’ like‘3.com’ ?like'%a%';

order by 實現排序-asc desc ?select * ?from stu order by age desc;

as為查詢的列起別名 select name as '姓名',age as '年齡',sex as '性別' from stu;

group by對于查詢出的數據結果進行分類(分組)--select ?* ?from stu group by sex;

having子查詢:對于where查詢出的結果再次查詢

查找出年齡大于20歲學生,并且在其中找出姓名等于xxx的學生

select * ?from ?stu where age>20 having name='XX' 或者age>20 and name='XX'

destinct過濾查詢的重復型記錄,只顯示唯一的記錄

將學生的性別過濾---select distinct(sex) from stu;

count 查看表中有幾條數據 ?select count(*) from stu;

limit限制查詢結果的輸出數量 同時也可以實現數據的分頁

查詢EQ前三名的學生---select * ?from stu order by EQ desc limit 3;

實現查詢記錄的分頁 ?select * ?from stu limit 0,3;

約束----定義表級的強制規則 數據的完整性?

非空約束(not null) 唯一約束(UNIQUE) 默認約束(default) 主鍵約束(primary key)

id逐漸自增,減 ?auto_increment的特點----自增值 當刪除某一值時,他不會自動填充,而是繼續自增1 ?外鍵約束(foreign key)

8.如何控制冗余數據

一般來說通過數據庫的范式理論 設計數據庫的范式來控制冗余

共有5個范式 一般達到第三范式 第一范式:對于表中的每一行,必須且僅僅有唯一的行值,在一行中的每一列僅有唯一的值并且具有原子性 第二范式 要求非主鍵列是主鍵的子集,非主鍵列活動必須完全依賴整個主鍵。主鍵必須有唯一性的元素,一個主鍵可以由一個或更多的組成唯一值的列組成。一旦創建,主鍵無法改變,外鍵關聯一個表的主鍵。主外鍵關聯意味著一對多的關系。第三范式:要求非主鍵列互不依賴 ?

MYSQL的聚合函數

1.最大值 找出EQ最高的學生 ?select ?name,eq ?from student where eq=(select ?max(EQ) from student);

select max(article) as article from shop;

2.最小值 找出EQ最低的學生 select name,min(EQ) from student; ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??

3.count()統計查詢出的記錄總數 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?查詢出學生的總條數? select count(name)? from student; ?

4.avg()求平均值

查詢學生EQ的平均值 select avg(EQ) ?from ?student;

5.sun() 求和 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?

查詢學生EQ的總和 select sum(EQ) ?from student;

6.修改字段類型 ?alter table student modify sex char(5);

增加列 alter table student add address varchar(50);

刪除列 alter table student drop ?address;

修改列的名稱 alter table student change name names varchar(20);

修改表的名字 ?alter table student ?to ?stu;

7.MYSQL之表連接

內鏈接:等值連接,因為他將兩個表中的公共字段有相等的值連接起來。

左連接:顯示sql語句中left join左邊表中的所有記錄,即使在left join右邊的表中沒有滿足連接條件的數據也被顯示。當滿足連接條件時,left join右邊的表中的相應的記錄與left join左邊表中的相應記錄結合顯示。

右連接:與左連接相對應,他顯示sql中 right join右邊表中的記錄,即使在right join左邊沒有的記錄也被顯示。當滿足條件時,right join左邊表中相應記錄將與right join右邊表中相應記錄進行結合顯示。通常左連接和右連接顯示內容一致。 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?left join 以左邊的表查詢為主 ? ?right join 以右邊的表查詢為主

8.MYSQL之視圖 ?

他可以訪問一個或多個表中的數據,是從一個或多個表中派生出的數據對象

視圖的特點:1將復雜的查詢簡單化 2,提供安全機制,它保證用戶只可以看得到的數據,系統中真實的表不可被存取的

創建視圖 ?create view case_view as ?select cases.id as '訂單編號',user.name as '顧客姓名',goods.name as '物品名稱' from user inner join(case inner join goods on cases.goods_id=goods.id)on user.id=case.user_id;

create view test.v as ?select * from t;

修改視圖:alter view viewname as SQL;

刪除視圖:drop view viewname;

9.MYSQL的事務與引擎?

事務他是一個操作序列,這些操作要么執行要么不執行,他是一個不可分割的工作單位。

事務是數據庫維護數據一致性的單位,在每個事務結束時,都能保持數據一致性

10.如何在innodb中實現事務:

begin 告知服務器要開始一個事務

rollback:如果事務發生異常,那么數據回滾

commit 事務執行成功,進行數據提交

11.鎖 ?lock table tablename(read,write)

lock table 可以對表進行加鎖控制,以保證用戶并發訪問時非事務表的數據一致性

unlock tables 釋放鎖

12.index 索引

索引是被用來快速找出在一個列上用一特定值的行。沒有索引,MySQL不得不首先以第一條記錄開始并然后讀完整個表直到他找出相關的行,表越大,花費時間越多。如果表對于查詢的列有一個索引,MySQL能快速到達一個位置去搜尋到數據文件的中間,沒有必要考慮所有數據。

MySQL有四種類型的索引:主鍵(primary key),唯一索引(uinque),全文索引(full ?index),普通索引(index)

12.mysql的備份方式:backup ?restore copy mysqldump select ?into

backup備份myisam表 ?use test; backup table chat to 'c:\\db_backup';(只生成.frm和.myd 可以在數據庫恢復后重建索引) ?drop table chat; ?restore table chat ?from 'c:\\db_backup';

copy備份 ?停止mysql服務器-避免在備份的時候有用戶進行數據庫的訪問 ?復制數據庫的文件夾

mysqldump備份

1.備份 ? #mysqldump -uroot -p dbname >xxxname.sql ?2.恢復 #mysql -uroot ?-p dbname<>

備份某個表

備份 ?#mysqldump -uroot -p dbname tablename ?>xxxname.sql

恢復 #mysql -uroot -p dbname<>

用select into 備份

備份 mysql>select * ?from tablename into outfile ‘c:\\db_backup\table.dat’

刪除表 mysql>delete from tablename;

恢復 mysql>load data infile 'c:\\db_backup\table.dat' into table tablename;

查看數據庫中有哪些數據庫 mysqlshow -uroot -p

查看數據庫中有哪些表 mysqlshow ?-uroot ?-p ?dbname?

查看數據庫中表的結構 ?mysqlshow -uroot -p dbname tablename

mysqlcheck -uroot -p ?dbname //檢測

mysqlcheck -urooot -p ?--auto-repair dbname //如碰到有問題的表自動進行修復

mysqlcheck -uroot -p ?--optimize //優化表

13.MYSQL管理方式

連接方式--mysql -hlocalhost -uroot 通過本地主機,以root用戶訪問,無需密碼驗證

mysql -hlocalhost 通過本地主機,匿名用戶訪問,無需密碼驗證

設置密碼 ---mysqladmin

外部:修改密碼-- mysqladmin hlocalhost -uroot -p password "newpassword"

密碼為空--mysqladmin hlocalhost -uroot -p ?password ""

設置root用戶遠程訪問密碼--mysqladmin -hremote -uroot -p password ""

內部設置密碼:

設置root用戶本地登錄密碼 ?set password for ‘root’@‘localhost’=password('000000');

設置root用戶遠程登錄密碼 set password ?for 'root'@'remote'=password('newpassword');

privileges有哪些 :

alter 修改表和索引 create創建數據庫和表 delete刪除表中以有的記錄 drop 刪除數據庫和表 inde 創建和刪除索引 ?insert向表中插入數據 ?select 檢索表中的數據 update修改表中的記錄 file讀寫服務器上的數據 process查看服務器中執行的線程信息或殺死線程

reload重載授權表或清空日志,主機緩存或表緩存 shutdown 關閉服務器 all所有權限

revoke取消授權

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

推薦閱讀更多精彩內容