天天看點

sqlSQl通用文法操作資料庫操作表資料庫的備份和還原

sql

1.什麼是SQL
     Structured Query Language : 結構化查詢語言
     其實就是定義了操作所有關系型資料庫的規則,每一種資料操作的方式存在不一樣的地方,稱為“方言”
2.SQl通用文法
     1.SQl 語句可以單行或多行書寫,以分号結尾。
     2.可使用空格和縮進進來增強語句的可讀性
     3.MySQL 資料庫的SQl語句不區分大小寫,關鍵字建議使用大寫
     4.3中注釋
        * 單行注釋:-- 注釋内容  或  # 注釋内容(mysql特有)
        * 多行注釋: /* 注釋 */
3.SQL分類
     1:DDL資料定義語言
          用來定義資料庫對象:資料庫 ,表 ,列等,關鍵字:create drop ,alter 等。
     2:DML資料操作語言
          用來對資料庫中表的資料進行操作增删改。關鍵字:insert delete update 等
     3:DQL資料查詢語言
          用來查詢資料庫中表的記錄(資料)。 關鍵字:select where 等
     4:DCL資料控制語言(了解)
          用來定義資料庫的通路權限和安全級别,及建立使用者。關鍵字:GRANT , REVOKE
      
     5:操作資料庫:
              * 建立資料庫 create database 資料庫名稱。
              * 建立資料庫,判斷不存在,在建立。 create database if not exists 資料庫名稱。
              * 建立資料庫,并指定字元集 create database 資料庫名稱 character set 字元集名;
              * 查詢某個資料庫的字元集:show create database 資料庫名稱
              * 查詢所有資料庫的名稱 show databases;
              * 修改資料庫的字元集 alter database 資料庫名稱 character set 字元集名稱;
              * 删除資料庫 drop database 資料庫名稱;
              * 判斷資料庫存在,存在再删除 drop database if exists 資料庫名稱。
              * 查詢目前正在使用的資料庫名稱 select database();
              * 使用資料庫 use 資料庫名稱 
     6:操作表
              * 查詢某個資料庫中所有的表名稱 show tables;
              * 查詢表結構  desc 表名
              * 資料庫類型: int  double date:日期,隻包含年月日 datetime:日期,包含年月日時分秒                       varchar     timestamp:時間錯類型,包含年月日時分秒不指派預設目前的系統值。
              * 删除表 drop table 表名稱  drop table if exists 表名
              * 修改表名 alter table 表名 rename to 新的表名
              * 修改表的字元集 alter table 表名 character set 字元集名稱
              * 添加一列 alter table 表名 add 列名 資料類型;
              * 修改列名稱 類型 alter table 表名 change 列名 新列名 新資料類型。
                               alter table stu modify 列名 新資料類型;
              * 删除列     alter table 表名 drop 列名。
     7:DML:增删改表中資料 
              * 添加資料 insert into 表名(列名1......) values(值1......)
              * 删除資料 delete from 表名[where 條件]
              * TRUNCATE TABLE 表名:推薦使用,效率快
              * 修改資料 update 表名 set 列名1 = 值1 ,列名2 = 值2; 
4.資料庫的備份和還原
              * 指令行:備份 mysqldump -u使用者名 -p密碼 > 儲存的路徑
              * 還原  :
                     登入資料庫
                     建立資料庫
                     使用資料庫
                     執行檔案 source 路徑
5.管理使用者
              * 添加使用者:create user '使用者名'@'主機名' identified by '密碼';
              * 删除使用者: drop user '使用者名'@'主機名';
              * 修改密碼: update user set password = password('新密碼') where user = '使用者名';
                          set password for '使用者名'@'主機名' = password('新密碼');
              * Mysql中忘記root使用者的密碼
                1.cmd --> net stop mysql 停止mysql服務 * 需要管理者來操作
                2.使用無驗證方式啟動mysql服務:MySQL --skip--grant--tables
                3.打開新的cmd視窗直接輸入mysql指令,敲回車。就可以登陸成功
                4.use msyql;(在打開個視窗)
                5.update user set password = password('新密碼')
                6.關閉兩個視窗
                7.打開任務管理器,手動結束mysql.exe的程序
                8.啟動mysql服務
                9.使用新密碼登陸。
6.權限管理:
                1.查詢權限 Show GRANTS For '使用者名'@'主機名';
                2.授予權限 grant 權限清單 on 資料庫名.表名 to '使用者名'@'主機名';
                3.撤銷權限 revoke 權限清單 on 資料庫名.表名 from 	'使用者名'@'主機名';