1. 程式人生 > >mysql 數據庫基本操作大全

mysql 數據庫基本操作大全

lock 提高 school tro ffd 表結構 更多 tex sam

熟悉和安裝MySQL數據庫後,下面介紹數據庫的基本操作,以下所有數據庫語句均在"mysql>"操作環境中執行。

一、mysql---增刪改查
增:

//創建數據庫
create database school;
//創建表
create table info (id int not null auto_increment primary key,name e char(10) not null,score decimal(5,2),hobby int(2));
註釋: primary key 主鍵 auto_increment 自增列

技術分享圖片

//新增表中內容

insert into info (id,name,score,hobby) values (1,‘zhangsan‘,89,1); #註意前後匹配
//增加列
alter table info add column age int(3);

技術分享圖片

查:

//查看數據庫
mysql> show databases;
//查看表結構
mysql> desc info;
//查看數據庫中表
mysql> show tables;
//查看表中內容
mysql> select from info;
//查看表中具體條目
select
from 表名 where id=2[and name=?] [or name=?];

上述查看條目請參考第一部分mysql的創建部分操作,這裏不再贅述,咱們重點看多表查詢。

//多表查詢 關聯表(附表的主鍵是主表的附鍵)
select * from info inner join hobby where info.id=hobby.id;
select info.name,score,hobby.hobname from info inner join hobby where info.id=hobo.id=hobby;
select i.name,score,h.hobname from info as i inner join hobby as h where i.id=h.id;

第一張截圖是兩張關聯表,第二張截圖是查詢演示
技術分享圖片
技術分享圖片

改:

//更改表中數據
update info set score=75 where id=6;

刪:

//整行刪除
delete from info where name=‘test‘;
//刪除列
alter table info drop column age;
//刪除表
drop table info;
//數據庫
drop database school;

以下是簡單對刪除行、列作的演示,其他同理
技術分享圖片
二、mysql---排序、聚合函數
排序:

select from info where 1=1 order by score ; asc--升序,可不寫 #默認升序
select
from info where 1=1 order by score desc ; desc--降序

技術分享圖片

函數:

統計count() ; 可以改為1
select count(*) from info;
平均值avg ()
select avg(score) from info;

技術分享圖片

三、mysql---索引
簡介
索引是一種特殊的文件(InnoDB數據表上的索引是表空間的一個組成部分),它們包含著對數據表裏所有記錄的引用指針。更通俗的說,數據庫索引好比是一本書前面的目錄,能加快數據庫的查詢速度。
類型
普通索引:最基本的索引,沒有任何限制
唯一索引:與"普通索引"類似,不同的就是:索引列的值必須唯一,但允許有空值。
主鍵索引:它 是一種特殊的唯一索引,不允許有空值。
全文索引:僅可用於 MyISAM 表,針對較大的數據,生成全文索引很 耗時好空間。
組合索引:為了更多的提高mysql效率可建立組合索引,遵循”最左前綴“原則。創建復合索引時應該將最常用(頻 率)作限制條件的列放在最左邊,依次遞減。

//創建普通索引
create index id_index on info(id);
//創建唯一索引
create unique index id_index on info(id);

技術分享圖片

//創建主鍵索引
alter table info add primary key(id);

技術分享圖片

//創建全文索引
create table infos (descript TEXT,FULLTEXT(descript));

技術分享圖片

//創建多頁索引
create index multi_index on info(name,address);

技術分享圖片

//查看索引: 上述過程已經顯示
show index from info;
show index from info \G; 縱向顯示

  • unique 1 不是唯一
    unique 0 唯一
    //刪除索引 (主鍵、全文索引刪除命令比較特殊)
    drop index id_index on info; #普通/唯一索引
    alter table info drop primary key; #主鍵索引
    drop table infos; #全文索引

四、mysql---事務
簡介
事務是一組不可被分割執行的SQL語句集合,如果有必要,可以撤銷。銀行轉賬是經典的解釋事務的例子。用戶A給用戶B轉賬500元主要步驟可以概括為如下兩步。
  第一,賬戶A賬戶減去500元;
  第二,賬戶B賬戶增加500元;
  這兩步要麽成功,要麽全不成功,否則都會導致數據不一致。這就可以用到事務來保證,如果是不同銀行之間的轉賬還需要用到分布式事務。
性質
事務的機制通常被概括為“ACID”原則即原子性(A)、穩定性(C)、隔離性(I)和持久性(D)。
  原子性:構成事務的的所有操作必須是一個邏輯單元,要麽全部執行,要麽全部不執行。
  穩定性:數據庫在事務執行前後狀態都必須是穩定的。
  隔離性:事務之間不會相互影響。
  持久性:事務執行成功後必須全部寫入磁盤。
事務處理方法
1、用 BEGIN, ROLLBACK, COMMIT來實現
BEGIN 開始一個事務
ROLLBACK 事務回滾
COMMIT 事務確認
2、直接用 SET 來改變 MySQL 的自動提交模式:
SET AUTOCOMMIT=0 禁止自動提交
SET AUTOCOMMIT=1 開啟自動提交
實例演示
第一張圖是未設置事務前的原表,以作比較
技術分享圖片
下圖是具體操作過程
技術分享圖片
五、mysql---視圖
簡介
視圖(view)是一種虛擬存在的表,是一個邏輯表,本身並不包含數據。作為一個select語句保存在數據字典中的。
通過視圖,可以展現基表的部分數據;視圖數據來自定義視圖的查詢中使用的表,使用視圖動態生成。
作用
一張表或多張表中的數據給不同的權限用戶提供訪問,安全有效。

//創建視圖
create view 視圖名稱 AS
//select 語句
select from info where score > 80; 查看大於80分的人
//形成視圖進行查看
create view score_view as select
from info where score >80;
//查看視圖
select * from score_view;

技術分享圖片

mysql 數據庫基本操作大全