SQL常用增删改查语句大全
SQL常用的增删改查语句有哪些?为方便同学们复习SQL语句,我为大家分享SQL增删改查语句如下:
1增
11插入单行
insert [into] <表名> (列名) values (列值)
例:insert into Strdents (姓名,性别,出生日期) values ('开心朋朋','男','1980/6/15')
12将现有表数据添加到一个已有表
insert into <已有的新表> (列名) select <原表列名> from <原表名>
例:insert into tongxunlu ('姓名','地址','电子邮件')
select name,address,email
from Strdents
13直接拿现有表数据创建一个新表并填充
select <新建表列名> into <新建表名> from <源表名>
例:select name,address,email into tongxunlu from strdents
14使用union关键字合并数据进行插入多行
insert <表名> <列名> select <列值> tnion select <列值>
例:insert Students (姓名,性别,出生日期)
select '开心朋朋','男','1980/6/15' union(union表示下一行)
select '蓝色小明','男','19//'
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2删
21删除<满足条件的>行
delete from <表名> [where <删除条件>]
例:delete from a where name='开心朋朋'(删除表a中列值为开心朋朋的行)
22删除整个表
truncate table <表名>
truncate table tongxunlu
注意:删除表的所有行,但表的结构、列、约束、索引等不会被删除;不能用语有外建约束引用的表
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
3改
update <表名> set <列名=更新值> [where <更新条件>]
例:update tongxunlu set 年龄=18 where 姓名='蓝色小名'
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
4查
41``精确(条件)查询
select <列名> from <表名> [where <查询条件表达试>] [order by <排序的列名>[asc或desc]]
411查询所有数据行和列
例:select from a
说明:查询a表中所有行和列
412查询部分行列--条件查询
例:select i,j,k from a where f=5
说明:查询表a中f=5的所有行,并显示i,j,k3列
413在查询中使用AS更改列名
例:select name as 姓名 from a where xingbie='男'
说明:查询a表中性别为男的所有行,显示name列,并将name列改名为(姓名)显示
414查询空行
例:select name from a where email is null
说明:查询表a中email为空的所有行,并显示name列;SQL语句中用is null或者is not null来判断是否为空行
415在查询中使用常量
例:select name, '唐山' as 地址 from Student
说明:查询表a,显示name列,并添加地址列,其列值都为'唐山'
416查询返回限制行数(关键字:top percent)
例1:select top 6 name from a
说明:查询表a,显示列name的前6行,top为关键字
例2:select top 60 percent name from a
说明:查询表a,显示列name的60%,percent为关键字
417查询排序(关键字:order by , asc , desc)
例:select name
from a
where chengji>=60
order by desc
说明:查询a表中chengji大于等于60的所有行,并按降序显示name列;默认为ASC升序
42``模糊查询
421使用like进行模糊查询
注意:like运算副只用于字符串,所以仅与char和varchar数据类型联合使用
例:select from a where name like '赵%'
说明:查询显示表a中,name字段第一个字为赵的记录
422使用between在某个范围内进行查询
例:select from a where nianling between 18 and 20
说明:查询显示表a中nianling在18到20之间的记录
423使用in在列举值内进行查询
例:select name from a where address in ('北京','上海','唐山')
说明:查询表a中address值为北京或者上海或者唐山的记录,显示name字段
43``分组查询
431使用group by进行分组查询
例:select studentID as 学员编号,AVG(score) as 平均成绩 (注释:这里的score是列名)
from score (注释:这里的score是表名)
group by studentID
说明:在表score中查询,按strdentID字段分组,显示strdentID字段和score字段的平均值;select语句中只允许被分组的'列和为每个分组返回的一个值的表达式,例如用一个列名作为参数的聚合函数
432使用having子句进行分组筛选
例:select studentID as 学员编号,AVG(score) as 平均成绩 (注释:这里的score是列名)
from score (注释:这里的score是表名)
group by studentID
having count(score)>1
说明:接上面例子,显示分组后count(score)>1的行,由于where只能在没有分组时使用,分组后只能使用having来限制条件。
44``多表联接查询
441内联接
4411在where子句中指定联接条件
例:select aname,bchengji
from a,b
where aname=bname
说明:查询表a和表b中name字段相等的记录,并显示表a中的name字段和表b中的chengji字段
4412在from子句中使用join…on
例:select aname,bchengji
from a inner join b
on (aname=bname)
说明:同上
442外联接
4421左外联接查询
例:select sname,ccourseID,cscore
from strdents as s
left outer join score as c
on sscode=cstrdentID
说明:在strdents表和score表中查询满足on条件的行,条件为score表的strdentID与strdents表中的sconde相同
4422右外联接查询
例:select sname,ccourseID,cscore
from strdents as s
right outer join score as c
on sscode=cstrdentID
说明:在strdents表和score表中查询满足on条件的行,条件为strdents表中的sconde与score表的strdentID相同
;以下是总结的mysql的常用语句,欢迎指正和补充~
一、创建库,删除库,使用库
1创建数据库:create database 库名;
2删除数据库:drop database 库名;
3使用数据库:use 库名;
二、创建数据表
1创建表语句:create table 表名(字段名1 字段类型 字段约束,字段2 字段类型 字段约束);
2创建与现有表一样字段的新表:create table 表名 like 已有表名;
3将查询结果创建新表:create table 表名 select from 现有表 where(查询语句);
三、查看表结构,查看建表语句,删除表
1查看表结构:desc 表名;
2查看建表语句:show create table 表名;
3删除表:drop table 表名;
四、修改表结构
1对数据表重命名:alter table 表名 rename 新表名;
2增加字段:alter table 表名 add 字段名 字段类型 字段约束; (PS:可用first/after函数调整字段位置)
3删除字段:alter table 表名 drop 字段名;
4修改字段类型及约束:alter table 表名 modify 字段名 新类型 新约束;(PS:如不加新约束,会将建表时的约束清空,主键、外键、唯一约束除外)
5修改字段名称:alter table 表名 change 字段名 新字段名 新字段类型 新约束条件;
6修改数据库引擎:alter table 表名 engine=;(PS:主要有InnoDB和MyISAM,InnoDB对经常修改表数据友好,MyISAM对经常查询表友好)
7增加主键:alter table 表名 add primary key(字段名);
8删除主键:alter table 表名 drop primary key;
9增加外键:alter table 表名 add constraint 外键名 foreign kek(字段名) references 主表(主键);
10删除外键:alter table 表名 drop foreign key 外键名;
11删除唯一约束:alter table 表名 drop index 字段名;
12设置自动增长的初始位置:alter table 表名 auto_increment=n;
五、向表中插入数据
1向表指定字段插入多条数据:insert into 表名(字段1,字段2) values(数据1,数据2),(数据1,数据2),(数据1,数据2),(数据1,数据2);
2将查询结果插入表:insert into 表名 select 字段名 from 表名(查询语句);
3加载外部数据到表:Load data local infile ‘数据路径’Into table 表名 Fields terminated by ‘分隔符’Ignored 1 lines;
六、更新表数据、删除表数据
1更改满足条件的字段数据:update 表名 set 字段计算1,字段计算2 where 条件;
2删除满足条件的数据:delele from 表名 where 条件;
3删除所有数据:方式一:delete from 表名; 方式二:truncate table 表名; 方式一会逐条进行删除,速度较慢,方式二直接删除,速度快;另外对自增字段,方式一不能重置自增字段的初始位置,方式二可以重置自增字段的其实位置;
SQL SELECT DISTINCT 语句:在表中,可能会包含重复值。这并不成问题,不过,有时您也许希望仅仅列出不同(distinct)的值。
关键词 DISTINCT 用于返回唯一不同的值。
INSERT INTO 语句:INSERT INTO 语句用于向表格中插入新的行。
Update 语句:Update 语句用于修改表中的数据。
DELETE 语句:DELETE 语句用于删除表中的行。
数据库中增删改查基本语句:INSERT INTO,表名字段列表。
数据库是存放数据的仓库。它的存储空间很大,可以存放百万条、千万条、上亿条数据。但是数据库并不是随意地将数据进行存放,是有一定的规则的,否则查询的效率会很低。
当今世界是一个充满着数据的互联网世界,充斥着大量的数据。即这个互联网世界就是数据世界。数据的来源有很多,比如出行记录、消费记录、浏览的网页、发送的消息等等。除了文本类型的数据,图像、音乐、声音都是数据。
在数据库的发展历史上,数据库先后经历了层次数据库、网状数据库和关系数据库等各个阶段的发展,数据库技术在各个方面的快速的发展。特别是关系型数据库已经成为目前数据库产品中最重要的一员。
80年代以来,几乎所有的数据库厂商新出的数据库产品都支持关系型数据库,即使一些非关系数据库产品也几乎都有支持关系数据库的接口。
这主要是传统的关系型数据库可以比较好的解决管理和存储关系型数据的问题。随着云计算的发展和大数据时代的到来,关系型数据库越来越无法满足需要,这主要是由于越来越多的半关系型和非关系型数据需要用数据库进行存储管理。
字段说明:
用户的id 假设是 uid
要修改的内容是 content
sql语句:
update 表名 set content='修改后的内容' where uid='你传过来的用户id';
但这样的话,表的设计肯定是有问题的。
一般一个用户可以对应多个内容,所以这样的话就会修改该用户的多个内容,应该还需要一个内容的唯一 id,一般会有一个 id 字段,主键自增。
这样修改的时候的 where 条件应该至少有两个:id 和 uid
id 是为了保证只修改到一条内容,且是指定的内容;
uid 是为了保证该内容是同一个创作的(当然前端直接传 uid 是不安全的,应该通过 session 和 token 后端再转成用户的 uid)
以上就是关于SQL常用增删改查语句全部的内容,包括:SQL常用增删改查语句、数据库增删改查的基本命令、sql数据库--存储过程增删改查四个语句等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)