毕业设计记录(三)mysql的SQL语句_MySQL
首先告诉大家,尤其是不习惯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';