MySQL(查询语句,关键字)⼿动创两张表,对两张表进⾏查询
-- 检测数据库
DROP DATABASE IF EXISTS AddressList;
-- 创建数据库
CREATE DATABASE AddressList;
-- 使⽤数据库
USE AddressList;
-- 检测表
DROP TABLE IF EXISTS LinkmanType;
-- 创建表
CREATE TABLE LinkmanType(
TypeId INT PRIMARY KEY AUTO_INCREMENT,
TypeName VARCHAR(20) NOT NULL UNIQUE
firemonkey衣服)ENGINE=INNODB DEFAULT CHARSET=UTF8 AUTO_INCREMENT=101;
-- 检测表
DROP TABLE IF EXISTS LinkmanInfo;
-- 创建表
CREATE TABLE LinkmanInfo(
ID INT PRIMARY KEY AUTO_INCREMENT,
TypeId INT NOT NULL,
Age INT NOT NULL,
L_Name VARCHAR(20) NOT NULL,
Adress VARCHAR(100),
Phone VARCHAR(50),
Email VARCHAR(20),
CONSTRAINT typ_ky FOREIGN KEY(TypeId) REFERENCES LinkmanType(TypeId)
)ENGINE=INNODB DEFAULT CHARSET=UTF8 AUTO_INCREMENT=1;
-- 初始化数据
INSERT INTO LinkmanType VALUES (DEFAULT,'陌⽣⼈');
INSERT INTO LinkmanType VALUES(DEFAULT,'好朋友');
INSERT INTO LinkmanType VALUES(DEFAULT,'⽼师');
INSERT INTO LinkmanType VALUES(DEFAULT,'家⼈');
INSERT INTO LinkmanType VALUES(DEFAULT,'同学');
-
- 初始化数据
INSERT INTO LinkmanInfo VALUES(DEFAULT,101,15,'张三','湖北','11111111111','qq');
INSERT INTO LinkmanInfo VALUES(DEFAULT,102,16,'李四','湖南','22222222222','xinlang');
INSERT INTO LinkmanInfo VALUES(DEFAULT,103,20,'王五','长沙','33333333333','weibo');
INSERT INTO LinkmanInfo VALUES(DEFAULT,103,15,'赵六','北京','44444444444','qq');
INSERT INTO LinkmanInfo VALUES(DEFAULT,101,18,'⽥七','天津','55555555555','weibo');
-- 查讯
SELECT * FROM LinkmanType;
SELECT * FROM LinkmanInfo;
以上⾯的例⼦举例:
1. 设置字段的别名(as)(as可以省略)
-
- 1.设置字段名
SELECT Adress AS 地址 FROM LinkmanInfo;
2. 字段的连接(concat(字段1,字段2))
-- 2. 字段连接
SELECT CONCAT(TypeId,Adress) AS id和地起 FROM LinkmanInfo;
注:mysql 只能⽤concat 进⾏连接,⽽sqlservice 和oracle 还可以⽤+连接
3. ALL关键字(⽤在字段前⾯,不能单独写)
-- 3.all关键字
SELECT ALL TypeId FROM LinkmanInfo;
-- 查讯所有
SELECT * FROM LinkmanType;
注:不加ALL⼀般是省略的,加了all必须后⾯根字段名,显⽰所有也可以⽤*表⽰;
mysql语句多表查询4. limit 关键字
-- 4. limit关键字
SELECT * FROM LinkmanInfo LIMIT 0,4;
注:表⽰查询所有中,从0个开始显⽰前⾯4个,mysql中不能⽤top关键字,sqlservice中⼀般⽤top 4,来取前4个5. distinct 过滤重复记录(⽤在字段前⾯)
-- 5.distinct关键字
SELECT DISTINCT TypeId FROM LinkmanInfo;
注:表⽰,有多个重复类别id时,⽤来查询有哪些类别
6. where关键字(也就是条件查询)
-- 6.where 关键字
SELECT * FROM LinkmanInfo WHERE TypeId>102;
7. (从两者之间)
-- 7. between and
SELECT * FROM LinkmanInfo WHERE TypeId BETWEEN 101 AND 102;
注: 表⽰查询LinkmanInfo表中TypeId是101和102之间的所有的信息
中文代码源网站免费8. in/not in(in 在....⾥⾯,也就是包含的意思;not in 没有在...⾥⾯,不包含的意思)
-- 8.in /not in
SELECT * FROM LinkmanInfo WHERE TypeId IN(101,103);
pickled翻译SELECT * FROM LinkmanInfo WHERE TypeId NOT IN(101,103);
9. 逻辑运算(and or not)
-- 9.逻辑运算符
SELECT * FROM LinkmanInfo WHERE TypeId=101 AND TypeId=102;
SELECT * FROM LinkmanInfo WHERE TypeId=101 OR TypeId=102;
10. Like 关键字(模糊查询)(⽤得⽐较多)
-- 10. 关键字Like
SELECT * FROM LinkmanInfo WHERE Adress LIKE '湖%';
osi标准是由什么定制的SELECT * FROM LinkmanInfo WHERE Adress LIKE '_京';
注: ⼀个"_"代表⼀个字,"%"表⽰0个或多个字,⼀般的话查询⾥⾯包含这个字的话,前后都要加%;
11. order by 排序(desc 降序, asc 升序)
-- 11. 排序 order by desc/asc
SELECT * FROM LinkmanInfo ORDER BY TypeId DESC;
注: 对于字符串的数字也是可以排序的,须确保位数⼀样,从左到右⼀位⼀位进⾏相⽐的;
12. 查询结果计算(sum,avg,max,min)
-
- 12.查询结果计算
SELECT AVG(age) AS 平均年龄,MAX(age) AS 最⼤年龄,MIN(age) AS 最⼩年龄,SUM(age) AS 年龄之和 FROM LinkmanInfo;
13. 统计⾏数(count(*))(⽤得⽐较多)
-- 13.统计个数
SELECT COUNT(*) AS 总⼈数 FROM LinkmanInfo;
14. 连接查询之内部连接查询()
-- 14.内部连接查询
-- 第⼀种
SELECT * FROM LinkmanType INNER JOIN LinkmanInfo ON LinkmanType.TypeId=LinkmanInfo.TypeId;
-- 第⼆种
SELECT * FROM LinkmanType t INNER JOIN LinkmanInfo i ON t.TypeId=i.TypeId;
-- 第三种
SELECT *FROM LinkmanType,LinkmanInfo WHERE LinkmanType.TypeId=LinkmanInfo.TypeId;
15. 连接查询之外部连接查询( / )
-- 15.外部连接查询
-- 以左边为主表
SELECT * FROM LinkmanType t LEFT JOIN LinkmanInfo i ON t.TypeId=i.TypeId;
-- 以右边为主表
SELECT * FROM LinkmanType t RIGHT JOIN LinkmanInfo i ON t.TypeId=i.TypeId;
16. 分组并统计(group by)
-- 16.分组(group by)
SELECT typeid ,COUNT(*) 该总类⼈数 FROM LinkmanInfo
GROUP BY typeid;
>java软件测试面试题
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论