伺服器端安裝好了,它裡面維護了一個大容器,大倉庫,但是它預設是沒有開著,是禁用狀態。哪怕你有許可權,有身份也進不去。所以在使用前,必須要保證服務是啟動狀態。
右擊計算機-----管理-------服務------------啟動或停止mysql服務
net是windows系統自帶的。
啟動:net start mysql服務名
停止:net stop mysql服務名
注意:要用管理員身份開啟命令列。在這個身份下才能開啟和停止服務
mysqladmin -u root -p shutdown 要輸密碼
這個是關閉mysql服務
登入:
mysql 【-h主機名 -P埠號 】-u使用者名稱 -p密碼
如果是在本機,可以省略 -h 主機名 -P埠號
退出:
exit或ctrl+C
注意:假如輸入命令被提示不是合法的內部命令,這是因為環境變數沒有配好。我們在安裝mysql不是設定了嗎?可能因為我們設定的安裝在後面,環境變數預設是從前往後找,可能會出現混淆,導致mysql不好使。那就要重新設定環境變數。將mysql中bin目錄的路徑新增到計算機Path路徑的第一行即可。
1.檢視當前所有的資料庫
show databases;
2.開啟指定的庫
use 庫名
3.檢視當前庫的所有表
show tables;
4.檢視其它庫的所有表
show tables from 庫名;
5.建立表
create table 表名(
列名 列型別,
列名 列型別,
。。。
);
6.檢視表結構
desc 表名;
7.檢視伺服器的版本
方式一:登入到mysql伺服器端
select version();
方式二:沒有登入到mysql伺服器端
mysql --version
或
mysql --V
案例:
展示所有資料庫,然後進入test資料庫檢視表
此時可知test資料庫中沒有表,那我想看看mysql資料庫中有沒有表。
有兩種方式:
1.use mysql; =====> show tables;
2.show tables from mysql;
注意:此時還是在test資料庫中。
select database(); 檢視當前在哪個庫中。
接下來在test庫中建一張表,並檢視表以及表結構
然後檢視該表資料,並且插入資料
接下來檢視資料庫的版本
方式1:登入到mysql伺服器端 select version();
方式二:沒有登入到mysql伺服器端
mysql --version
或
mysql --V
1.不區分大小寫,但建議關鍵字大寫,表名、列名小寫
2.每條命令最好用分號結尾
3.每條命令根據需要,可以進行縮排 或換行
4.註釋
單行註釋:#註釋文字
單行註釋:-- 註釋文字 --空格
多行註釋:/* 註釋文字 */
語法:
insert into 表名(欄位名,…)
values(值1,…);
修改單表語法:
update 表名 set 欄位=新值,欄位=新值
【where 條件】
修改多表語法:
update 表1 別名1,表2 別名2
set 欄位=新值,欄位=新值
where 連線條件
and 篩選條件
單表的刪除: ★
delete from 表名 【where 篩選條件】
多表的刪除:
delete 別名1,別名2
from 表1 別名1,表2 別名2
where 連線條件
and 篩選條件;
truncate table 表名
兩種方式的區別【面試題】
#1.truncate不能加where條件,而delete可以加where條件
#2.truncate的效率高一丟丟
#3.truncate 刪除帶自增長的列的表後,如果再插入資料,資料從1開始
#delete 刪除帶自增長列的表後,如果再插入資料,資料從上一次的斷點處開始
#4.truncate刪除不能回滾,delete刪除可以回滾
庫的管理:
一、建立庫
create database 庫名
二、刪除庫
drop database 庫名
表的管理:
#1.建立表
CREATE TABLE IF NOT EXISTS stuinfo(
stuId INT,
stuName VARCHAR(20),
gender CHAR,
bornDate DATETIME
);
DESC studentinfo;
#2.修改表 alter
語法:ALTER TABLE 表名 ADD|MODIFY|DROP|CHANGE COLUMN 欄位名 【欄位型別】;
#①修改欄位名
ALTER TABLE studentinfo CHANGE COLUMN sex gender CHAR;
#②修改表名
ALTER TABLE stuinfo RENAME [TO] studentinfo;
#③修改欄位型別和列級約束
ALTER TABLE studentinfo MODIFY COLUMN borndate DATE ;
#④新增欄位
ALTER TABLE studentinfo ADD COLUMN email VARCHAR(20) first;
關鍵字after可以改變增加列的順序,如果增加列為第一列,則要加first.
#⑤刪除欄位
ALTER TABLE studentinfo DROP COLUMN email;
#3.刪除表
DROP TABLE [IF EXISTS] studentinfo;
varchar的長度是可變的。
也就是說:我們定義一個char[11]和varchar[11],然後存在進去的是‘china’,
那麼這時候char佔的長度依舊是11,除去‘china’外,後邊還會跟著6個空格;
而varchar會立馬把長度變為5。
在取資料的時候
char需要用trim()去除空格;
而varchar不需要。
備份:
恢復:
union聯合查詢
預設去重
Select * from 表1
Union
Select * from 表2;
如果不想去重,加上all
Select * from 表1
Union all
Select * from 表2;
select * from t_user where userName regexp ‘ ^n‘;
表示以n打頭
select * from t_user where userName regexp ‘ ^n$‘;
表示以n為結尾
Alter table users add primary key(userId);
新增聯合主鍵:
刪除主鍵:
ALTER TABLE stuinfo DROP PRIMARY KEY;
刪除索引: