SQL常⽤增删改查语句--例
⽬录
⼀、创建⼀张person表:
create table person(
id int primary key,
sql查询语句实例大全name varchar(16) not null,
age int,
phone varchar(11),
address varchar(256)
);
⼆、SQL-----增
2.1、插⼊⼀条数据
insert into person(id,name,age,phone,address)
values (1,'yang',22,'123232323','中国陕西');
2.2、查询表结构
desc person;
2.3、查询person表
select * from person;
2.4、插⼊⼀条数据
insert into person(id,name)
values (2,'zhang');
2.5、再次查询person表
select * from table person;
注:
关系型数据库中,所有未赋值的字段都默认为 NULL,当然这个默认值是可以修改的,可以修改为空字符串或空格等等。
再说⼀个细节,当想要插⼊⼀条数据时,并且希望为该表的每⼀个字段都赋值,那么可以不⽤在表名后列举所有字段名,例如以下两条insert 语句是等效的。
insert into person(id,name,age,phone,address)
values (1,'yang',22,'123232323','中国上海');
insert into person
values (1,'yang',22,'123232323','中国上海');
三、SQL-----删
删除 id 为 1 的那条数据记录,不追加 where ⼦句做条件筛选会导致整张表的数据丢失
delete from person where id = 1;
四、SQL-----改
4.1、先向person表中插⼊⼀条数据
insert into person
values(1,'yang',22,'12312323','中国陕西');
4.2、没有结合where⼦句修改address数据后:
update person set address='陕西西安';
4.3、结合where⼦句(做⼀个数据筛选)修改address数据后,只修改符合条件的记录的 address 字段值。 update person set address='陕西咸阳' where id =1;
五、SQL-----查
5.1、如果需要查询⼀条记录中的所有的字段,可以⽤符号「*」替代全体,例如:
查询出 person 表所有的记录
select * from person;
5.2、where ⼦句
where ⼦句⼜被称为条件⼦句,⽤于筛选查询出来的数据集,指定的条件语句中可以使⽤基本的算术
、关系和逻辑运算,例如:>, <,=,!=,&&,||
使⽤前往person表⾥加⼊两条数据
insert into person
values(3,'zhu',20,'13445223','中国北京');
insert into person
values(4,'huang',26,'4355221','湖北武汉');
查询出,名字叫[zhu],年龄为[20]的记录
select * from person
where name='zhu' && age=20;
5.3、like⼦句
like⼦句,⼀般⽤来做⼀些简单的搜索查询,或者说模糊匹配,表达式主要涉及到两个符号:
百分号 %:匹配任意多个字符
下划线 _:匹配固定⼀个字符
查询所有的数据,到其中 name 字段以字符[ang]结尾的数据记录集合:
select * from person
where name like '%ang';
查询所有的数据,到其中 name 字段以字符「ang」结尾,并且前⾯还有⼀个任意字符的数据记录集合:
select * from person
where name like '_ang';
5.4、in⼦句
in 关键字也是使⽤在 where ⼦句的条件表达式中,它限制的是⼀个集合,只要字段的值在集合中即符合条件,例如:这个 SQL 语句可以查询出来所有年龄是 22,30,23 的⼈数据记录。
select * from person
where age in (22,30,23);
也可以使⽤ not in 反向限制,例如:这个 SQL 则可以查出所有年龄不是这三个值的数据记录信息。
select * from person
where age not in (22,30,23);
5.5、order by⼦句
ORDER BY ⼦句根据⼀列或者多列的值,按照升序或者降序排列数据。某些数据库就默认以升序排列查询结果。
ASC 表⽰数据结果集按升序排序,DESC 表⽰数据结果集按降序排序。
我们将 person 表中的数据参照 id 列,倒序排序:
select * from person
order by id desc;
5.6、group by⼦句
GROUP BY ⼦句⽤于将查询返回的结果集进⾏⼀个分组,并展⽰各个分组中排在第⼀个的记录,将分组中其余成员隐藏。
为 person 表添加⼏条数据,⽤于演⽰
insert into person
values(5,'zhang',21,'234324','浙江杭州');
insert into person
values(6,'huang',25,'3254364','江苏南京');
按照姓名对结果集进⾏分组,SQL 如下:
select * from person
group by name;
分组之后,只展⽰每个分组下排序第⼀的记录,其余成员隐藏。
当然,我们是可以执⾏排序⽅式的,使⽤ order by ⼦句:
select * from person
group by name
order by id;
计算每个分组下的平均年龄:
select avg(age) as '平均年龄' from person
group by name;
5.7、having⼦句
select avg(age) as vage from person
group by name
having vage>23;
分组之后,我们得到每个分组中数据的平均年龄,再者我们通过 having 语句筛选出平均年龄⼤于 23 的数据记录。
注:
⾸先是 from 语句,查出表的所有数据,接着是 select 取指定字段的数据列,然后是 where 进⾏条件筛选,得到⼀个结果集。接着 group by 分组该结果集并得到分组后的数据集,having 再⼀次条件筛选,最后才轮到 order by 排序。
参考⽂章
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论