Mysql資料庫基本操作

來源:互聯網
上載者:User

(進入mysql\bin目錄下)注意在mysql控制台操作每句後要加分號 ;

初級篇

   1、 進入資料庫     mysql  -u 使用者名稱 -p 密碼

   2、 匯出資料庫      mysqldump  -u 使用者名稱 -p 密碼 資料庫名(表名)> 路徑 備份.sql

   3、 匯入資料庫      mysql  -u 使用者名稱 -p 密碼 資料庫名< 路徑 備份.sql

         或者進入mysql,使用source  路徑 備份 此方法可以單獨匯入表

   4、 顯示所有資料庫   show databases;

   5、 使用資料庫       use 資料庫名;

   6、 顯示所有表       show  tables;

   7、 建立資料庫       create database 資料庫名;

   8、 建立表             create table 表名(變數名 變數類型(大小)約束條件,變數名  變數類型(變數大小)約束條件,primary key(主鍵) );

   9、 描述表             describe 表名;

   10、向表中輸入資料 insert into 表名 values( );

   11、select 列 from 表 order by 列  desc/asc

         select count(*)  from 表名       統計表中記錄總數

         descending   降序排列的意思

         ascending  升序排列

   12、刪除表內容

         delete  from 表名 

         truncate  table 表名

   13、更新表內容

         update table 表名 set='  '  where 條件

   14、改變表結構

         alter table 表名 add  id  int(10)  【列名 資料類型】  增加列

         alter table 表名 drop  id    【列名】                  刪除列

         alter table 表名 modify  id  int(6);                     修改列

   15、改變表名

         rename  table 表名1 to 表名2

   16、查看資料庫、表建立資訊

         show  create  database 資料庫名 

         show  create  table  表名 

    17、過濾表中重複的資訊

          select distinct 列名 from 表名

 

進階篇

   1、將選出內容建立表

      create table 表名2(可定義列名以及類型) as select 列名,列名 from 表名2;

      將選出結果插入某表

      insert 表1 select 列名1,列名2,… From 表 2

      

   2、select語句

      select [all/distinct] 列名 from 表名 [where 搜尋條件] [group by 組運算式] [having 條件][order by 列名][ASC|DESC]

      選擇指定前幾條

      select  *  from  table(表名)  limit  m , n            m為第幾行開始,n為取幾條

      選擇在指定範圍內記錄

      select  *  from  table(表名)  where 列名 between  value1 and value2

      選擇在指定內容的記錄

      select  *  from  table(表名)  where  in / not in  列(value1,value2 …)

      選擇指定類似內容

      select  *  from  table(表名)  where  列名 like / not like  'string '

 

    

     

萬用字元

含義

%

任意多個字元

_

單個字元

[ ]

指定範圍內的單個字元

[ ^ ]

不在指定範圍內的單個字元

      選擇為空白的記錄

      select  *  from  table(表名)  where  列名 NULL/ not NULL    

      選擇結果統計

      select  列名1 , count(列名2)  from  table(表名)  group by 列名2   having 條件

      

函數名

功能

count

求組中項數,返回整數

sum

求和,返回運算式中所有值的和

avg

求平均值,返回運算式中所有值的平均值

max

求最大值,返回運算式中所有值的最大值

min

求最小值,返回運算式中所有值的最小值

abs

求絕對值,返回數值運算式的絕對值

ascii

求ASCII碼,返回字元型資料的ASCII碼

rand

產生隨機數,返回一個位於0-1之間的隨機數

 

    

 

 

  | student | CREATE
TABLE student(

    studno int(5) NOT NULL auto_increment,

    studname char(10) NOT NULL,

    studcourse char(50) NOT NULL,

    studscore float default '0',

    PRIMARY KEY 
('studno')

  ) ENGINE=InnoDB
