SQL语句的基本题
问下,SQL语句中的两个表的关联查询怎么写啊,还有模糊查询。请帮忙写出这两种SQL语句的表达结构、关键字、谢谢啦...
问下,SQL语句中的两个表的关联查询怎么写啊 ,还有模糊查询。请帮忙写出这两种SQL语句的表达结构、关键字、谢谢啦
展开
展开全部
SQL的关联其实有多种方式,常用的是用关键字join,语法为:
"SELECT ... FROM table a JOIN table b ON a.column = b.column"
常用的关联方式有inner join (交集), left join (同左表), right join (同右表), cross join (并集)。
例如:
SELECT * FROM employee INNER JOIN department ON employee.DepartmentID = department.DepartmentID;
SQL模糊查询的语法为
“SELECT column FROM table WHERE column LIKE 'pattern';”。
SQL提供了四种匹配模式:
1. % 表示任意0个或多个字符。如下语句:
SELECT * FROM user WHERE name LIKE 'a%';
将会把a打头的名字(name)全找出来;
2. _ 表示任意单个字符。语句:
SELECT * FROM user WHERE name LIKE 'a_';
将会把a打头的两个字母的名字(name)全找出来,如a1,a2...;
3. [ ] 表示括号内所列字符中的一个。语句:
SELECT * FROM user WHERE name LIKE '[abc]1';
将找出“a1”、“b1”、“c1”(而不是“abc1”);
如 [ ] 内有一系列字符(01234、abcde之类的)则可略写为“0-4”、“a-z”,所以,本例可改写为:
SELECT * FROM user WHERE name LIKE '[a-c]1';
4. [^] 表示不在括号所列之内的单个字符。语句:
SELECT * FROM user WHERE name LIKE '[^abc]1';
将找出“d1”、“e1”、“f1”等;
如 [ ] 内有一系列字符(01234、abcde之类的)则可略写为“0-4”、“a-z”,所以,本例可改写为:
SELECT * FROM user WHERE name LIKE '[^a-c]1';
"SELECT ... FROM table a JOIN table b ON a.column = b.column"
常用的关联方式有inner join (交集), left join (同左表), right join (同右表), cross join (并集)。
例如:
SELECT * FROM employee INNER JOIN department ON employee.DepartmentID = department.DepartmentID;
SQL模糊查询的语法为
“SELECT column FROM table WHERE column LIKE 'pattern';”。
SQL提供了四种匹配模式:
1. % 表示任意0个或多个字符。如下语句:
SELECT * FROM user WHERE name LIKE 'a%';
将会把a打头的名字(name)全找出来;
2. _ 表示任意单个字符。语句:
SELECT * FROM user WHERE name LIKE 'a_';
将会把a打头的两个字母的名字(name)全找出来,如a1,a2...;
3. [ ] 表示括号内所列字符中的一个。语句:
SELECT * FROM user WHERE name LIKE '[abc]1';
将找出“a1”、“b1”、“c1”(而不是“abc1”);
如 [ ] 内有一系列字符(01234、abcde之类的)则可略写为“0-4”、“a-z”,所以,本例可改写为:
SELECT * FROM user WHERE name LIKE '[a-c]1';
4. [^] 表示不在括号所列之内的单个字符。语句:
SELECT * FROM user WHERE name LIKE '[^abc]1';
将找出“d1”、“e1”、“f1”等;
如 [ ] 内有一系列字符(01234、abcde之类的)则可略写为“0-4”、“a-z”,所以,本例可改写为:
SELECT * FROM user WHERE name LIKE '[^a-c]1';
展开全部
两表关联查询方法一:
select a.id,b.name from a_table a,b_table b where a.id=b.id;
两表关联查询方法二:
select a.id from a_table a inner join b_table on a.id=b.id;
模糊查询:
假设要查询NAME列中的王
select name,sex from table where name like '%王%';
%王%--意思是用%匹配王前后的所有字符,例如 小王李,这样可以匹配;
select name,sex from table where name like '_王_';
'_王_'--意思是用_匹配王前后各一个字符;
select a.id,b.name from a_table a,b_table b where a.id=b.id;
两表关联查询方法二:
select a.id from a_table a inner join b_table on a.id=b.id;
模糊查询:
假设要查询NAME列中的王
select name,sex from table where name like '%王%';
%王%--意思是用%匹配王前后的所有字符,例如 小王李,这样可以匹配;
select name,sex from table where name like '_王_';
'_王_'--意思是用_匹配王前后各一个字符;
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
select A.字段,B.字段 from 表1 as A left join 表2 as B on A.字段=B.字段
on 后面为2个表联系的字段
模糊查询就用 LIKE就可以了,如
select * from employee where empname like'%刘%' 查出来的就是empname里包含'刘' 的记录
on 后面为2个表联系的字段
模糊查询就用 LIKE就可以了,如
select * from employee where empname like'%刘%' 查出来的就是empname里包含'刘' 的记录
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
1.俩表关联查询用 INNER JOIN / LEFT JOIN /FULL JOIN
比如 表 某大学 有表XXX 内容为 专业 和 学生ID
另有表ZZZ 内容为 学生ID 和 学生名字
那么像查询出 计算机专业 的学生名字
select B.专业,A.学生名字 FROM ZZZ A
INNER JOIN XXX B ON A.学生ID = B.学生ID
WHERE B.专业 = '计算机'
2.模糊查询 用 like 内容中 用% 来查询
比如 某表AAA 里 有 ZZ字段 内容有 (计算机学院),(计算机科学与技术),(计算机软件)。。。。。。
那么如果想把所有 ZZ字段有 '计算机'的 查询出来 :
select zz from AAA where zz like '计算机%'
如果想把所有 ZZ字段有 '算机'的 查询出来 :
select zz from AAA where zz like '%算机%'
比如 表 某大学 有表XXX 内容为 专业 和 学生ID
另有表ZZZ 内容为 学生ID 和 学生名字
那么像查询出 计算机专业 的学生名字
select B.专业,A.学生名字 FROM ZZZ A
INNER JOIN XXX B ON A.学生ID = B.学生ID
WHERE B.专业 = '计算机'
2.模糊查询 用 like 内容中 用% 来查询
比如 某表AAA 里 有 ZZ字段 内容有 (计算机学院),(计算机科学与技术),(计算机软件)。。。。。。
那么如果想把所有 ZZ字段有 '计算机'的 查询出来 :
select zz from AAA where zz like '计算机%'
如果想把所有 ZZ字段有 '算机'的 查询出来 :
select zz from AAA where zz like '%算机%'
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询