1. 程式人生 > 其它 >mysql.基礎01

mysql.基礎01

01. DDL

  > 查詢所有資料庫:  show databases;

  > 查詢當前資料庫:   select database();   //括號是必須要加的

  >  建立資料庫:  create database [if not exists]  資料庫名 [default charset 字符集] [collate 排序規則]

    -> 關於字串:  utf8   一個漢字存3位元組,但有些特殊符號會存4位元組,所以會使用  utf8md4 做為字符集

  > 刪除:  drop database [if exists] 資料庫名

  > 使用:  use 資料庫名;

    > 檢視當前資料庫所有的表:   show tables;

    > 查詢表結構:  desc 表名;

    > 查詢指定表的建表語句:  show create table 表名;

    > 建立資料表

      

     ** mysql中的資料型別    (id tinyint unsigned  -- 表示:新建表時,建立的是一個無符號珠 tinyint 欄位 id )

    

    

    

     > 新增欄位:  alter table 表名  add 欄位名 型別(長度) [comment 描述] [約束]    

     > 修改資料型別  alter table 表名 modify 欄位名 新資料型別(長度)

    > 修改欄位名和欄位型別:  alter table 表名 change 舊欄位名 新欄位名 型別(長度) [comment 描述] [約束];

     > 刪除欄位:alter table 表名 drop 欄位名;

    > 修改表名:alter table 表名 rename to 新表名;

    > 刪除表:drop table [if exists] 表名;

    > 刪除指定表並重新建立:  truncate table 表名;

  ** 圖形化工具:

    > sqlyog

    > navicat

    > DataGrid    

 02. DML

  >新增指定欄位的資料:  Insert into 表名(欄位1, 欄位2....) values (值1, 值2....)

  > 新增的有欄位的資料  insert into 表名 values (值1,值2....)

  > 批量新增資料

     insert into 表名(欄位1,欄位2...)  values (值1,值2...) ,(值1,值2...),(值1,值2...)...

     insert into 表名 values (值1,值2...) ,(值1,值2...),(值1,值2...)...

  ** 插入字元串和日期型別的資料時,資料要包含在引號中;

  > 修改資料  update 表名 set 欄位名1=值1, 欄位名2=值2,.... [where 條件]  

  > 刪除資料 delete from 表名 [where 條件]  

03.DQL

  

  > where 和 having 的區別

    > 執行時機不同:  where 是分組前過濾,不滿足where條件的,不參與分組;

            having 是分組之後的結果進行過濾;

    > 判斷條件不同:  where不能對聚合函式進行判斷;having可以;

  > 分頁查詢: select 欄位列表 from 表名 limit 起始索引, 查詢記錄數

    >起始索引: 從0開始,起始索引=(查詢頁碼-1)*每頁記錄條數

    > 分頁查詢是資料庫的方言,不同的資料庫有不同的實現;mysql中是 limit

    > 如果查詢的是第1頁資料,起始索引可以省略,直接簡寫為 limit 每頁記錄數;

  > 關於取欄位內值的長度的問題 (注意 length, char_length 的區別)

    

 04.DCL

  > 查詢使用者:  

    use mysql;

    select * from user;

  > 建立使用者 (此時無任何許可權)

    create user '使用者名稱'@'主機名' identified by '密碼'

    >> 若只限定在本機訪問,則主機名為: localhost

    >> 若建立的賬號可在任意主機訪問資料庫,則 主機名為:%

  > 修改使用者密碼

    alter user '使用者名稱'@'主機名' identified with mysql_native_password by '新密碼'

  > 刪除使用者

    drop user '使用者名稱'@'主機名'

  > 可控制的許可權

    

   >查詢許可權: show grants for '使用者名稱'@'主機名'

  > 授予許可權:grant 許可權列表 on 資料庫名.表名 to '使用者名稱'@'主機名'

  > 撤銷許可權:  revoke 許可權列表 on 資料庫名.表名 from '使用者名稱'@'主機名'

        資料庫名.*  表示資料庫中所有的表