AUTO_INCREMENT=9 DEFAULT CHARSET=gbk |

  mysql> select * from student;

  +--------+----------+------------+-----------+-----+

  | studno | studname | studcourse | studscore | sex |

  +--------+----------+------------+-----------+-----+

  |      1 | 祖如輝   | 資料庫原理 |        90 | 男  |

  |      2 | 馬斯洛   | 資料庫原理 |        80 | 男  |

  |      3 | 莉莉     | 資料庫原理 |        94 | 女  |

  |      4 | 加紅基   | 資料庫原理 |        99 | 男  |

  |      5 | 馬三立   | 資料庫原理 |        69 | 男  |

  |      6 | 郭冬臨   | 資料庫原理 |        65 | 男  |

  |      7 | 想加你   | 資料庫原理 |        55 | 女  |

  |      8 | 華正白   | 資料庫原理 |        95 | 男  |

  |      9 | 黎明     | 資料庫原理 |        49 | 男  |

  |     10 | 徐曉娟   | 資料庫原理 |        79 | 女  |

  +--------+----------+------------+-----------+-----+

  10 rows in set (0.00 sec)

  mysql> select * from class;

  +--------+------------------+-----------+

  | studno | class            |
gradecode |

  +--------+------------------+-----------+

  |      1 | 電腦網路工程   |        
3 |

  |      2 | 電腦網路工程   |        
1 |

  |      3 | 電腦網路工程   |         1 |

  |      4 | 電腦科學與技術 |         3 |

  |      5 | 電腦科學與技術 |         3 |

  |      6 | 電腦科學與技術 |         1 |

  |      7 | 電腦科學與技術 |         4 |

  |      8 | 電腦科學與技術 |         2 |

  |      9 | 電腦科學與技術 |         2 |

  |     10 | 電腦軟體工程   |        
2 |

  +--------+------------------+-----------+

  10 rows in set (0.00 sec)

 

 

  選出
資料庫原理及格的女學生資訊(包含學號,姓名,課程,成績)。

  mysql> Select * from student having (select 成績 from  studscore   student where  sex='女' )>60;

  建立表視圖

  create view 視圖名 as select 列名 from 表名

  建立索引

  create unique index 索引列 on 表名(列名)

  內聯結也叫自然聯結,它是組合兩個表的常用方法。內聯結將兩個表中的列進行比較,將兩個表中滿足聯結條件的行組合起來,作為結果。內聯結有兩種形式的文法: (註:多個表也可)

  文法一:

  SELECT 列名 FROM 表1 [INNER] JOIN 表2  ON 表1.列 = 表2.列

  文法二:

  SELECT 列名FROM 表1,表2 
WHERE 表1.列 =
表2.列

  在內聯結中,只有在兩個表中匹配的行才能在結果集中出現。而在外聯結中可以只限制一個表,而對另外一個表不加限制(即不加限制的表的所有行都出現在結果集中)。

  外聯結只能串連兩個表

  外聯結分為左外聯結、右外聯結。

  文法如下:SELECT 列名 FROM 表1 <LEFT|RIGHT
> [OUTER] JOIN 表2  ON 表1.列 = 表2.列

  聯結操作不僅可以在不同的表上進行,而且可以在同一張表內進行自身聯結,即將同一個表的不同行聯結起來。自我聯結可以看作一張表的兩個副本之間的聯結。在自我聯結中,必須為表指定兩個別名,使之在邏輯上成為兩張表。

  是一種特殊類型的內聯結

  l 
為表名指定別名的方式:

   a. 在表名後面直接給出別名:表名 別名  

        b. 在表名和別名之間添加AS關鍵字:表名 AS 別名

  l 
MySQL的表別名中不能有特殊字元(如空格)

  l 
除了在內聯結時必須使用表別名之外,表別名也可用在其他的SQL語句中,以簡化SQL語句,提高語句的可讀性。

  l 
交叉聯結也叫非限制聯結,它將兩個表不加任何約束的組合起來。在數學上,就是兩個表的笛卡爾積。交叉聯結後得到的行數是兩個被聯結表的行數的乘積。

  l  文法如下:SELECT 列名 FROM 表1
CROSS JOIN表2

                或SELECT 列名 FROM 表1 ,表2 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.