最近写J2EE实验,经常用到数据库。无奈上学期学的数据库,后来又一直没用, 现在都忘记了。搞得前几天一用到数据库就各种百度,很费时间,所以打算自己总结一下常用语句。
这篇文章说不定以后还会补充新的内容进来,现在先把近阶段用到的记录下来,不全也很正常。
我把我最开始学数据库一些不懂得地方,以及出过的各种小错误都标记一下,适合新手上路哦。当然,老手可能会觉得这些小错误很可笑...
1、前戏
使用数据库,这句话后面有没有 “ ; ” 都能执行成功。
use testdb
之后会出现
Database changed
说明使用数据库成功了。
2、建表语句
注意:之后所有的语句都围绕下面两个例子展开,本文章为连贯的一整套数据库操作流程,建议跟着下面流程实际操作一遍,收获会很多哦。
例子1:(建一个简单的学生表,学号为主键)
字段 | 含义 |
---|---|
studentID | 学号(主键) |
username | 姓名 |
create table students(
studentID int not null,
username varchar(20) not null,
primary key(studentID)
);
最后一句后面没有 “ ,” ,不然出错.
例子2:(建成绩表,其中引入学生表id作为外键)
字段 | 含义 |
---|---|
studentID | 学号(外键) |
score | 成绩 |
create table scores(
studentID int not null,
score int(2) not null,
CONSTRAINT `studentID` FOREIGN KEY (`studentID`) REFERENCES `students` (`studentID`)
);
注意到添加外键的语句为这样的:
CONSTRAINT FK_ID FOREIGN KEY (你的外键字段名) REFERENCES 外表表名(对应表的主键字段名);
3、插入语句
很简单,只举这一个例子,不多讲。(插入一个名叫gyh,学号为110的学生到学生表。插入学号为110,成绩为59的消息到成绩表)
insert into students values(110, 'gyh');
insert into scores values(110, 59);
复制下面的代码到你的sql命令行中,以便下面查询可以看到结果:
insert into students values(111, 'erm');
insert into students values(112, 'xton');
insert into students values(113, 'baw');
insert into students values(114, 'kais');
insert into scores values(111, 76);
insert into scores values(112, 88);
insert into scores values(113, 65);
insert into scores values(114, 90);
4、查询语句(重点)
4.1 单表简单查询
- select * from 表名 where 表中的某个字段 = 要找的值;
- 在结尾使用 oder by desc或asc 进行排序,desc为降序,asc为升序
- 模糊查询,在要查的关键字前后加上 “%”
根据上面的用法,给出下面几个查询例子
在学生表中找学号为110的学生:
select * from students where studentID = 110;
结果:
在成绩表中查找所有成绩并按成绩降序排列:
select * from scores order by score desc;
结果:
在成绩表中找成绩在60到80之间的记录:
select * from scores where score >= 60 and score <= 80;
结果:
在学生表中模糊查找含有 ‘a’ 的姓名的学生:
select * from students where username like '%a%';
结果:
4.2 多表联合查询(重)
可以看到上面查找的成绩表中没有姓名字段,查找学生表中又没有该学生的成绩,所以,接下来我们来联合查询显示这三个字段。
将我们需要的三个字段 select 出来,然后查询条件为学生表id等于成绩表id,最后我还做了升序排列。
select scores.studentID,students.username,scores.score from scores inner join students on scores.studentID=students.studentID order by score asc;
结果:
写在后面:查询操作比较常用也比较重要。这里只写下我用到过的,对于一些很复杂的可能我也不会,不过上面这些语句应该够用了。
5、删除
- 删除表:drop table 表名;
- 删除数据:delete from 表名 where 条件;
例如:
delete from scores where studentID = 114;
这里我就不演示了,不放结果截图了。
6、更新
简单,不多说。看例子:
update scores set score = 80 where studentID between 111 and 113;
网友评论