黑馬就業班第四天-資料庫
mysql資料庫
1、資料庫的簡介
就是一個檔案系統,使用標準sql對資料庫進行操作(crud)
(2)常見的資料庫
* oracle:是oracle公司產品,是大型的收費的資料庫
* db2:是ibm公司的產品,是大型的收費的資料庫
* SQLServer:是微軟公司產品,是中型的資料庫
* MySQL : 在oracle收購之後6.x版本開始收費,之前的版本是免費的。
* SQLite:是小型的嵌入式資料庫,應用在客戶端開發中,比如安卓
(3)關聯式資料庫:儲存的是實體之間的關係
* 比如有購物網站,有使用者,訂單,商品,稱為實體
* 使用者、訂單和商品之間的關係稱為實體之間的關係
* 使用er圖表示實體之間的關係
** 實體使用矩形、在實體上面屬性使用橢圓,之間的關係使用菱形
2、mysql的解除安裝
第一步,找到mysql的安裝路徑,找到一個檔案my.ini檔案找到兩個路徑,複製出來
basedir="C:/Program Files (x86)/MySQL/MySQL Server 5.5/"
datadir="C:/ProgramData/MySQL/MySQL Server 5.5/Data/"
第二步,開啟控制皮膚,找到安裝的mysql資料庫,進行解除安裝
第三步,找到第一步複製出來的兩個路徑,把這兩個路徑的裡面的所有的檔案都刪除
第四步,開啟登錄檔 regedit,搜尋mysql,找到了都刪除
第五步,重新啟動系統
3、mysql伺服器的儲存結構
(1)mysql伺服器
* 伺服器:從硬體上,伺服器就是一臺電腦;從軟體上,在電腦上安裝了伺服器軟體。
* mysql伺服器:在一臺電腦上,安裝了mysql資料庫,這臺電腦稱為mysql伺服器。
(2)mysql伺服器的儲存結構
* 有多個資料庫,在每個資料庫裡面有多個資料庫表,在每個表裡面有多條記錄
* 學習重點:對資料庫、資料庫表、表中的記錄的操作(crud操作)
4、sql語言簡介
(1)資料庫是檔案系統,使用標準sql對資料庫進行操作
* 標準sql,在mysql裡面使用語句,在oracle、db2都可以使用這個語句
(2)什麼是sql
* Structured Query Language, 結構化查詢語言,對資料庫進行操作
* sql非過程性語言,不需要依賴於其他的條件就可以執行
** 比如 在java裡面
*** if(a > 5) {
System.out.....
}
(3)sql的分類
第一類:DDL (資料定義語言)
* 建立資料庫,建立資料庫表
* 常用的語句 create
第二類:DML (資料操縱語言)
* 對錶中的記錄進行增加 修改 刪除操作
* 常用的語句 insert update delete
第三類:DCL (資料控制語言)
* 資料庫的程式設計的語言
第四類:DQL (資料查詢語言)
* 對錶中的進行查詢的操作
* 常用的語句 select
* 學習的主要內容:使用sql語言對資料庫、資料庫表、表中的記錄進行增刪改查(crud)操作
5、使用sql對資料庫操作
(1)連線資料庫
* 開啟cmd視窗,使用命令,連線mysql資料庫
* 命令: mysql -u root -p 密碼
(2)建立資料庫
* 語句: create database 資料庫的名稱;
** 示例:create database testdb1;
(3)檢視所有的資料庫
* 語句:show databases;
(4)刪除資料庫
* 語句:drop database 要刪除的資料庫的名稱;
** 示例: drop database testdb1;
(5)切換資料庫
* 如果想要建立一個資料庫表,這個表要在一個資料庫裡面,所以需要切換到資料庫
* 語句:use 要切換的資料庫的名稱;
** 示例:use testdb2;
6、使用sql對資料庫表操作
(1)建立資料庫表
* 語句 create table 表名稱 (
欄位 型別,
欄位 型別
)
* 建立表 user,欄位 id username password sex
create table user (
id int,
username varchar(40),
password varchar(40),
sex varchar(30)
)
(2)mysql的資料型別
字串型
VARCHAR、CHAR
* 當建立表時候,使用字串型別,name varchar(40),指定資料的長度
* varchar和char的區別
** varchar的長度是可變的,比如 name varchar(5),存值 a ,直接把a存進去
** char的長度是固定的,比如 name char(5),存值 b,把b存進去,後面加很多空格
大資料型別
BLOB、TEXT
* 使用這個型別可以儲存檔案,一般開發,不會直接把檔案存到資料庫裡面,存檔案的路徑
數值型
TINYINT 、SMALLINT、INT、BIGINT、FLOAT、DOUBLE
* 對應java裡面
byte short int long float double
邏輯性
BIT
* 類似java裡面的boolean
日期型
DATE:用於表示日期 1945-08-15
TIME:用於表示時間 19:10:40
下面的兩個型別可以表示日期和時間
DATETIME:手動新增時間到資料表裡面
TIMESTAMP:自動把時間新增到表裡面
(3)檢視錶結構
* 語句 desc 表名稱;
(4)mysql的約束有三種
第一種,非空約束 not null
* 表示資料不能為空
第二種,唯一性約束 unique
* 表中的記錄不能重複的
第三種,主鍵約束 primary key
* 表示非空,唯一性
* 自動增長 auto_increment
(5)建立帶約束的表
create table person (
id int primary key ,
username varchar(40) not null,
sex varchar(20)
)
(6)刪除表
* 語句 drop table 要刪除表的名稱;
(7)檢視當前的資料庫裡面有哪些表
* 語句 show tables;
7、使用sql對錶中的記錄進行操作(增刪改查操作)
(1)向表裡面新增記錄 insert
* 語句 insert into 要新增的表名稱 values(要新增的值);
* 注意:當新增的欄位的資料型別是int型別,直接寫值
如果新增的欄位的型別是varchar型別和日期型別,使用單引號把值包起來
* 練習:向user表裡面新增記錄
insert into user values(1,'aaa','123456','nan');
* 自動增長的效果
** 建立一個表
create table stu (
id int primary key auto_increment,
sname varchar(40)
)
insert into stu values(null,'aaa');
(2)修改表裡面的記錄 update
* 語句 update 表名稱 set 要修改的欄位的名稱1=修改的值1,要修改的欄位的名稱2=修改的值2 where 條件
* 練習:修改user表裡面id=1的username修改為QQQ,修改password為999
update user set username='QQQ',password='999' where id=1;
(3)刪除表裡面的記錄 delete
* 語句 delete from 表名稱 where 條件
* 練習:刪除user表裡面id=1的記錄
delete from user where id=1;
** 不新增where條件,把表裡面的所有的記錄都刪除
(4)查詢表中的記錄 select
* 語句 select 要查詢的欄位的名稱 (*) from 表名稱 where 條件
* create table user (
id int,
username varchar(40),
chinese int,
english int
)
* insert into user values(1,'lucy',100,30);
insert into user values(2,'mary',60,80);
insert into user values(3,'jack',90,20);
* 練習一:查詢user表裡面的所有的資料
select * from user;
* 練習二:查詢user表裡面使用者名稱和語文成績
select username,chinese from user;
* 練習三:查詢user表裡面id=2的資料
select * from user where id=2;
(4)別名
* as 別名
select username as u1,chinese as c1 from user;
(5)distinct,去除表裡面重復記錄
* 語句 select distinct * from 表名;
(6)where子句
第一,運算子 < > >= <=
* 練習:查詢user表裡面語文成績大於60的所有的人員
select * from user where chinese > 60;
第二,in:在範圍內
* 練習:查詢user表裡面英語成績是80、90的人員的資訊
select * from user where english in (80,90);
第三,and:在where裡面如果有多個條件,表示多個條件同時滿足
* 練習:查詢user表裡面語文成績是100,並且英語成績是30的人員的資訊
select * from user where chinese=100 and english=30;
第四,得到區間範圍的值
* 練習:查詢user表裡面語文成績在70-100之間的值
寫法一,select * from user where chinese >=70 and chinese <=100;
寫法二,select * from user where chinese between 70 and 100;
第五,like:模糊查詢
* 練習:查詢user表裡面username包含a的人員資訊
select * from user where username like '%a%';
(7)檢視當前的執行的資料庫
select database();
(8)對錶中查詢的記錄排序 order by
* order by寫在select語句的最後
第一,升序 order by 要排序欄位 asc(asc可以省略,預設的情況下就是升序)
* 練習:對user表裡面查詢的資料,根據語文成績進行升序排列
select * from user order by chinese asc;
第二,降序 order by 要排序欄位 desc
* 練習:對user表裡面的英語成績進行降序排列
select * from user order by english desc;
8、聚集函式
(1)使用提供一些函式,直接實現某些功能
(2)常用的聚集函式
第一,count()函式
* 根據查詢的結果,統計記錄數
* 寫法 select count(*) from ...where....
* 練習一;查詢user表裡面有多少條記錄
select count(*) from user;
* 練習二:查詢user表裡面語文成績大於60的人員有多少
select count(*) from user where chinese>60;
第二,sum()函式
* 求和的函式
* 寫法 select sum(要進行求和欄位) from ...where....
* 練習一:得到user表裡面的語文的總成績
select sum(chinese) from user;
* 練習二:得到user表裡面語文總成績,英語的總成績
select sum(chinese),sum(english) from user;
* 練習三:得到user表裡面語文成績的平均分(總的成績/總的人數)
select sum(chinese)/count(*) from user;
第三,avg()函式
* 計算的平均數的函式
* 寫法 select avg(要計算平均數的欄位名稱) from ...
* 練習:得到user表裡面語文成績的平均分
select avg(chinese) from user;
第四,max()函式:計算最大值
* 寫法 select max(欄位) from...
第五,min()函式:計算最小值
* 寫法 select min(欄位) from...
* 練習:得到user表裡面語文成績的最高分數,英語的成績最低分數
select max(chinese),min(english) from user;
9、分組操作
分組使用 group by 根據分組的欄位
在分組的基礎之上再進行條件的判斷 having,後面可以寫聚集函式
(1)舉例說明
* 建立表 orders
create table orders (
id int,
name varchar(40),
price int
)
insert into orders values(1,'電視',2000)
insert into orders values(2,'電視',2000);
insert into orders values(3,'蘋果',10);
insert into orders values(4,'手機',500);
insert into orders values(5,'手機',500);
insert into orders values(6,'滑鼠',33);
insert into orders values(7,'滑鼠',33);
(2)練習一:統計orders表裡面每類商品的總的價格
select name,sum(price) from orders group by name;
(3)練習二:對商品進行分類,得到每類商品的總價格大於66的商品
select name,sum(price) from orders where sum(price)>66 group by name;
= 上面的語句在邏輯上沒有問題,在語法上,where裡面不能寫聚集函式,報錯
正確的寫法:
select name,sum(price) from orders group by price having sum(price)>66;
10、mysql的視覺化工具使用
(1)使用工具建立資料庫,建立表,向表新增記錄,刪除表中的記錄
11、mysql的關鍵字limit
(1)limit關鍵字查詢表中的某幾條記錄
(2)limit關鍵字不是標準sql的關鍵字,只能在mysql資料庫裡面使用,實現分頁的功能
* 在oracle裡面特有關鍵字 rownum
* 在sqlserver裡面特有關鍵字 top
(3)使用limit查詢前幾條記錄
* 寫法: limit 前幾條記錄 limit 3
* 練習:查詢user表裡面前三條記錄
select * from user limit 3;
select * from user limit 0,3;
(4)使用limit查詢第幾條到第幾條記錄
* 寫法: limit 第一個引數,第二個引數
** 第一個引數開始的記錄數的位置,從0開始的
** 第二個引數從開始的位置向後獲取幾條記錄
* 練習:查詢user表裡面第二條到第四條記錄
select * from user limit 1,3;
12、重置mysql的root密碼
(1)知道密碼,修改密碼
第一,連線mysql資料庫
第二,切換資料庫 mysql use mysql
第三,進行密碼的修改 update user set password=password('要修改成的密碼的值') where user='root';
第四,重新啟動mysql服務
(2)忘記密碼,重置密碼
第一,把mysql的服務關閉
第二,開啟cmd視窗,輸入命令 mysqld --skip-grant-tables(不要加分號)
第三,再開啟cmd視窗,連線資料庫,不需要輸入密碼 mysql -u root
第四,切換資料庫 mysql use mysql
第五,進行密碼的修改 update user set password=password('要修改成的密碼的值') where user='root';
第六,把兩個cmd視窗都關閉,開啟工作管理員,找到mysqld程式,結束
第七,啟動mysql服務
【多表操作:】
inner join;
left join;
right join;
select ifnull(chinese,0)
相關文章
- 黑馬就業班第五天-JDBC就業JDBC
- 黑馬程式設計師—一張帖看完黑馬所有學科、班級就業薪資貼程式設計師就業
- 傳智播客2018年python基礎班就業班人工智慧深度學習機器學習黑馬15期Python就業班全套培訓教程Python就業人工智慧深度學習機器學習
- 中國資料庫市場的領軍黑馬——亞信安慧AntDB資料庫資料庫
- PHP基礎班+就業班全套視訊學習教程PHP就業
- Oracle資料庫概論及就業前景Oracle資料庫就業
- Java就業班day09_xml&tomcatJava就業XMLTomcat
- 美國留學十大“黑馬”專業
- 大資料就業前景好嗎 鄭州大資料就業怎麼樣大資料就業
- EXCEL憋出大招,逆襲大資料的黑馬出現了Excel大資料
- Python學習資源(傳播智客第15期Python就業和基礎班 AI人工智慧學習班 機器學習班級)Python就業AI人工智慧機器學習
- 2020JAVA 就業班視訊學習Java就業
- python就業班----正規表示式及re應用Python就業
- Redis 的資料過期了就會馬上刪除麼?Redis
- 黑馬程式設計師程式設計師
- 黑馬JavaWeb-day02JavaWeb
- “資料安全管理”培訓班順利開班!
- 大資料風控很好,但過度的吹,就變成了黑大資料
- PHP全棧開發工程師速成班-CSDN就業班-專題視訊課程PHP全棧工程師就業
- 本地生活再現“黑馬”,這一行業有多香!行業
- 行業黑馬顯現 月薪過萬職位暴漲行業
- 大資料的就業方向有哪些?大資料就業
- 黑狐”木馬分析報告
- Python常用資料分析庫有哪些?Python學習班!Python
- 快遞行業半路殺出一匹“黑馬” 順豐要“慌了”行業
- 玩轉資料庫,用EXCEL就夠了資料庫Excel
- 資料建模大資料就業挑戰月薪30K大資料就業
- SQL語言有哪些分類?linux資料庫學習班SQLLinux資料庫
- 零基礎報成都java培訓班需要學多久才能就業?Java就業
- 黑馬程式設計師-Java概述程式設計師Java
- 90後黑客追女神未果 黑掉全校資料庫表白黑客資料庫
- 烏班圖-Ubuntu 相關資料Ubuntu
- Python全棧工程師特訓班五期-直播回放-CSDN就業班-專題視訊課程Python全棧工程師就業
- 大資料時代,就業轉型必備技能!大資料就業
- 前腳剛往資料庫插入資料,後腳就查不出來?資料庫
- python全棧工程師-CSDN就業班-專題視訊課程Python全棧工程師就業
- UI設計師成長之路-CSDN就業班-專題視訊課程UI就業
- 【UI】第五週 VI專案-CSDN就業班-專題視訊課程UI就業