由于时间问题,没有时间找到所有的sql语句,不会了及时从网上找。下面我把自己遇到的问题总结一下:
首先告诉大家,尤其是不习惯dos界面的用户,有用户界面可供选择,我用的是navicat,给大家截个图:
高兴了吧?新建个链接的名字就行了,再建个数据库就好使了,都是鼠标操作。但是有人疑问要是部署到服务器咋整?很简单,你就把这个数据库备份,在服务器安装一个一样版本的的界面和数据库,然后用sql语句备份就行了。但是,出于程序员的考虑,还是写sql比较好。大家可以看到我截图的这个界面有个新建查询,大家点击后别忘保存。这里我想多说一件事。
当时,我新建链接用的默认名,之后也是写的sql语句,也保存了,但是不知道保存在哪里。于是我就测试,关闭之后重新打开,还不错,查询还在。但是后来觉得链接名字很难看,就删了。再次打开后,查询不在了,自然也就没有那些语句了。原来查询针对的是链接。
其实我早该想到,因为又一次打开了没用过的数据库,结果没注意,怎么都找不到查询,后来打开自己用的数据库才找到了。不过,最好还是多备份几个,比如word里了,还有项目根目录下了等等。
drop table person;
create table person(
pid int primary key auto_increment,
pno varchar(20) unique,
ppassword varchar(20),
pname varchar(20),
pemail varchar(20),
preminder smallint default 0,
ppower smallint default 1
);
insert into person values(1,'20104516','12345','吴俊朋','1329113268@qq.com','1',3);
insert into person (pno,ppassword,pname) values (20104528,'12345','强');
update person set pname='wujunpeng' where pno='20104516';
-- 从第六个开始,往后数三个
select * from person limit 5,3;
-- 前五个
select * from person limit 5;
-- 先排序,从第五个,数三个
select * from (select * from person p order by pno) pr limit 4,3;
-- 得到行数
select count(*) from person ;
以上语句大家可以亲自测试,观看结果,这些语句都是可以使用的。
其中还有个大文本类型:long,限制最大多大我不记得了,总之可以用;还有日期类型:timestamp default current_timestamp,默认填入dang当前时间。说这句话大家估计都知道,personbiao中pid那一行属性:整形,主键自动增长; 第二行属性:字符型,唯一; 最后一行属性:默认为1; current_date()也可当做一个属性。
下面把所有sql语句全部粘贴出来。
-- 节表
drop table chater;
create table chater(
cid int primary key auto_increment,
cno int not null,
cname varchar(20)
);
insert into chater values(5,1,'陈傻子');
insert into chater (cno,cname) values (3,'吴俊朋');
select * from chater;
-- 节表
drop table point;
create table point(
poid int primary key auto_increment,
pono int not null,
poname varchar(20),
cno int
);
insert into point values(5,1,'陈傻子',5);
select * from point;
-- 试题表
drop table exam;
create table exam(
eid int primary key auto_increment,
econtent varchar(254) not null,
ea varchar(100),
eb varchar(100),
ec varchar(100),
ed varchar(100),
eanswer varchar(2),
eansexplain varchar(254),
kid int
);
insert into exam values(5,'谁傻','陈','曾','张','吴','a','傻',3);
insert into exam (econtent,ea,eb,ec,ed,eanswer,eansexplain,kid) values ('谁傻','陈','曾','张','吴','a','傻',3);
select * from exam;
-- 知识点表
drop table know;
create table know(
kid int primary key auto_increment,
cno int,
kname varchar(20),
kcontent longtext,
krecomment varchar(254),
kother varchar(100),
kvideo varchar(100),
kpre varchar(100),
knext varchar(100)
);
insert into know values(5,3,'谁傻','陈','曾','张','吴','a','傻');
insert into know (cno,kname,kcontent,krecomment,kother,kvideo,kpre,knext) values (3,'谁傻','陈','曾','张','吴','a','傻');
select * from know;
-- 人员表
drop table person;
create table person(
pid int primary key auto_increment,
pno varchar(20) unique,
ppassword varchar(20),
pname varchar(20),
pemail varchar(20),
preminder smallint default 0,
ppower smallint default 1
);
insert into person values(1,'20104516','12345','吴俊朋','1329113268@qq.com','1',3);
insert into person (pno,ppassword,pname) values (20104528,'123','强');
select * from person;
select * from person where pno='20104516' and ppassword='12345;
update person set pname='wujunpeng' where pno='20104516';
-- 从第六个开始,往后数三个
select * from person limit 5,3;
-- 前五个
select * from person limit 5;
-- 先排序,从第五个,数三个
select * from (select * from person p order by pno) pr limit 4,3;
select * from (select * from person p where ppower=1 order by pno ) pr limit 0,5
-- 得到行数
select count(*) from person ;
-- 问题表
drop table quest;
create table quest(
qid int primary key auto_increment,
qtop int default 0,
cno int,
qname varchar(20),
qcontent varchar(254),
qperson varchar(20),
qtime timestamp default current_timestamp
);
insert into quest values(5,0,3,'傻','陈盛力撒','吴俊朋','2014-04-17 12:11:12');
insert into quest (cno,qname,qcontent,qperson) values(3,'傻','陈盛力撒','吴俊朋');
select * from quest;
-- 分数表
drop table score;
create table score(
sid int primary key auto_increment,
pno int,
kid int,
score smallint
);
insert into score values(5,20104516,3,90);
insert into score (pno,kid,score) values(20104528,'923',100);
select * from score;
-- 动态表
drop table dynamic;
create table dynamic(
did int primary key auto_increment,
dtitle varchar(100),
dcontent longtext,
durl varchar(100),
dresource varchar(100)
);
insert into dynamic values(5,'陈盛力','喜欢hy','h','sfdsfs');
insert into dynamic (dtitle,dcontent,durl,dresource) values('陈盛力','喜欢hy','http://www.baidu.com','sfdsfs');
select * from dynamic;
select * from (select did,dtitle,dresource from dynamic d order by did ) dd limit 0,2;
-- 作业表
drop table task;
create table task(
tid int primary key auto_increment,
tname varchar(100),
task longtext,
tdeadline varchar(100),
ttime date
);
insert into task values(5,'陈盛力','喜欢hy','三周',current_date());
insert into task (tname,task,tdeadline,ttime) values('盛力','喜欢hy','5月3号',current_date());
select * from task;
select * from (select * from task t order by tid ) tt limit 0,2;
-- 测试用例
create table test(
tid int,
tname varchar(20),
tage int
);
select * from test;
update test set tid= 100,tname='wup',tage=24 where tid=100;
delete from test where tid= 100;
-- 处理主键重复问题
select max(tid) from test;
-- 这时最好启用别名
select max(tid) id from test;
select * from test order by tid;
insert into test values(2,'dfsa',3434);
select * from test where tname='dfsa';