Mysql基礎總結

Mysql基礎總結

⦁ 數據庫服務啓動與關閉(以管理員的身份運行黑窗口):

    啓動: net start mysql
    關閉: net stop mysql

⦁ 數據庫連接(黑窗口) :

    明文:   mysql  -u用戶名  -p密碼 
    密文:   mysql  -u用戶名  -p  回車  密碼
    遠程:   mysql  -h地址  -u用戶名 -p 回車  密碼
    注意:-u和用戶名之間可以有空格  但是-p和密碼之間不能有空格

⦁ 關於數據庫的操作

3.1創建數據庫: 
    CREATE  DATABASE  數據庫名;

3.2判斷數據庫是否已經存在,不存在則創建數據庫
    CREATE  DATABASE  IF  NOT  EXISTS  數據庫名;

3.3創建數據庫並指定字符集
    CREATE  DATABASE  數據庫名 CHARACTER  SET  字符集;

可以吧3.2與3.3結合起來:
    CREATE  DATABASE  IF  NOT  EXISTS  數據庫名  CHARACTER  SET  字符集; 


3.4 查看所有的數據庫
    SHOW  DATABASES;

3.5查看某個數據庫的定義信息
    SHOW  CREATE  DATABASE  數據庫名;

3.6修改數據庫默認的字符集
    ALTER  DATABASE  數據庫名 DEFAULT  CHARACTER  SET  字符集;

3.7刪除數據庫
    DROP  DATABASE  數據庫名;

3.8查看正在使用的數據庫
    SELECT  DATABASE();

3.9使用/切換數據庫
    USE  數據庫名;

⦁ 關於表的操作

4.1創建表的格式 [約束可以不用寫]:
    CREATE  TABLE  表名 (
    字段名 1  字段類型 1  約束1,
    字段名 2  字段類型 2  約束2
);

4.2查看某個數據庫中的所有表
    SHOW  TABLES;

4.3查看錶結構
    DESC  表名;

4.4查看創建表的 SQL 語句
    SHOW  CREATE  TABLE  表名;

4.5快速創建一個表結構相同的表
    CREATE  TABLE  表名1  LIKE  表名2;
      創建 2 表,2 表結構和 1 表結構相同

4.6直接刪除表
    DROP  TABLE  表名;

4.7判斷表是否存在,如果存在則刪除表
    DROP  TABLE  IF  EXISTS  表名;

4.8修改表名
    RENAME  TABLE  表名 TO  新表名;

4.9修改字符集 
    ALTER  TABLE  表名 character  set  字符集;

4.10添加表列 
    ALTER  TABLE  表名 ADD  列名  類型 約束;

4.11修改列類型 
    ALTER  TABLE  表名 MODIFY  列名  新的類型;

4.12修改列名 
    ALTER  TABLE  表名 CHANGE  舊列名  新列名  類型;

4.13刪除列 
    ALTER  TABLE  表名 DROP  列名;

⦁ 關於表中數據的操作:

5.1插入數據
    根據字段插入數據
    INSERT  INTO  表名 ( 字段名 1,  字段名 2, …)  VALUES  (值 1, 值 2,…);
假如所有字段都插入數據 可以略寫爲(省略字段名):
    INSERT  INTO  表名 VALUES (值1, 值2, 值3…);

批量添加:
    INSERT  INTO 表名 ( 字段名 1, 字段名 2)  VALUES  (值 1, 值 2),(值 1, 值 2);

5.2更新表記錄
    UPDATE  表名 SET  列名= 值 [WHERE  條件表達式]
不帶條件修改數據
    UPDATE  表名 SET  字段名= 值;    --  修改所有的行
帶條件修改數據
    UPDATE  表名 SET  字段名= 值 WHERE  字段名= 值;

5.3刪除表記錄(如果沒有指定 WHERE  子句,MySQL  表中的所有記錄將被刪除。)
    DELETE  FROM  表名 [WHERE  條件表達式]
不帶條件刪除數據
    DELETE  FROM  表名;
帶條件刪除數據
    DELETE  FROM  表名  WHERE  字段名= 值;

5.4使用 truncate 刪除表中所有記錄
    TRUNCATE  TABLE  表名;

truncate 和 delete 的區別:truncate 相當於刪除表的結構,再創建一張表。

⦁ 查詢數據

6.1查詢指定字段
    SELECT  字段名 1,  字段名 2,  字段名 3, ... FROM  表名;
若是查詢所有字段,可簡寫爲:
    SELECT  *  FROM  表名;

6.2使用別名(AS可以省略)
    SELECT  字段1  AS 別名,  字段2  AS  別名... FROM  表名 AS  表別名;
    SELECT  字段1  別名,  字段2  別名... FROM  表名 表別名;


