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 數據庫基本操作大全