MYSQL常用操作命令

2021-10-18 03:12:32 字數 4804 閱讀 2620

在wsl上安裝mysql,sudo apt install mysql-server
mysql安裝成功之後,預設的root使用者密碼為空,(注意:mysql 8.0以上的版本修改root密碼的方式有所改變),可以使用命令來建立root使用者的密碼:

1.啟動mysql伺服器

sudo service mysql start
2.選擇資料庫

use mysql
3.修改root使用者的密碼

alter user 'root'@'localhost' identified with mysql_native_password by 'aa663366***';
4.重新整理許可權

flush privileges
5.重啟資料庫

sudo service mysql restart
6.此時即可使用root使用者的密碼進入資料庫

mysql -uroot -p
1.查詢mysql是否已經啟動

ps -ef |grep mysql
2.選擇某個資料庫

use mysql;

create database testdb charset "utf8"; #建立乙個叫testdb的資料庫,且讓其支援中文

3.顯示所有表

show tables;
4.檢視表結構

desc user;
5.顯示表構建語句

show create table user;
6.新建表

create table user(

id int auto_increment not null primary key ,

username char(32),

password char(32));

7.主鍵

主鍵分為單主鍵與多字聯合主鍵,主鍵特點如下:

主鍵值必須唯一標識表中的每一行,且不能為 null,即表中不可能存在兩行資料有相同的主鍵值。這是唯一性原則。

8.外來鍵

1.要在表裡設定外來鍵關聯

2.從表的外來鍵列的型別和主表的關聯列的型別要求一致或相容

3.主表的關聯列必須是乙個key(一般是主鍵或唯一鍵)

4.插入資料時,必須先插入主表,再插入從表;

刪除資料時,先刪除從表,再刪除主表;

——摘自

create table `user_class`(  

`id` int auto_increment primary key,

`user_id` int ,

`grade` char(23),

key `fk_key` (`user_id`),

constraint `fk_key` foreign key (`user_id`) references `user` (`id`) );

9.新增表資料

insert into user (username,password) values('a','a123'),('b','b123'),('c','c123'),('d','d123');
10.刪除表資料

delete from user where id=1;
11.修改表資料

修改資料內容:update user set username="aaa" where id=2;

刪除列:alter table user drop username;

新增列:alter table user add username char(64);

修改列屬性: alter table user modify username int;

修改列名稱屬性:alter table user change username uuu int(10);

12.查詢表資料

語法:select column_name,column_name

from table_name

[where clause]

[offset m ][limit n]

offset:偏移量,跟在limit後面,表明當前搜尋到的資料向下偏移1位(即選擇下一行的資料)

select * from user limit 1 offset 1;
13.關係(join)

join按關係分為三類:

1.left join 獲取左表所有記錄,即使右表沒有對應匹配的記錄。

2.right join 獲取右表所有記錄,即使右表沒有對應匹配的記錄。

3.inner join 獲取兩個表中字段匹配關係的記錄。

select * from a inner join b on a.a=b.b;

select * from a left join b on a.a=b.b;

select * from a right join b on a.a=b.b;

#full join

select * from a right join b on a.a=b.b union select * from a left join b on a.a=b.b;

14.group by

select a,count(a) from a group by a;

#with rollup ,篩選結果最後加入乙個彙總行

select a,count(a) from a group by a with rollup;

#使用 coalesce 來設定乙個可以取代 null 的名稱

select coalesce(a,"count num"),count(a) as countcount from a group by a with rollup;

+-------------------------+------------+

| coalesce(a,"count num") | countcount |

+-------------------------+------------+

| aaa | 1 |

| b | 1 |

| c | 1 |

| d | 1 |

| count num | 4 |

+-------------------------+------------+

15.排序(asc、desc)

select field1, field2,…fieldn table_name1, table_name2…

order by field1, [field2…] [asc [desc]]

使用 asc 或 desc 關鍵字來設定查詢結果是按公升序或降序排列。 預設情況下,它是按公升序排列。

select * from a where a like binary "%a" order by id desc;

select * from a order by id desc;

16.事務

mysql> begin; #開始乙個事務

mysql> insert into a (a) values(555);

mysql>rollback; 回滾 , 這樣資料是不會寫入的

mysql>commit; 提交

17.排名

select id,num,@rank:=@rank+1 paixu from test_score t1 join (select @rank:=0) t2 order by num desc;

18.索引

索引也是一張表,索引增快了查詢速度,但是會降低更新表的速度(要更新資料還要儲存索引檔案)

乙個表裡的主鍵預設就是索引

#顯示表中的索引字段

show index from user;

#建立索引

create index index_name_lala on user (uuu(length));

#刪除索引

drop index index_name_lala on user;

建立表的時候直接指定索引

create table mytable(

id int not null,

username char(32) not null,

index in_uname (username(32))

);

唯一索引:與普通索引類似

特點:1.索引值必須唯一,但是允許有空值

2.組合索引,則列值的組合必須唯一

#建立唯一索引

create unique index index_name_lala on mytable (username(32));

MySQL常用操作命令

1 啟動mysql伺服器 實際上上篇已講到如何啟動mysql。兩種方法 一是用winmysqladmin,如果機器啟動時已自動執行,則可直接進入下一步操作。二是在dos方式下執行 d mysqlbinmysqld 2 進入mysql互動操作介面 在dos方式下,執行 d mysqlbinmysql ...

MYSQL 常用操作命令

一 修改mysql資料表中的字段屬性 1.登入資料庫 mysql u root p 資料庫名稱 2.查詢所有資料表 show tables 3.查詢表的字段資訊 desc 表名稱 4.1.修改某個表的字段型別及指定為空或非空 alter table 表名稱 change 欄位名稱 欄位名稱 字段型別...

MySql常用操作命令

第一招 mysql服務的啟動和停止 net stop mysql net start mysql 第二招 登陸mysql 語法如下 mysql u使用者名稱 p使用者密碼 鍵入命令mysql uroot p,回車後提示你輸入密碼,輸入12345,然後回車即可進入到mysql中了,mysql的提示符是...