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 '使用者名'@'主機名';