無線電通訊之父:馬可尼
阿新 • • 發佈:2020-10-21
MySQL常用指令
修改表結構
啟動mysql服務
#啟動mysql服務,mysql55是安裝MySQL伺服器時指定的伺服器名稱
net start mysql55
#停止mysql服務
net stop mysql55
建立資料庫
#建立資料庫 設定字符集 設定排序規則
create database 資料庫名 character set gb2312 collate gb2312_chinese_ci;
#檢視資料庫伺服器中存在的資料庫
show databases;
#指定檢視某個資料庫資訊
show create database 資料庫名;
修改資料庫
#修改資料庫字符集和排序規則 alert database 資料庫名 character set utf8 collate utf8_bin;
刪除資料庫
drop database 資料庫名;
建立和檢視資料表
#使用use語句設定當前資料庫 use 資料庫名; #檢視資料表 show tables; #建立資料表 create table 表名 ( 欄位定義1, 欄位定義2, 。。。。。。 欄位定義n ); #例如 #primary key:主鍵 auto_increment:主鍵名稱 comment:自增 使用者ID:註釋 create table user ( uID int(11) primary key auto_increment comment '使用者ID', uName varchar(30) not null, uPwd varchar(30) not null, uSex enum('男','女') default '男' #注意最後一行沒有逗號 ); #查看錶結構(方式一) desc 資料庫名.表名; #查看錶結構(方式二) desc 資料庫名.表名\G;
修改表
#修改表名
alert table 原表名 rename 新表名;
#修改欄位
alert table 表名 change 原欄位名 新欄位名 新資料型別;
#只修改欄位型別
alert table 表名 modify 欄位名 新資料型別;
#修改欄位的排列位置
alert table 表名 modify 欄位名1 資料型別 first|after 欄位名2;
#新增新欄位
alert table 表名 add 欄位名 資料型別;
#刪除欄位
alert table 表名 drop 欄位名;
#修改表的儲存引擎
alert table 表名 engine=儲存引擎名;
複製表
#複製表結構及資料到新表
create table 新表名 select * from 原表名;
#只複製表結構到新表
create table 新表名 select * from 原表名 where false;
#mysql 5.0後實現表結構複製還可以用like
create table 新表名 like 原表名;
#複製表的部分欄位及資料到新表
create table 新表名 as (select 欄位1,欄位2,.....from 原表名);
刪除表
#刪除表
drop table 表名;
#刪除多張表
drop table 表名1,表名2;
修改表資料
使用insert語句插入單條資料
insert into 表名 [(欄位列表)] values(值列表);
insert into user values(1,'hello world');
#向指定欄位插入資料
INSERT into user(uName,uPwd) values('張三','admin');
使用REPLACE語句插入單條資料
REPLACE INTO 表名[(欄位列表)] values(值列表);
REPLACE INTO user(uId,uName,uPwd) values(3,'張三','admin');
使用INSERT語句插入多條語句
INSERT INTO 表名[(欄位列表)] values(值列表1)[(值列表2),...(值列表n)];
#注意 插入的值必須對應前面的欄位
INSERT INTO user(uName,uSex,uPwd) values
('張三','男','admin'),
('李四','男','admin1'),
('法外狂徒','男','admin2');
使用REPLACE語句插入多條語句
REPLACE INTO user(uID,uName,uSex,uPwd) values
(5,'張一','admin1'),
(6,'張二','admin2'),
(7,'張五','admin3');
插入其它表資料
INSERT INTO 目標資料表(欄位列表一)
SELECT 欄位列表二 FROM 源資料表 WHERE 條件表示式;
INSERT語句的其他語法格式
INSERT INTO 表名
SET 欄位名1=值1 [欄位名2=值2,....]
#欄位順序可以調整
INSERT INTO user
SET uName='admin',
uPwd='123',
uSex='男';
修改資料
UPDATE語句用於更新資料表中的資料
UPDATE 表名
SET 欄位名1=值1,欄位名2=值2 ...,欄位名n=值n
[where 條件表示式];
#修改admin的密碼
UPDATE user
SET uPwd = '456'
where uName='admin';
#修改資料表中所有的密碼
UPDATE user
SET uPwd = '123';
刪除資料
使用delete刪除資料
DELETE FROM 表名 [WHERE 條件表示式];
#刪除id為4的記錄
DELETE FROM user
WHERE uID=4;
#刪除表中所有資料
DELETE FROM user;
使用TRUNCATE語句刪除資料
TRUNCATE [TABLE] 表名;
#刪除user表所有資料
TRUNCATE user;
DELETE和TRUNCATE語句都能刪除表中所有資料,它們的區別:
- DELETE語句可以實現帶條件的資料刪除,TRUNCATE只能清除表中記錄
- TRUNCATE語句清除表中資料後,再向表中插入資料時,自動增加的欄位預設初始值從新從1開始;使用DELETE語句清除表中資料後,再向表中新增記錄時,自增欄位的值會從記錄中該欄位最大值加1開始編號。
- 使用DELETE語句每刪除一行記錄都會記錄在系統操作日誌中,TRUNCATE語句清空資料時,不會在日誌中記錄刪除內容,如要刪除表中所有資料,TRUNCATE語句效率要高於DELETE語句。