6.3查詢指定列並且去重
    SELECT  DISTINCT  字段名  FROM  表名;

6.4查詢結果參與運算
    SELECT  列名1 +  固定值  FROM  表名;
    SELECT  列名1 +  列名2  FROM  表名;

6.5條件查詢的語法
    SELECT  字段名 FROM  表名 WHERE  條件;


6.6  like 關鍵字  表示模糊查詢 
    SELECT  *  FROM  表名 WHERE  字段名  LIKE  '通配符字符串'; 


6.7 排序
    select  *  from  表名  order  by  列名  asc(升序,默認) / desc (降序);

6.8聚合函數
6.8.1統計函數count()  統計指定字段不爲空的記錄行數
    select  count(列名)  from  表名

6.8.2求和函數sum()  對指定記錄中的某個字段進行求和
    select  sum(列名)  from  表名;

6.8.3最值函數max()/min() 對指定記錄中的某個字段進行求最值
    select  max(列名)  from  表名;

6.8.4平均值函數avg()  對指定記錄中的某個字段進行求平均值
    select  avg(列名)  from  表名;


6.8 分組查詢(必須跟隨聚合函數)
    select  count(*)  from  表名  group  by  列名;


6.8.1. where 和 having 的區別?
    1. where 在分組之前進行限定,如果不滿足條件,則不參與分組。having在分組之後進行限定,如果不滿足結果,則不會被查詢出來
    2. where 後不可以跟聚合函數,having可以進行聚合函數的判斷。


6.9  分頁查詢 
1. 語法:limit 開始的索引,每頁查詢的條數; 
    SELECT  *  FROM  表名  LIMIT  0 , 3;
2.  公式:開始的索引 = (當前的頁碼 - 1) * 每頁顯示的條數 -- 每       頁顯示3條記錄

⦁ 主鍵約束:

主鍵約束:primary  key
1.在創建表時,添加主鍵約束
    create  table  stu(
        Id  int  primary  key,-- 給id添加主鍵約束
        name  varchar(20)
    );

2. 刪除主鍵(不能用modify以修改的方式刪除主鍵)
    ALTER  TABLE  表名  DROP  PRIMARY  KEY;

3. 創建完表後,添加主鍵
    ALTER  TABLE  表名 MODIFY  id  INT  PRIMARY  KEY;

4.自動增長:
1. 在創建表時,添加主鍵約束,並且完成主鍵自增長
    create  table  stu(
        id  int  primary  key  auto_increment,-- 給id添加主鍵約束
        name  varchar(20)
    );

2.刪除自動增長 
    ALTER  TABLE 表名 MODIFY  id  INT; 

3.添加自動增長 
    ALTER  TABLE 表名 MODIFY  id  INT  AUTO_INCREMENT;

非空約束

創建表時添加約束
    CREATE  TABLE  stu(
        Id  INT,
        NAME  VARCHAR(20)  NOT  NULL -- name爲非空
    );

2. 創建表完後,添加非空約束
    ALTER  TABLE 表名 MODIFY  字段名  類型  NOT  NULL;

3. 刪除字段的非空約束
    ALTER  TABLE 表名 MODIFY  字段名  類型;

唯一約束

1. 在創建表時,添加唯一約束
    CREATE TABLE stu(
        Id  INT,
        phone_number  VARCHAR(20)  UNIQUE -- 手機號
    );

2. 刪除唯一約束
    ALTER  TABLE  表名  DROP  INDEX  字段名;

3. 在表創建完後,添加唯一約束
    ALTER  TABLE 表名  MODIFY  字段名  類型  UNIQUE;

外鍵約束

1. 在創建表時,可以添加外鍵
        create table 表名(
    ....
    外鍵列,
    constraint 外鍵名稱 foreign  key (外鍵列名稱) referecnes 主表名稱(主表列名稱)
);

2. 刪除外鍵
ALTER  TABLE 表名 DROP  FOREIGN  KEY 外鍵名稱;

3. 創建表之後,添加外鍵
ALTER  TABLE 表名 ADD  CONSTRAINT 外鍵名稱 FOREIGN  KEY (外鍵字段名稱)  REFERENCES 主表名稱(主表列名稱);

4. 級聯操作 
    1. 添加級聯操作 (更新級聯和刪除級聯)
    ALTER  TABLE 表名 ADD CONSTRAINT 外鍵名稱 FOREIGN  KEY (外鍵字   段名稱)  REFERENCES 主表名稱(主表列名稱)  ON  UPDATE  CASCADE   ON  DELETE CASCADE ; 
    2.分類: 
⦁   級聯更新:ON UPDATE CASCADE 
⦁   級聯刪除:ON DELETE CASCADE
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章