免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1072 | 回复: 0
打印 上一主题 下一主题

【总结】常用数据库语法(以Mysql为基础) [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2011-12-23 01:02 |只看该作者 |倒序浏览

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

 

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

 

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

 

恢复mysql -u用户名 -p密码 数据库名 <F:\XXX.txt

 

数据库操作:

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

 

您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP