本篇內(nèi)容主要講解“MySQL數(shù)據(jù)庫的概念介紹”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學(xué)習(xí)“MySQL數(shù)據(jù)庫的概念介紹”吧!
創(chuàng)新互聯(lián)服務(wù)項目包括伊美網(wǎng)站建設(shè)、伊美網(wǎng)站制作、伊美網(wǎng)頁制作以及伊美網(wǎng)絡(luò)營銷策劃等。多年來,我們專注于互聯(lián)網(wǎng)行業(yè),利用自身積累的技術(shù)優(yōu)勢、行業(yè)經(jīng)驗、深度合作伙伴關(guān)系等,向廣大中小型企業(yè)、政府機構(gòu)等提供互聯(lián)網(wǎng)行業(yè)的解決方案,伊美網(wǎng)站推廣取得了明顯的社會效益與經(jīng)濟效益。目前,我們服務(wù)的客戶以成都為中心已經(jīng)輻射到伊美省份的部分城市,未來相信會繼續(xù)擴大服務(wù)區(qū)域并繼續(xù)獲得客戶的支持與信任!
數(shù)據(jù)庫(Database)是按照數(shù)據(jù)結(jié)構(gòu)來組織、存儲和管理數(shù)據(jù)的倉庫;
每個數(shù)據(jù)庫都有一個或多個不同的API用于創(chuàng)建,訪問,管理,搜索和復(fù)制所保存的數(shù)據(jù);
關(guān)系型數(shù)據(jù)庫有:
Oracle
、MySQL
、PostgreSQL
、SQL Server
、DB2
等;
非關(guān)系型數(shù)據(jù)庫有:NOSQL
、MongoDB
、Cloudant
、redis
、Elasticsearch
、HBase
等;
優(yōu)點:
容易理解,二維表結(jié)構(gòu)是非常貼近邏輯世界一個概念,關(guān)系模型相對網(wǎng)狀、層次等其他模型來說更容易理解 易于維護,都是使用表結(jié)構(gòu),格式一致;
使用方便,通用的SQL語言使得操作關(guān)系型數(shù)據(jù)庫非常方便;
缺點:
讀寫性能比較差,尤其是海量數(shù)據(jù)的高效率讀寫;
固定的表結(jié)構(gòu),靈活度不高;
每一步都要進行加鎖的操作,增加數(shù)據(jù)庫負擔(dān);
不擅長對簡單查詢需要快速返回結(jié)果的處理;
優(yōu)點:
格式靈活,存儲數(shù)據(jù)的格式可以是key,value形式、文檔形式、圖片形式等等,文檔形式、圖片形式等等,使用靈活,應(yīng)用場景廣泛,而關(guān)系型數(shù)據(jù)庫則只支持基礎(chǔ)類型;
無需經(jīng)過sql層的解析,讀寫性能很高;
基于鍵值對,數(shù)據(jù)沒有耦合性,容易擴展;
缺點:
不提供sql支持,學(xué)習(xí)和使用成本較高;
無事務(wù)處理;
數(shù)據(jù)結(jié)構(gòu)相對復(fù)雜,復(fù)雜查詢方面稍欠;
MySQL是一種關(guān)系型數(shù)據(jù)庫管理軟件;
也是Web世界中使用最廣泛的數(shù)據(jù)庫服務(wù)器;
MySQL內(nèi)部有多種數(shù)據(jù)庫引擎,最常用的引擎是支持?jǐn)?shù)據(jù)庫事務(wù)的InnoDB;
MySQL在過去由于性能高、成本低、可靠性好,已經(jīng)成為最流行的開源數(shù)據(jù)庫,因此被廣泛地應(yīng)用在Internet上的中小型網(wǎng)站中。隨著MySQL的不斷成熟,它也逐漸用于更多大規(guī)模網(wǎng)站和應(yīng)用,比如維基百科、Google和Facebook等網(wǎng)站。非常流行的開源軟件組合LAMP中的“M”指的就是MySQL;
整數(shù):tinyint
、smallint
、mediumint
、int
、bigint
;
浮點數(shù):float
、double
、real
、decimal
;
日期和時間:date
、time
、datetime
、timestamp
、year
;
字符串:char
、varchar
;
文本類型:tinytext
、text
、mediumtext
、longtext
;
二進制:tinyblob
、blob
、mediumblob
、longblob
;
對數(shù)據(jù)類型的修飾符:unsigned
、not null
、default
;
DDL:數(shù)據(jù)庫定義語言,負責(zé)數(shù)據(jù)庫定義,包括CREATE
、ALTER
、DROP
;
# 創(chuàng)建庫 create database Student; # 如果沒有Student這個庫則創(chuàng)建它,character set指定字符集為utf8, 排序規(guī)則為utf8_bin create datebase if not exists Student character set utf8 collate utf8_bin # 刪除庫 drop database Student; # 修改庫 alter database Student character set = utf8mb4 alter database Student collate = utf8mb4_general_ci # 創(chuàng)建表 create table students (id int not null primary key auto_increment, name varchar(250) not null, class varchar(250) not null) engine=InnoDB default charset=utf8; # 查看表結(jié)構(gòu) desc students; # 修改表 alter table students add gender enum('f','m'); alter table students drop gender; alter table students change name username varchar(100) after id; alter table students modify username varchar(100) first; # 刪除表 drop table students;
DML:數(shù)據(jù)庫操作語言, 負責(zé)數(shù)據(jù)集對象操作,包括INSERT
、DELETE
、UPDATE
、SELECT
;
# 給students表增加數(shù)據(jù) insert into students (class,username) values ('一年級', 'Luky'), ('二年級', 'Tom'), ('三年級', 'Mark'); # 修改students表中id = 1 的字段class的值為“初一” update students set class = '初一' where id = 1; # 刪除class為一年級的字段 delete from students where class = '一年級';
DCL:數(shù)據(jù)庫控制語言, 負責(zé)權(quán)限訪問控,包括GRANT
、REVOKE
;
# 先創(chuàng)建用戶,再授權(quán) create user Mark@'172.16.19.%' identified by '123456'; grant all on *.* to Mark@'172.16.19.%'; flush privileges; # 創(chuàng)建用戶的同時給用戶授權(quán) grant all on *.* to Mark@'172.16.19.%' identified by '123456'; flush privileges; # 給用戶授予某些權(quán)限 show grants for Mark@'172.16.19.%'; # 撤銷授權(quán) revoke select ON *.* from Mark@'172.16.19.%'; flush privileges; # 查看用戶的權(quán)限 show grants for Mark@'172.16.19.%'; # 刪除用戶 delete from mysql.user where user = "Mark"; flush privileges; # 刪除用戶 drop user 'Mark'@'192.168.%.%'; # 修改密碼 (1)set password for 'Mark'@'192.168.%.%' = password('123456'); (2)使用update命令,直接修改 mysql.user 用戶表,修改之后flush priveleges;
TCL:事務(wù)控制語言,負責(zé)ACID事務(wù)處理,包括commit(提交)
、rollback(回滾)
;
# SQL刪除記錄語句 sql = "DELETE FROM Student WHERE AGE > %s" % (30) try: cursor.execute(sql) # 向數(shù)據(jù)庫提交 db.commit() except: # 發(fā)生錯誤時回滾 db.rollback()
SQL語句不區(qū)分大小寫,句尾使用分號表示一條語句結(jié)束,
\G
結(jié)尾表示以以豎行顯示
查詢表上的所有的數(shù)據(jù);
select * from Student
查詢部分?jǐn)?shù)據(jù);
select id,name from Student;
as給字段取別名,可以給一個字段取,也可以給多個字段??;
select id as num,name from Student; select id as num,name as username from Student;
where子句用于指明過濾條件,可以使用的算數(shù)運算符有:+, -, * ,/ ,= ,!= ,<=, >=
,連接詞有:and , or
;
select * from Student where id >= 1; select * from Student where id <= 5 and id >1; select * from Student where id <3 or id >10; select * from Student where id between 1 and 5; # between 較小的數(shù) and 較大的數(shù)
like語句用于模糊匹配,%
表示任意長度的字符,_
表示任意單個字符
select * from Student where class like 'Ma%'; select * from Student where class like 'Ma_k';
可以使用null對值進行判斷
select * from Student where id is not null; select * from Student where id is null;
group by 子句可以根據(jù)指定的查詢條件將查詢結(jié)構(gòu)進行分組,用于做聚合運算,可以使用的聚合函數(shù):avg()
,
max()
,min()
,
count()
,sum()
;
select age,gender from students group by gender; select avg(age),gender from students group by gender; select min(age), gender from students group by gender; select max(age), gender from students group by gender; select count(id), gender from students group by gender;
使用order by語句排序,默認是asc,表示升序排列,desc是降序;
select * from Student order by id desc;
having子句用于將分組之后的結(jié)果再次過濾;
select avg(age) as 'average_age', gender from students group by gender having average_age > 50;
limit 子句用于對查詢的結(jié)果進行輸出行數(shù)的限制 ;
# 選前5行 select id,name from students order by id desc limit 5; # 前4個不選,從第5行開始選2行 select id,name from students order by id limit 4, 2;
子句的書寫順序:where -> group by -> having -> order by -> limit
select *,avg(score) as '各班平均成績' from students where id > 1 group by class having avg(score) > 55 order by score desc limit 3 ;
到此,相信大家對“MySQL數(shù)據(jù)庫的概念介紹”有了更深的了解,不妨來實際操作一番吧!這里是創(chuàng)新互聯(lián)網(wǎng)站,更多相關(guān)內(nèi)容可以進入相關(guān)頻道進行查詢,關(guān)注我們,繼續(xù)學(xué)習(xí)!
文章名稱:MySQL數(shù)據(jù)庫的概念介紹
文章分享:http://www.muchs.cn/article18/pgdggp.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站營銷、企業(yè)網(wǎng)站制作、服務(wù)器托管、小程序開發(fā)、關(guān)鍵詞優(yōu)化、微信小程序
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)