1. 程式人生 > >Mysql01伺服器概述、資料庫伺服器、建立資料庫、建立資料表

Mysql01伺服器概述、資料庫伺服器、建立資料庫、建立資料表

Mysql資料庫 day01

資料庫
 儲存資料
 MySQL、oracle、sql server、db2、sqlite…
 關係型資料庫
 資料以表格形式存放
 No sql

Mysql
 開源免費資料庫
 在網際網路領域,是最常用的資料庫
 被 sun 以10億美金收購,一年後,sun被oracle收購
 Mysql被oracle收購後,存在閉源風險
 各大開源社群,已經不再支援mysql
 Mysql的創始人,繼續開發一個mysql 的分支版本,mariadb
 開源社群都轉向支援mariadb的開發
 阿里投資maradb 3000萬
 阿里把自己開發的資料庫新功能,免費貢獻給 mariadb

下載安裝mysql
 Mysql有收費版本,也有免費開源的社群版本
 下載開源社群版
 安裝 mysql或mariadb都可以

Mysql使用
 Mysql資料庫服務,是一個後臺程序
 使用客戶端來連線mysql
 Mysql命令列客戶端:mysql
mysql -uroot -p –h192.168.121.90 –P3306(這是登入別人的伺服器時用的)
 Mysql官方視窗客戶端:workbench
 Navicat、sqlyog、mysqlfront…

Mysql命令列客戶端
 連線、登入mysql伺服器
mysql –uroot –p 登入本機伺服器

 退出客戶端,斷開與伺服器的連線
 exit
 \q
顯示資料庫列表
 show databases;
 show schemas;

 schema -就是資料庫
進入資料庫
 use test;

檢視資料庫中資料表的列表
 show tables;

mysql使用者
 mysql使用者由“使用者名稱+ip地址”來標識
建立使用者
create user ‘root’@’192.168.121.%’ identified by ‘1234’
對使用者授權
grant all privileges on . to ‘root’@’192.168.121.%’

  使用者表
               use   mysql;                 進入mysql庫
               select * from user;                   查系統使用者表資料
               select * from user\G        縱向檢視結果
  刪除使用者
               drop user ‘使用者名稱’@’主機地址’

庫管理
建立庫
create database 庫名 charset=utf8;
檢視庫
show databases;
show schemas;
use db1

  修改庫

 對資料庫只能修改它的預設字元編碼
alter database db1 charset gbk;
.
刪除庫
 刪除資料庫,會把內容所有資料表全部刪除,且不可恢復
drop database db1;

資料表
建立表
create table tb1(
id int,
name varchar(20),
money decimal(8,2)
) engine=innodb charset=utf8;
查看錶
show tables;

               desc   tb1;
               

               show  create  table  tb1\G

  刪除表

 刪除表不可恢復(三思而後行)
drop table tb1;
截斷表(重建表)
 先刪除,再重建,資料不可恢復
truncate table tb1;
修改表
修改表名rename table A to B
rename table tb1 to tb2;
修改表的引數(引擎、編碼)
alter table tb2
engine=myisam charset=gbk;
新增欄位
 first - 加到最前面
 after - 指定加到哪個欄位之後
alter table tb2
add gender varchar(4) first;

alter table tb2
add height int after name;

alter table tb2 add(
weight int,
tel varchar(20)
);

desc tb2;
show create table tb2\G
修改欄位名
alter table tb2
change gender sex varchar(4);(注意change與modify之間的區別)
修改欄位型別
alter table tb2
modify height decimal(3,2);
修改欄位位置
alter table tb2
modify sex varchar(4) after name;

                        alter  table  tb2 
                        modify  name  varchar(20)  first;
       刪除欄位

 整列資料會被刪除,不可恢復
alter table tb2
drop column weight;(刪除weight列)

欄位位元組量總合,不超過65535個位元組
create table tb3(
id int, – 4位元組
price double, – 8位元組
name varchar(65520) – 65520+2
)charset=latin1;

     create  table  tb4(
               id  int  not  null,               --  4位元組
               price  double  not  null,      --  8位元組
               name  varchar(65521)  not  null        --  65521+2

)charset=latin1;
(注意:如果有空字元的話也算一個位元組)
create table tb5(
id int not null, – 4位元組
price double not null, – 8位元組
s tinyint not null, – 1位元組
name varchar(21840) not null – 21840*3+2
) charset=utf8;

 varchar型別
 如果長度小於等於255,前面有一個位元組,表示位元組長度
 如果長度大於255,前面有兩個位元組,表示位元組長度
 如果表中欄位,只要有允許 null 值的欄位,那麼需要有額外的一個位元組來表示

sql
 結構化的查詢語言
 用來訪問資料庫
 DDL(database definition language) - 資料定義語言,建庫建表
 DML(database manipulation language) - 資料操作語言,增刪改
 DQL (data query language) - 資料查詢語言,select

Insert插入資料
insert into 表 values(值1, 值2…)
update修改資料
update 表 set 欄位1=值1, 欄位2=值2, 欄位3=值3 where ……
delete刪除
delete from 表 where ……
select查詢
select * from 表
select 欄位1, 欄位2, 欄位3 from 表

資料庫儲存引擎

 innodb

 預設推薦引擎
 支援事務
 支援外來鍵
 提供行級鎖
 表文件:
 tb1.frm 儲存表結構
 tb1.ibd 儲存資料、索引

 myisam

 不支援事務
 不支援外來鍵
 資料訪問效率更高
 只提供表級鎖
 表文件:
 tb2.frm 儲存表結構
 tb2.MYD 儲存資料
 tb2.MYI 儲存索引資料

 memory 記憶體表

 …