SQL结构化查询语言(二)
根据上一章节SQL结构化查询语言(一),创建数据库和数据表后,可以增加自己想要的数据:
https://www.jianshu.com/p/7aa34c91efa7
insert into my_contacts(last_name,first_name,email,gender,birthday,profession,location_1,status_1,interests,seeking) --1,insert into 往数据表中拆入数据
values('Bnderson','Jillian','jill_anderson@breakneckpizza.com','F','1980-09-05','Technical Writer','Palo Alto,CA','Singel','Kayaking,Reeptiles','Relationship,Friends1');
insert into my_contacts(last_name,first_name,email,gender,birthday,profession,location_1,status_1,interests,seeking) --1,insert into 往数据表中拆入数据
values('Cnderson','Jillian','jill_anderson@breakneckpizza.com','F','1980-09-05','Technical Writer','Palo Alto,CA','Singel','Kayaking,Reeptiles','Relationship,Friends2');
insert into my_contacts(last_name,first_name,email,gender,birthday,profession,location_1,status_1,interests,seeking) --1,insert into 往数据表中拆入数据
values('Dnderson','Jillian','jill_anderson@breakneckpizza.com','F','1980-09-05','Technical Writer','Palo Alto,CA','Singel','Kayaking,Reeptiles','Relationship,Friends3');
insert into my_contacts(last_name,first_name,email,gender,birthday,profession,location_1,status_1,interests,seeking) --1,insert into 往数据表中拆入数据
values('Enderson','Jillian','jill_anderson@breakneckpizza.com','F','1980-09-05','Technical Writer','Palo Alto,CA','Singel','Kayaking,Reeptiles','Relationship,Friends4');
insert into my_contacts(last_name,first_name,email,gender,birthday,profession,location_1,status_1,interests,seeking) --1,insert into 往数据表中拆入数据
values('Ender''s son','Jillian','jill_anderson@breakneckpizza.com','F','1980-09-05','Technical Writer','Palo Alto,CA','Singel','Kayaking,Reeptiles','Relationship,Friends4');
插入数据.pngselect * from my_contacts; -- 查看表中的详细内容
select * from my_contacts where last_name >= 'a%' and last_name < 'c%'
- SELECT语句中可以使用WHERE进行条件选择,在WHERE语句后面可以加上大于,等于,小于等限定条件。
select * from my_contacts where last_name >= 'a%' and last_name < 'c%'
- SELECT选选项中可以选择需要出现的列,这样做的好处可以是加快查询速度,让SQL帮我们承担过滤数据的重担。
select last_name,first_name from my_contacts where last_name = 'Ender''s son';
- 在变量名称中如果出现单引号(如,student's flowers),在进行匹对和筛查时可以使用转义(',\),如student''s flowers,或student\'s flowers。
- 想要选择所有的列,可以在SELECT中使用(*)。
筛选条件的关键字可以是:AND, OR, LIKE, NOT, BETWEEN, IN,IS NULL。
模糊匹配可以选择LIKE,例如:
select last_name,first_name from my_contacts where last_name LIKE '%son';
(在单引号中放入百分比符号(%),就是告诉软件,我们要在locaton列中查找所有以“son”结尾的值)
所以说,百分比(%)符号是任意数量的未知字符的替身。
第一个通配符是%,第二个通配符是下划线( _ ),它是一个未知字符的替身。
select * from my_contacts where gender is null
如果数据表中有NULL也是可以像上面这句一样,可以筛选出来。
当然,在条件筛查时,如果使用了where count >=30 AND count <=60,那么使用BETWEEN更好。BETWEEN不仅使查询的长度比较短,而且能返回一样的结果,可以改写为:WHERE count BETWEEN 30 AND 60;
另外,我们在WHERE 语句中查找OR条件时(where last_name = 'Dnderson' or last_name = 'Enderson' OR ... )除了使用这么多的OR,我们也可以简单地利用关键字IN,加上括号围起来的值的集合。只要列值匹配集合中的任何值,即可返回该行或该列。
WHERE last_name IN ('Bnderson','Cnderson','Dnderson','Enderson');
select last_name from my_contacts where not (last_name = 'Dnderson' or last_name = 'Enderson')
也可以取相反的逻辑,NOT IN,可以反转查询结果,找出值不在集合中的记录。
总结
1.SELECT * 用于选择表中的所有列,用(‘)与(\)转义,字符串中的单引号前应加上另一个单引号或反斜线来把它转换成直接量。
2.掌握 = <> < > <= >=运算符,IS NULL可以用来NULL值条件。
3.AND与OR可以在WHERE子句中结合查询条件,让查询更精确,NOT可以反转查询结果,取得相反的值。
4.BETWEEN选择一个范围内的值,LIKE搭配(%)或(_)通配符搜索部分文本字符串。