1. 程式人生 > 實用技巧 >無線電通訊之父:馬可尼

無線電通訊之父:馬可尼

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語句。