1.创建数据库user
create database user
2.删除数据库user
drop database user
3.创建新表user
CREATE TABLE user (
id BIGINT NOT NULL AUTO_INCREMENT,
name VARCHAR(100) NOT NULL,
number INT NOT NULL,
PRIMARY KEY (id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
4.查看表user数据
desc user
5.更改表user名
rename table user to users
6.修改表数据
update user set name=#{name} where id=#{id}
7.模糊查询
select * from user where name like concat('%',#{name},'%')
1、有3 个表,表结构如下:
Student 学生表(学号,姓名,性别,年龄,组织部门)
Course 课程表(编号,课程名称)
Sc 选课表(学号,课程编号,成绩)。
1)写一个SQL 语句,查询选修了’计算机原理’的学生学号和姓名。
select student.sno,student.sname from student
left join sc on student.sno=sc.sno
left join course on sc.cno=course.cno
where course.cname='计算机组成原理';
2)写一个SQL 语句,查询’王小明’同学选修了的课程名字。
select cname from course
where cno in (select cno from sc where sno=(select sno from studen where sname='王小明'));
3)写一个SQL 语句,查询选修了5 门课程的学生学号和姓名
select studen.sno studen.sname from studen
where (select count(*) from sc where sno=studen.sno)=5;
2、有三张表,学生表S,课程C,学生课程表SC,学生可以选修多门课程,一门课程可以被多个学生选修,通过SC 表关联。
1)写出SQL 语句,查询选修了所有选修课程的学生;
select * from s where (select count(*) from sc where sc.sno=s.sno)=(select count(*) from c)
2)写出SQL 语句,查询选修了至少5 门以上的课程的学生。
select * from s where (select count(*) from sc where sno=s.sno)>4
3、数据库表(Test)结构如下:
ID | NAME | AGE | MANAGER(所属主管人ID) |
106 | A | 30 | 104 |
109 | B | 19 | 104 |
104 | C | 20 | 111 |
107 | D | 35 | 109 |
112 | E | 25 | 120 |
119 | F | 45 | null |
要求:列出所有年龄比所属主管年龄大的人的ID 和名字
select e.id name from test e where age>
(select m.age from test m where m.id=e.manager )
4、有如下两张表:
表city:表state:
CityNo | CityName | StateNo |
BJ | 北京 | Null |
SH | 上海 | Null |
GZ | 广州 | GD |
DL | 大连 | LN |
欲得到如下结果:
CityNo City Name State No State Name
BJ 北京 (Null)(Null)
DL 大连 LN 辽宁
GZ 广州 GD 广东
SH 上海 (Null) (Null)
写出相应的SQL 语句。
SELECT C.CITYNO, C.CITYNAME, C.STATENO, S.STATENAME FROM
CITY C, STATE S WHERE C.STATENO=S.STATENO ORDER BY(C.CITYNO);