標籤:erro running values 密碼 path change 多個 使用者權限 簡便
一、資料庫的簡介
什麼是資料庫?
資料的倉庫,如:在atm的執行個體中我們建立一個db目錄稱之為資料庫
什麼是 MySQL、Oracle、SQLite、Access、MS SQL Server等 ?
他們是資料庫軟體,主要功能為兩部分:1、講資料儲存到記憶體或者檔案。2、接受特定的命令對資料進行操作
什麼是SQL?
上述問題說過,資料庫要接受特定的命令,這個命令就是用SQL編寫,他是結構化查詢語言 (SQL)(Structured Query Language)的縮寫,一種專門與資料庫互動的語言。
二、資料庫的安裝
windows版本
1、下載
MySQL Community Server 5.7.16 http://dev.mysql.com/downloads/mysql/
2、解壓
如果想要讓MySQL安裝在指定目錄,那麼就將解壓後的檔案夾移動到指定目錄,如:C:\mysql-5.7.16-winx64
3、初始化
MySQL解壓後的 bin 目錄下有一大堆的可執行檔,執行如下命令初始化資料:
cd c:\mysql-5.7.16-winx64\bin mysqld --initialize-insecure
4、啟動MySQL服務
執行命令從而啟動MySQL服務
# 進入可執行檔目錄cd c:\mysql-5.7.16-winx64\bin # 啟動MySQL服務mysqld
5、啟動MySQL用戶端並串連MySQL服務
由於初始化時使用的【mysqld --initialize-insecure】命令,其預設未給root賬戶設定密碼
# 進入可執行檔目錄cd c:\mysql-5.7.16-winx64\bin # 串連MySQL伺服器mysql -u root -p # 提示請輸入密碼,直接斷行符號
輸入斷行符號,見表示安裝成功:
、
到此為止,MySQL服務端已經安裝成功並且用戶端已經可以串連上,以後再操作MySQL時,只需要重複上述4、5步驟即可。但是,在4、5步驟中重複的進入可執行檔目錄比較繁瑣,如想日後操作簡便,可以做如下操作。
添加環境變數
將MySQL可執行檔添加到環境變數中,從而執行執行命令即可
【右鍵電腦】--》【屬性】--》【進階系統設定】--》【進階】--》【環境變數】--》【在第二個內容框中找到 變數名為Path 的一行,雙擊】 --> 【將MySQL的bin目錄路徑追加到變值值中,用 ; 分割】 如:C:\Program Files (x86)\Parallels\Parallels Tools\Applications;%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem;%SYSTEMROOT%\System32\WindowsPowerShell\v1.0\;C:\Python27;C:\Python35;C:\mysql-5.7.16-winx64\bin
如此一來,以後再啟動服務並串連時,僅需:
# 啟動MySQL服務,在終端輸入mysqld # 串連MySQL服務,在終端輸入:mysql -u root -p
. 將MySQL服務製作成windows服務
上一步解決了一些問題,但不夠徹底,因為在執行【mysqd】啟動MySQL伺服器時,當前終端會被hang住,那麼做一下設定即可解決此問題:
# 製作MySQL的Windows服務,在終端執行此命令:"c:\mysql-5.7.16-winx64\bin\mysqld" --install # 移除MySQL的Windows服務,在終端執行此命令:"c:\mysql-5.7.16-winx64\bin\mysqld" --remove
註冊成服務之後,以後再啟動和關閉MySQL服務時,僅需執行如下命令:
# 啟動MySQL服務net start mysql # 關閉MySQL服務net stop mysql
linux版本
安裝
yum install mysql-server
啟動
mysql.server start
連結
串連: mysql -h host -u user -p 常見錯誤: ERROR 2002 (HY000): Can‘t connect to local MySQL server through socket ‘/tmp/mysql.sock‘ (2), it means that the MySQL server daemon (Unix) or service (Windows) is not running.退出: QUIT 或者 Control+D
三、資料庫的操作
1、顯示資料庫
SHOW DATABASES;
預設資料庫:
mysql - 使用者權限相關資料
test - 用於使用者測試資料
information_schema - MySQL本身架構相關資料
2、建立資料庫
# utf-8CREATE DATABASE 資料庫名稱 DEFAULT CHARSET utf8 COLLATE utf8_general_ci; # gbkCREATE DATABASE 資料庫名稱 DEFAULT CHARACTER SET gbk COLLATE gbk_chinese_ci;
3、使用資料庫
USE db_name;
4、使用者管理
建立使用者 create user ‘使用者名稱‘@‘IP地址‘ identified by ‘密碼‘;刪除使用者 drop user ‘使用者名稱‘@‘IP地址‘;修改使用者 rename user ‘使用者名稱‘@‘IP地址‘; to ‘新使用者名稱‘@‘IP地址‘;;修改密碼 set password for ‘使用者名稱‘@‘IP地址‘ = Password(‘新密碼‘) PS:使用者權限相關資料儲存在mysql資料庫的user表中,所以也可以直接對其進行操作(不建議)
5、授權管理
show grants for ‘使用者‘@‘IP地址‘ -- 查看許可權grant 許可權 on 資料庫.表 to ‘使用者‘@‘IP地址‘ -- 授權revoke 許可權 on 資料庫.表 from ‘使用者‘@‘IP地址‘ -- 取消許可權
對於許可權對於資料庫對於ip執行個體
註:flush privileges,將資料讀取到記憶體中,從而實現不重啟即可生效。
四、資料表的處理
1、建立表
View Code建立表時的參數說明
2、刪除表
drop table 表名
3、清空表
delete from 表名truncate table 表名
4、修改表
添加列:alter table 表名 add 列名 類型刪除列:alter table 表名 drop column 列名修改列: alter table 表名 modify column 列名 類型; -- 類型 alter table 表名 change 原列名 新列名 類型; -- 列名,類型 添加主鍵: alter table 表名 add primary key(列名);刪除主鍵: alter table 表名 drop primary key; alter table 表名 modify 列名 int, drop primary key; 添加外鍵:alter table 從表 add constraint 外鍵名稱(形如:FK_從表_主表) foreign key 從表(外鍵欄位) references 主表(主鍵欄位);刪除外鍵:alter table 表名 drop foreign key 外鍵名稱 修改預設值:ALTER TABLE testalter_tbl ALTER i SET DEFAULT 1000;刪除預設值:ALTER TABLE testalter_tbl ALTER i DROP DEFAULT;
5、基礎資料型別 (Elementary Data Type)
MySQL的資料類型大致分為:數值、時間和字串
View Code
更多參考:
- http://www.runoob.com/mysql/mysql-data-types.html
- http://dev.mysql.com/doc/refman/5.7/en/data-type-overview.html
五、表內容操作
1、增
insert into 表 (列名,列名...) values (值,值,值...)insert into 表 (列名,列名...) values (值,值,值...),(值,值,值...)insert into 表 (列名,列名...) select (列名,列名...) from 表
2、刪
delete from 表delete from 表 where id=1 and name=‘alex‘
3、改
update 表 set name = ‘alex‘ where id>1
4、查
select * from 表select * from 表 where id > 1select nid,name,gender as gg from 表 where id > 1
5、其他
a、條件 select * from 表 where id > 1 and name != ‘alex‘ and num = 12; select * from 表 where id between 5 and 16; select * from 表 where id in (11,22,33) select * from 表 where id not in (11,22,33) select * from 表 where id in (select nid from 表) b、萬用字元 select * from 表 where name like ‘ale%‘ - ale開頭的所有(多個字串) select * from 表 where name like ‘ale_‘ - ale開頭的所有(一個字元) c、限制 select * from 表 limit 5; - 前5行 select * from 表 limit 4,5; - 從第4行開始的5行 select * from 表 limit 5 offset 4 - 從第4行開始的5行 d、排序 select * from 表 order by 列 asc - 根據 “列” 從小到大排列 select * from 表 order by 列 desc - 根據 “列” 從大到小排列 select * from 表 order by 列1 desc,列2 asc - 根據 “列1” 從大到小排列,如果相同則按列2從小到大排序 e、分組 select num from 表 group by num select num,nid from 表 group by num,nid select num,nid from 表 where nid > 10 group by num,nid order nid desc select num,nid,count(*),sum(score),max(score),min(score) from 表 group by num,nid select num from 表 group by num having max(id) > 10 特別的:group by 必須在where之後,order by之前 f、連表 無對應關係則不顯示 select A.num, A.name, B.name from A,B Where A.nid = B.nid 無對應關係則不顯示 select A.num, A.name, B.name from A inner join B on A.nid = B.nid A表所有顯示,如果B中無對應關係,則值為null select A.num, A.name, B.name from A left join B on A.nid = B.nid B表所有顯示,如果B中無對應關係,則值為null select A.num, A.name, B.name from A right join B on A.nid = B.nid g、組合 組合,自動處理重合 select nickname from A union select name from B 組合,不處理重合 select nickname from A union all select name from B
轉載:http://www.cnblogs.com/kading/
MYSQL新手入門篇