Chinaunix首页 | 论坛 | 博客
  • 博客访问: 200541
  • 博文数量: 26
  • 博客积分: 567
  • 博客等级: 中士
  • 技术积分: 420
  • 用 户 组: 普通用户
  • 注册时间: 2011-06-05 18:48
文章分类

全部博文(26)

文章存档

2011年(26)

分类: Mysql/postgreSQL

2011-10-11 20:27:54

注:我们以XXX代表数据库名(database)aaa代表数据表名(table), idname为列名(column)

 

DOS下连接数据库:mysql -u用户名 -hIP -p密码

 

备份(前提是以断开数据库连接):mysqldump -u用户名 -p密码 数据库名 >F:\XXX.txt

 

恢复mysql -u用户名 -p密码 数据库名

 

数据库操作:

create database XXX;

show databases;

use XXX;

drop database XXX;

 

表操作:

 

1.创建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;

注意修改的最小单位为一列,不能单独修改一列中的某一个属性。例如修改name varchar(10) not nullvarchar(30),如果用modify name varchar(30);就会出错,因为默认把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.联合查询

———————————————————————

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

————————————————————————————

这是一个实际的案例,要求是:在guest(id,name,email)post(id,guest_id,post,post_time)

revert(id,post_id,revert,revert_time) 三个表中找到guest中的nameemailqq以及revert中的revertrevert_time还有post中的所有信息。三个表的外键关系是guest.id = post.guest_idpost.id = revert.post_id。查询的入口是post表,根据postid主键找到guestrevert表中的相应信息,然后删除。

第三行代码是关键:

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相同)。显然这两个连接都是利用了上面的外键关系。

 

阅读(2270) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~