mysql 基礎使用(一)
參考**:
1. 安裝完成後,登入mysql.
//登入mysql
mysql -u root -p(mysql -u root -ppass,注意pass和-p引數無空格)//檢視狀態
status//在管理員模式下啟動mysql
net start mysql57(注意服務名稱)
net stop mysql57
2. mysql配置檔案
(windows)my.ini檔案,一般情況下,my.ini 在 mysql 安裝的根目錄下,也有可能在隱藏資料夾「c:\programdata」下面。
(linux)my.cnf檔案,
3. sql概述
sql 包含以下 4 部分:
1)資料定義語言(data definition language,ddl)
用來建立或刪除資料庫以及表等物件,主要包含以下幾種命令:
drop:刪除資料庫和表等物件
create:建立資料庫和表等物件
alter:修改資料庫和表等物件的結構
2)資料操作語言(data manipulation language,dml)
用來變更表中的記錄,主要包含以下幾種命令:
select:查詢表中的資料
insert:向表中插入新資料
update:更新表中的資料
delete:刪除表中的資料
3)資料查詢語言(data query language,dql)
用來查詢表中的記錄,主要包含 select 命令,來查詢表中的資料。
4)資料控制語言(data control language,dcl)
用來確認或者取消對資料庫中的資料進行的變更。除此之外,還可以對資料庫中的使用者設定許可權。主要包含以下幾種命令:
grant:賦予使用者操作許可權
revoke:取消使用者的操作許可權
commit:確認對資料庫中的資料進行的變更
rollback:取消對資料庫中的資料進行的變更
4. 建立
(在mysql中關鍵字不區分大小寫)//建立資料庫
create databases test_db;//使用 mysql 命令列工具建立乙個測試資料庫,命名為 test_db_char,指定其預設字符集為 utf8,預設校對規則為 utf8_chinese_ci(簡體中文,不區分大小寫):
mysql>create database if not exists test_db_char
default character set utf8
default collate utf8_chinese_ci;//建立後修改(同樣可用於修改表)
mysql>alter database test_db
default character set gb2312
default collate gb2312_chinese_ci;//切換資料庫
use test_db;//建立表,支援utf8
create table students(
student_id int unsigned,
name varchar(30) ,
*** char(1),
birth date,
primary key(student_id)
) character set=utf8;//修改已有表,支援utf8
alter table students convert to character set utf8;//顯示資料庫
show databases like 'test_db';//使用『%』萬用字元顯示包含test的資料庫
show databases like '%test%';//刪除表
drop databases ifexists test_db;//檢視表
show tables;//describe/desc 語句可以檢視表的字段資訊,包括欄位名、字段資料型別、是否為主鍵、是否有預設值等。
desc students;//show create table語句可以用來顯示建立表時的create table語句
show create table students;//修改表名
alter table students rename to student;//修改表字符集
alter table student character set gb2312 collate gb2312_chinese_ci;//修改欄位名稱
alter table student change student_id id int(15) unsigned;//修改字段資料型別
alter table student modify id int(20);//刪除字段
alter table student drop ***;//新增字段,末尾、表頭、中間位置。
alter table student add *** char(1);
alter table student add ***char(1) first;
alter table student add ***char(1) after id;//關聯表,自己試驗的過程中,刪除主表不會報錯,暫未找到問題,mysql5.7.30
constraint fk_emp4_emp5 foreign key (deptid) references tb_emp4(id)//解除外來鍵約束
alter table tb_emp5 drop foreign key fk_emp4_emp5;
(關於約束的問題詳看下一章)
5. 資料型別
1) 數值型別
整數型別包括 tinyint、smallint、mediumint、int、bigint,浮點數型別包括 float 和 double,定點數型別為 decimal。
2) 日期/時間型別
包括 year、time、date、datetime 和 timestamp。
3) 字串型別
包括 char、varchar、binary、varbinary、blob、text、enum 和 set 等。
4) 二進位制型別
包括 bit、binary、varbinary、tinyblob、blob、mediumblob 和 longblob。
6. 儲存型別
現在許多資料庫管理系統都支援多種不同的儲存引擎。mysql 的核心就是儲存引擎。mysql 提供了多個不同的儲存引擎,包括處理事務安全表的引擎和處理非事務安全表的引擎。在 mysql 中,不需要在整個伺服器中使用同一種儲存引擎,針對具體的要求,可以對每乙個表使用不同的儲存引擎。mysql 5.7 支援的儲存引擎有 innodb、myisam、memory、merge、archive、csv、blackhole 等。可以使用show engines;語句檢視系統所支援的引擎型別。
如何選擇mysql儲存引擎?
//顯示支援的引擎
show engines;//顯示預設搜尋引擎
show variables like 'default_storage_engine%';//修改預設搜尋引擎
set default_storage_engine=myisam;//顯示資料表的當前搜尋引擎
show create table students;//修改資料表的搜尋引擎
alter table students engine=myisam;//以上這種方法適用於修改單個表的儲存引擎,如果希望修改預設的儲存引擎,就需要修改my.cnf(my.ini)配置檔案。在 my.cnf (my.ini) 配置檔案的 [mysqld] 後面加入:
default-storage-engine=儲存引擎名稱
NPS內網穿透穿透
最近使用公司的虛擬專用網導致我想自己試試怎麼搞出來的,有兩個行動硬碟想嘗試買個樹莓派來做個遠端可以訪問本地的網盤,就拿電腦測試一下。我看大概有以下種工具 frp nps 蒲公英和花生殼。後兩者都是有部分限制的,但不需要自己有伺服器。前兩個適合有伺服器的,我就嘗試了一下nps,我這裡主要試了 的 具體...
ssh內網穿透
總共有3臺機械人 company 能夠訪問外網,沒用公網ip person 能夠訪問外網,沒有公網ip server 具有公網ip person電腦想在家裡遠端ssh登陸到公司的機器 server sudo apt get install openssh server vim etc ssh ssh...
內網穿透 Sunny Ngrok
背景 其實是想自己做個什麼專案可以讓大家都看得到,本來想的是自己租乙個伺服器再租乙個網域名稱。但是一直沒有什麼好的想法,也就一直沒有租,總想著有了想法之後在租,要不多浪費錢是吧 雖然沒有多少錢 然後就遇到我 偉大 的朋友給我介紹了乙個內網穿透的工具 sunny ngrok 內網穿透工具不只這乙個 還...