这次只讲单表查询,我们大部分在使用数据库都是在查询数据,通过各种条件进行查询,今天就讲下单表查询的语句
1):查询所有列,在表中列是纵向的 横向的是一条数据:
如图:
行就是java中的一个bean对象,查询所有列就是把id,myname,age中所有的值都查询出来,查询的语句为select from
select * from teacher(*就表示所有列,)结果就是上面的
2):只查询表中的某个列,比如我只想查询myname和age这二个列 二个字段名之间用英文" , "分开
SELECT myname,age FROM teacher;
3):查询时指定别名,比如我把id 别名为编号,myname,这个字段别名为姓名,age字段别名为年龄,这样更符合中国人的习惯,
SELECT id AS '编号',myname AS '姓名',age AS '年龄' FROM teacher; 如图:
现在看到上面字段的名称都变了,如果要给表起个别名的话是不能使用字符的,要使用一个英文字母或者组合
比如:
SELECT id AS '编号',myname AS '姓名',age AS '年龄' FROM teacher AS tt; 表的别名一般出现在多表查询中使用比较多,
4):查询时向表中添加一列 比如查询时添加一个province表示省份,发现添加时一定要使用‘’单引号 不然就会报错,而且它的值和他的列名一样,属于默认添加的
SELECT id ,myname,age,'province' FROM teacher;
5):查询时合并列
先向表中添加一个java和android表示该表示每个星期的教学时长,现在查看一下这个老师的一个星期java和android教学总和
SELECT id,myname, (java+android) AS '一个星期多长时间' FROM teacher;
如图:
假如没有对这个起别名的话,它的字段名为(java+android) 所以我们要起个别名方便查询
注意:合并列只能合并数值类型的字段 不能是一个int类型和一个字符类型合并,这肯定是不行的
6):查询某个列时除去重复的数据
SELECT DISTINCT java FROM teacher;
另一种写法是使用distinct()函数
SELECT DISTINCT(java) FROM teacher;
7):条件查询 条件查询的关键字为where
a:逻辑查询 带二个以上条件查询 并且二个条件 为 "且"的 ,比如查询id为1并且myname为张三 中间二个字段用and关键字联系起来,
SELECT * FROM teacher WHERE id=1 AND myname='张三';
b:逻辑查询 or 表示二者之间有一个条件成功就行 比如查询一个id为1 或者myname='张三';
SELECT * FROM teacher WHERE id=1 OR myname='张三';
b:比较条件一共有
>(大于)<(小于)>=(大于等于) <=(小于等于) =(等于) <>(不等于 ) between and (等价于>= 且 <=)
SELECT * FROM teacher WHERE id>1;
SELECT * FROM teacher WHERE id<2;
SELECT * FROM teacher WHERE id>=1;
SELECT * FROM teacher WHERE id<=2;
SELECT * FROM teacher WHERE id=2;
SELECT * FROM teacher WHERE id<>2;
SELECT * FROM teacher WHERE id BETWEEN 1 AND 2;
c: 判空条件(null 和空字符串二种情况): is null / is not null / ='' / <>''
SELECT * FROM teacher WHERE myname ='';
d:模糊查询 关键字为like 使用like一般联合这二个一起使用
% : 表示任意个字符
_ : 表示一个字符
SELECT * FROM teacher WHERE myname LIKE '李%'; 查询姓李 什么的学生 比如 l李四 李雷雷 都行SELECT * FROM teacher WHERE myname LIKE '李_'; 这是查询姓李 但是后面只带一个字的 这个时候李雷雷就不是了