第十章 資料庫 10.1 資料庫介紹 1、資料庫相關概念 資料庫伺服器:本質就是一個台電腦,該電腦之上安裝有資料庫管理軟體的服務端 資料庫管理系統RDBMS:本質就是一個C/S架構的套接字軟體 庫(文件夾)| 表(文件) 記錄:抽取一個事物所有典型的特征/數據 2、資料庫管理系統/軟體分類: 關 ...
第十章 資料庫
10.1 資料庫介紹
1、資料庫相關概念 資料庫伺服器:本質就是一個台電腦,該電腦之上安裝有資料庫管理軟體的服務端 資料庫管理系統RDBMS:本質就是一個C/S架構的套接字軟體 庫(文件夾)| 表(文件) 記錄:抽取一個事物所有典型的特征/數據
2、資料庫管理系統/軟體分類: 關係型: 有表結構,存取數據前必先定義表結構,存數據必須按照欄位的類型或者約束來 典型代表:MySQL,Oracle,DB2,SQL server 非關係型: 存取數據都是採用key:value的形式 非關係型:Mongodb,redis,memcache
10.2 mysql 安裝以及製作系統服務
1、安裝 、加環境變數
2、把 mysqld 軟體做成系統服務 註意:製作之前先把mysqld關掉
C:\Windows\system32>tasklist |findstr mysqld mysqld.exe 8372 Console 2 454,916 K C:\Windows\system32>taskkill /F /PID 8372 成功: 已終止 PID 為 8372 的進程。
製作:(管理員身份運行cmd)
mysqld --install 查看:windows+r 輸入services.msc
3、啟動:
未製作系統服務的啟動方式: 1、啟動服務端 mysqld 2、啟動客戶端 mysql -uroot -p -h127.0.0.1 -P 3306 如果是在本機登錄mysqld服務端可以簡寫: mysql -uroot -p 製作完系統服務後就可以滑鼠點擊啟動或關閉mysql: windows+r 輸入services.msc 找到mysql,啟動或關閉
4、破解管理員密碼
1、先關閉mysqld服務端 2、以跳過授權表的方式在命令行中啟動mysqld服務端 mysqld --skip-grant-tables 3、客戶端直接以無密碼的方式登錄root用戶,修改密碼 mysql -uroot -p mysql> update mysql.user set password=password("123") where user="root" and host="localhost"; #Query OK, 0 rows affected (0.00 sec) #Rows matched: 1 Changed: 0 Warnings: 0 mysql> flush privileges; #Query OK, 0 rows affected (0.00 sec) 4、在命令行中用taskkill殺死mysqld服務,然後正常啟動mysqld taskkill /F /PID 131312 5、用新密碼登錄 mysql -uroot -p123
5、統一字元編碼
1、在mysql安裝目錄下新建my.ini文件
2、修改my.ini
[mysqld] character-set-server=utf8 collation-server=utf8_general_ci [client] default-character-set=utf8 [mysql] user="root" password='' default-character-set=utf8 3、重啟mysqld 4、客戶端重啟後登錄,輸入\s查看結果
創建用戶與授權:
create user 'egon'@'192.168.13.%' identified by '123'; #創建用戶 mysql -uegon -p123 -h192.168.13.254 #連接資料庫 grant all #授予所有許可權 grant select on db1.* to 'egon'@'192.168.13.%'; #授予db1下所有表的查的許可權給用戶名egon grant select on db1.* to 'egon'@'192.168.13.%' identified by '123'; select user();#查看當前用戶名 #在創建用戶的同時授予db1下所有表的查的許可權
10.3 基本的sql語句
10.31文件夾(庫)
#增 create database db1 (charset utf8); #改 alter database db1 charset gbk; #查 查看所有庫的庫名 show databases; 單獨查看某一個庫的信息 show create database db1; #刪 drop database db1;
10.32文件(表)
首先切換文件夾: use db1; select database(); #查看當前所在的文件夾 #增 create table t1(id int,name char); #改 alter table t1 modify name char(16); #查 查看當前庫下所有的表名 show tables; 查看t1表的詳細信息 show create table t1; 查看表結構 desc t1; #刪 drop table t1;
10.33文件的一行內容(記錄)
#增 insert (into) db1.t1 values (1,'egon'), (2,'alex'), (3,'lxx'); #改 update db1.t1 set name='sb' where id > 1; #查 select id,name from (db1.)t1; #刪 delete from db1.t1 where name = "SB" ;#delete是用來刪除表中某一些符合條件的記錄 delete from t1; #不會將自增的id重置為0 truncate t1; #清空表,將整張表重置 ,id也重置
10.34表類型之存儲引擎
方法1:建表時指定(不同的存儲引擎對應不同的存儲機制)
create table t1(id int)engine=innodb; #t1.frm(表結構) t1.ibd(數據) 存儲在硬碟 create table t2(id int)engine=myisam; #t2.frm(表結構) t2.MYD(數據) t2.MYI(索引) 存儲在硬碟 create table t3(id int)engine=blackhole;#黑洞 t3.frm(表結構) 表內不存數據 create table t4(id int)engine=memory; #t4.frm(表結構) 數據存儲在記憶體 服務端斷電清空 (show create table t1;) insert (into) db1.t1 value(1); insert (into) db1.t2 value(1); insert (into) db1.t3 value(1); insert (into) db1.t4 value(1); select * from db1.t1; # id 1 select * from db1.t2; # id 1 select * from db1.t3; # Empty select * from db1.t4; # id 1 服務端斷電清空數據(Empty)
方法2:在配置文件中指定預設的存儲引擎
[mysqld] default-storage-engine=INNODB innodb_file_per_table=1