注:我們以XXX代表數(shù)據(jù)庫名(database),aaa代表數(shù)據(jù)表名(table), id和name為列名(column)
DOS下連接數(shù)據(jù)庫:mysql -u用戶名 -hIP -p密碼
備份(前提是以斷開數(shù)據(jù)庫連接):mysqldump -u用戶名 -p密碼 數(shù)據(jù)庫名 >F:\XXX.txt
恢復(fù):mysql -u用戶名 -p密碼 數(shù)據(jù)庫名 <F:\XXX.txt
數(shù)據(jù)庫操作:
create database XXX;
show databases;
use XXX;
drop database XXX;
表操作:
1.創(chuàng)建create
——————————————————————
create table aaa(
id int auto_increment primary key,
name varchar(30) not null,
);
2.查看show
——————————————————————
show columns from aaa;
show columns from aaa from XXX;
describe aaa id;(只顯示一列)簡寫為:desc aaa id;
3.修改alert
——————————————————————
alter table aaa add email varchar(30) not null,modify name varchar(40) not null;
注意修改的最小單位為一列,不能單獨(dú)修改一列中的某一個(gè)屬性。例如修改name varchar(10) not null成varchar(30),如果用modify name varchar(30);就會(huì)出錯(cuò),因?yàn)槟J(rèn)把not null也修改成null了。
4.插入insert
—————————————————————
insert into aaa(user,password,email) values('zollty','123456','zollty@qq.com');
5.#######表查詢語句#####
—————————————————————
select * from aaa
where ……
group by ……
order by ……
having ……
limit ……
6.修改update
————————————————————
update aaa set password='741951' where user='zollty';
7.刪除delete
———————————————————
delete from aaa where user='tiger';
———————————————————
特別案例分析:
1.聯(lián)合查詢
———————————————————————
SELECT a . * , b.name, b.email, b.qq, c.revert, c.revert_time
FROM post a
LEFT JOIN revert c ON ( a.id = c.post_id ) , guest b WHERE a.guest_id = b.id
ORDER BY a.id DESC
————————————————————————————
這是一個(gè)實(shí)際的案例,要求是:在guest(id,name,email),post(id,guest_id,post,post_time),
revert(id,post_id,revert,revert_time) 三個(gè)表中找到guest中的name,email,qq以及revert中的revert,revert_time還有post中的所有信息。三個(gè)表的外鍵關(guān)系是guest.id = post.guest_id,post.id = revert.post_id。查詢的入口是post表,根據(jù)post的id主鍵找到guest和revert表中的相應(yīng)信息,然后刪除。
第三行代碼是關(guān)鍵:
LEFT JOIN revert c ON ( a.id = c.post_id ) , guest b WHERE a.guest_id = b.id
分析:左連接到revert表,revert化名為c,連接條件是a.id = c.post_id(即revert中的post_id要和post表中的id相同);左連接到guest表,guest化名為b,連接條件是a.guest_id = b.id(即guest表中的id要和post表中的guest_id相同)。顯然這兩個(gè)連接都是利用了上面的外鍵關(guān)系。