資料庫的介紹 mysql資料庫介紹 開放源碼的輕量級關係型資料庫管理系統,體積小、速度快、操作便捷。 資料庫的啟動和連接 mysql資料庫啟動 在終端輸入以下命令,啟動mysql伺服器 輸入命令,查詢mysql伺服器狀態 出現如下提示表示mysql伺服器以啟動成功 mysql資料庫連接 輸入賬戶和密 ...
資料庫的介紹
mysql資料庫介紹
開放源碼的輕量級關係型資料庫管理系統,體積小、速度快、操作便捷。
資料庫的啟動和連接
mysql資料庫啟動
在終端輸入以下命令,啟動mysql伺服器
service mysql start
輸入命令,查詢mysql伺服器狀態
service mysql status
出現如下提示表示mysql伺服器以啟動成功
mysql資料庫連接
輸入賬戶和密碼連接資料庫
表示啟動成功。
mysql資料庫斷開連接
輸入exit,如果顯示Bye表示斷開成功。
資料庫的操作
顯示資料庫
show databases;
創建資料庫
create database 庫名 default character set utf8;
刪除資料庫
drop database 庫名;
使用資料庫
use 庫名;
表示以成功切換到study資料庫。
數據表的操作
顯示數據表
show tables;
創建數據表
## 創建表語句 create tables 表名(欄位名 類型 約束,欄位名 類型 約束,......); ## 註意:mysql是沒有序列的,但是可以在創建表的時候直接指定主鍵是自贈的。 在欄位後使用 auto_increment 表示自增。 ## MySQL常見欄位類型 數值類型: int(長度)表示整數類型的數據 float/double表示浮點數 字元類型: varchar(長度)動態分配存儲長度 char(長度)分配固定長度 日期類型: date:格式為yyyy-mm-dd datetime:格式為yyyy-MM-dd hh:mm:ss 占用8個位元組 timestamp:特點:會自動進行時區的轉換,占用4個位元組 time:時間 year:年份 其他類型: TEXT:字元數據 BLOB:二進位數據 ## 約束 主鍵約束: 在創建表時,在欄位後使用 primary key 即可 在創建表語句的最後面使用 constraint 約束名 pirmary key(主鍵欄位名) 非空約束: 在創建表的時候直接在欄位後使用 nut null 即可 註意: mysql的非空約束中空字元是可以存儲進去的。 檢查約束: 在mysql中是沒有檢查約束的,但是使用check關鍵字又不會報錯。 解決: 使用代碼邏輯進行無效的數據過濾。 使用 mysql 的存儲過程。 唯一約束: 在欄位名後直接使用 unique 即可 在創建表語句的最後面使用 constraint 約束名 unique(欄位名) 外鍵約束: 在欄位名後直接使用 references 父表名(父表主鍵名) 在創建表語句的最後面使用 constraint 外鍵約束名 foreign key(欄位名) references 父表名(父表主鍵名) ## 在表外部添加約束 ## 主鍵約束 alter table 表名 add constraint 約束名 pirmary key(主鍵欄位名); ## 唯一約束 alter table 表名 add constraint 約束名 unique key(欄位名); ## 非空約束 alter table 表名 modify 欄位名 類型 not null; ## 外鍵約束 alter table 表名 constraint 外鍵約束名 foreign key(欄位名) references 父表名(父表主鍵名)on delete set null on update cascase;
修改數據表
添加欄位: alter table 表名 add 欄位名 類型 約束; 刪除欄位: alter table 表名 drop 欄位名; 修改欄位類型: alter table 表名 modify 欄位名 新的類型; 修改欄位名: alter table 表名 change 欄位名 新的欄位名 類型; 修改表名: alter table 表名 rename as 新的表名;
刪除數據表
drop table 表名;
查看表創建語句
show create table 表名;
表數據的操作
查詢數據
## 單表查詢 ## 查詢全部 select * from 表名; ## 別名 直接在欄位後使用即可 select 欄位,欄位 別名,欄位 from 表名; ## 連接符 使用concat(欄位名,“連接的字元”) ## 去除重覆 使用 distinct 關鍵字即可 ## 排序 order by 欄位名 ## where字句 select * from 表名 where 判斷條件; ## 分組 group by 欄位名 註意: 分組可以和欄位一起使用 ## having 分組後篩選
## 多表查詢 select * from 表名1 別名1,表名2 別名2 where 別名1.欄位名 判斷條件 別名2.欄位名; select * from 表名1 別名1 inner join 表名2 欄位名2 on 別名1.欄位名 判斷條件 別名2.欄位名;
## 子查詢 select * from 表名 where 欄位名 in (select 欄位名 from 表名 where 查詢條件);
增加數據
insert into 表名 values(值1,值2,值3,...); 全欄位插入 insert into 表名(主鍵欄位名,欄位,欄位,...) values(值1,值2,值3,...); 部分欄位插入
刪除數據
delete from 表名 where 條件;
修改數據
update 表名 set 欄位名=值,欄位名=值,... where 條件;
分頁查詢
select * from 表名 limit x,y; x:從第幾條數據開始查詢 y:每頁顯示多少條數據 ## 每頁顯示n條,查詢第m頁的信息 select * from 表名 limit m*n-n,n;
資料庫的備份
導出
## 導出整個資料庫 mysqldump -u root -p 資料庫名>/目錄/文件名.sql; ## 只導出一個表 mysqldump -u root -p 資料庫名 表名>/目錄/文件名.sql;
導入
## 方法一 連接資料庫之後輸入 mysql>source /目錄/文件名.sql; ## 方法二 連接資料庫之前輸入 mysql -u root -p 資料庫名<文件名.sql;