1. 程式人生 > 實用技巧 >MySQL常用的命令

MySQL常用的命令

1. window啟動/停止mysql服務

方法一
1.WIN+R --> service.msc 啟動本地服務
2.找到mysql服務,雙擊,選擇啟動
3.找到musql服務,書籍,選擇停止

方法二:
1.管理員身份執行cmd,輸入“net start mysql服務名”
1.管理身份執行cmd,輸入“net stop mysql服務名”

2. window登入mysql

方法一:利用doc介面進入
1.管理員模式開啟cmd
2.mysql -hlocalhost -root -p 回車 並輸入密碼

方法二:利用navicate視覺化介面
1.直接用navicate連線本地資料庫即可
連線名:自己取
主機名或者IP地址:localhost,按照實際填寫
埠:3306,如果改了按照實際填寫
使用者名稱密碼:按照安裝時候設定的填寫

3. window doc下常用資料庫命令

登入mysql服務
mysql -hlocalhost -root -p 回車並輸入密碼

展示資料庫
show databases

建立資料庫
create table yyyy

進入一個數據庫
use yyyy

建立一張表,包括表中的資料
create table xxxx(
id int PRIMARY KEY identify(1,1), //---idetify(1,1)表示從1開始,每次增加1
name char(10),
sex char(10),
address varcher(20),
age char(2) );

查看錶結構
desc xxxx;

插入資料
insert xxxx(name,age)
VALUES(‘大衛’,’18’);

查詢資料
select * from xxxx;

更新資料
update xxxx set age=’12’ where name=’xidada’;

插入資料
insert into xxx(name,age)value('晶柱',20);

修改表名
alter table xxxx rename xxxx1

修改表結構
在xxxx表最後位置插入一個欄位:alter table xxxx add phone varchar(11)
在xxxx表開頭插入欄位phone1:alter table xxxx add phone1 varchar(11)first
在xxxx表中sex欄位後插入欄位phone2: alter table xxxx add phone2 varchar(15) after sex
修改phone varchar(11) 為phone varchar(15):alter table xxxx modify phone varchar(15)

刪除資料
delete from xxxx where age = '20';

刪除表xxxx
drop table xxxx
備註:關於mysql的刪除資料庫表有三種方式,具體見下面的Mysql 刪除資料表的三種方式詳解

刪除資料庫yyyy
drop databases yyyy;

查詢表佔用記憶體的大小(以下是postgres)
select pg_size_pretty(pg_relation_size('tbl_login_session_recode'));

退出mysql
exit

4.Mysql 刪除資料表的三種方式詳解

1.當你不再需要該表時,用drop;

2.當你仍要保留該表,但要刪除所有記錄時,用truncate;

3.當你要刪除部分記錄或者有可能會後悔的話,用delete。

刪除程度可從強到弱如下排列:

  1. drop table tb;
    drop 是直接將表格刪除,無法找回。例如刪除 user 表:
    drop table user;

  2. truncate (table) tb;
    truncate 是刪除表中所有資料,但不能與where一起使用;
    TRUNCATE TABLE user;

  3. delete from tb (where);
    delete 也是刪除表中資料,但可以與where連用,刪除特定行;
    -- 刪除表中所有資料
    delete from user;
    -- 刪除指定行
    delete from user where username ='Tom';

5.truncate 和 delete 的區別

  1. 事物
    truncate刪除後不記錄mysql日誌,因此不可以rollback,更不可以恢復資料;而 delete 是可以 rollback ;
    原因:truncate 相當於保留原mysql表的結果,重新建立了這個表,所有的狀態都相當於新的,而delete的效果相當於一行行刪除,所以可以rollback;

  2. 效果
    效率上 truncate 比 delete快,而且 truncate 刪除後將重建索引(新插入資料後id從0開始記起),而 delete不會刪除索引 (新插入的資料將在刪除資料的索引後繼續增加)

  3. truncate 不會觸發任何 DELETE觸發器;

  4. 返回值
    delete 操作後返回刪除的記錄數,而 truncate 返回的是0或者-1(成功則返回0,失敗返回-1);

delete 與 delete from 區別

如果只針對一張表進行刪除,則效果一樣;如果需要聯合其他表,則需要使用from :
delete tb1 from tb1 m where id in (select id from tb2)

--------------------------------------------window下常用的命令---------------------------------------------
mysql常用的命令
1.安裝服務
mysqld -install

2.啟動服務
net start mysqlxxx (mysqlxxx是服務名)

2.停止服務
net stop mysqlxxx (mysqlxxx是服務名)

3.查詢一下名為mysql的服務
sc query mysqlxxx (mysqlxxx是服務名)

4.解除安裝服務(經常在重新安裝一個mysql服務的時候會出現The service already exist,代表之前安裝的mysql沒有解除安裝乾淨)
sc delete mysql

shell的命令:
1.在一堆日誌中找關鍵字

grep -r -n "xxxx" *
grep -r -n "xxxx" *.zip
------------------------------------------建立一張表的樣例----------------------------------------------
CREATE TABLE user (
id int(5) NOT NULL,
user_name varchar(50) NOT NULL,
password varchar(50) NOT NULL,
age int(2) NOT NULL,
reg_time datetime(6) NOT NULL,
PRIMARY KEY (id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
INSERT INTO user VALUES ('1', 'test1', '123456', '10', '2020-07-06 22:21:11.000000'), ('2', 'test2', '123456', '10', '2020-07-09 22:21:28.000000');
COMMIT;

CREATE TABLE user (
id int(5) NOT NULL,
user_name varchar(50) NOT NULL,
password varchar(50) NOT NULL,
age int(2) NOT NULL,
reg_time datetime(6) NOT NULL,
PRIMARY KEY (id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
INSERT INTO user VALUES ('1', 'test1', '123456', '10', '2020-07-06 22:21:11.000000'), ('2', 'test2', '123456', '10', '2020-07-09 22:21:28.000000');
COMMIT;

CREATE TABLE user (
id int(5) NOT NULL PRIMARY KEY,
name varchar(50) NOT NULL,
password varchar(50) NOT NULL,
age int(2) NOT NULL
)