mysql 输出参数 sql语句_MySQL: 详细的sql语句

1添

1.1【插入单行】

insert [into] (列名) values (列值)

例:insert into Strdents (姓名,性别,出生日期) values ('开心朋朋','男','1980/6/15')

1.2【将现有表数据添加到一个已有表】

insert into (列名) select from

例:insert into tongxunlu ('姓名','地址','电子邮件')

select name,address,email

from Strdents

1.3【直接拿现有表数据创建一个新表并填充】

select into from

例:select name,address,email into tongxunlu from strdents

1.4【使用union关键字合并数据进行插入多行】

insert select tnion select

例:insert Students (姓名,性别,出生日期)

select '开心朋朋','男','1980/6/15' union(union表示下一行)

select '蓝色小明','男','19**/**/**'

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

2删

2.1【删除行】

delete from [where ]

例:delete from a where name='开心朋朋'(删除表a中列值为开心朋朋的行)

2.2【删除整个表】

truncate table

truncate table tongxunlu

注意:删除表的所有行,但表的结构、列、约束、索引等不会被删除;不能用语有外建约束引用的表

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

3改

update set [where ]

例:update tongxunlu set 年龄=18 where 姓名='蓝色小名'

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

4.查

4.1`精确(条件)查询

select from [where ] [order by [asc或desc]]

4.1.1【查询所有数据行和列】

例:select * from a

说明:查询a表中所有行和列

4.1.2【查询部分行列--条件查询】

例:select i,j,k from a where f=5

说明:查询表a中f=5的所有行,并显示i,j,k3列

4.1.3【在查询中使用AS更改列名】

例:select name as 姓名 from a where xingbie='男'

说明:查询a表中性别为男的所有行,显示name列,并将name列改名为(姓名)显示

4.1.4【查询空行】

例:select name from a where email is null

说明:查询表a中email为空的所有行,并显示name列;SQL语句中用is null或者is not null来判断是否为空行

4.1.5【在查询中使用常量】

例:select name, '唐山' as 地址 from Student

说明:查询表a,显示name列,并添加地址列,其列值都为'唐山'

4.1.6【查询返回限制行数(关键字: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为关键字

4.1.7【查询排序(关键字:order by , asc , desc)】

例:select name

from a where chengji >= 60 order by desc

说明:查询a表中chengji大于等于60的所有行,并按降序显示name列;默认为ASC升序

4.2 ''模糊查询

4.2.1【使用like进行模糊查询】

注意:like运算副只用于字符串,所以仅与char和varchar数据类型联合使用

例:select * from a where name like '赵%'

说明:查询显示表a中,name字段第一个字为赵的记录

4.2.2【使用between在某个范围内进行查询】

例:select * from a where nianling between 18 and 20

说明:查询显示表a中nianling在18到20之间的记录

4.2.3【使用in在列举值内进行查询】

例:select name from a where address in ('北京','上海','唐山')

说明:查询表a中address值为北京或者上海或者唐山的记录,显示name字段

4.3.分组查询

4.3.1【使用group by进行分组from score (注释:这里的score是表名)

group by studentID

说明:在表score中查询,按strdentID字段分组,显示strdentID字段和score字段的平均值;select语句中只允许被分组的列和为每个分组返回的一个值的表达式,例如用一个列名作为参数的聚合

4.3.2【使用having子句进行分组筛选】

例:select studentID as 学员编号,AVG(score) as 平均成绩 (注释:这里的score是列名)

from score (注释:这里的score是表名)

group by studentID

having count(score)>1

说明:接上面例子,显示分组后count(score)>1的行,由于where只能在没有分组时使用,分组后只能使用having来限制条件。

4.4.多表联接查询

4.4.1内联接

4.4.1.1【在where子句中指定联接条件】

例:select a.name,b.chengji

from a,b where a.name=b.name

说明:查询表a和表b中name字段相等的记录,并显示表a中的name字段和表b中的chengji字段

4.4.1.2【在from子句中使用join…on】

例:select a.name,b.chengji

from a inner join b on (a.name=b.name)

说明:同上

4.4.2外联接

4.4.2.1【左外联接查询】

例:select s.name,c.courseID,c.score

from strdents as s

left outer join score as c

on s.scode=c.strdentID

说明:在strdents表和score表中查询满足on条件的行,条件为score表的strdentID与strdents表中的sconde相同

4.4.2.2【右外联接查询】

例:select s.name,c.courseID,c.score

from strdents as s

right outer join score as c

on s.scode=c.strdentID

说明:在strdents表和score表中查询满足on条件的行,条件为strdents表中的sconde与score表的strdentID相同

5、常用的SQL语句总结如下:

SQL语法

1、查询数据

基本查询:SELECT * FROM

SELECT * FROM students; #查询students表的所有数据

SELECT * FROM classes; #查询classes表的所有数据

SELECT 100+200; #计算100+200

条件查询:SELECT * FROM WHERE

SELECT * FROM students WHERE score >= 80; #按条件查询students

SELECT * FROM students WHERE score >= 80 AND gender = 'M'; #按AND条件查询students:

SELECT * FROM students WHERE score >= 80 OR gender = 'M'; #按OR条件查询students:

SELECT * FROM students WHERE NOT class_id = 2; #按NOT条件查询students:

SELECT * FROM students WHERE (score < 80 OR score > 90) AND gender = 'M'; #按多个条件查询students:

投影查询:SELECT 列1, 列2, 列3 FROM

SELECT id, score, name FROM students; #使用投影查询

SELECT id, score points, name FROM students; #使用投影查询,并将列名重命名:

SELECT id, score points, name FROM students WHERE gender = 'M'; #使用投影查询+WHERE条件:

排序:SELECT * FROM ORDER BY

SELECT id, name, gender, score FROM students ORDER BY score; #按score从低到高

SELECT id, name, gender, score FROM students ORDER BY score DESC; #按score从高到低

SELECT id, name, gender, score FROM students ORDER BY score DESC, gender; #按score, gender排序:

SELECT id, name, gender, score FROM students WHERE class_id = 1 ORDER BY score DESC; #带WHERE条件的ORDER BY:

分页查询:SELECT * FROM LIMIT OFFSET LIMIT总是设定为pageSize、OFFSET计算公式为pageSize * (pageIndex - 1)。

SELECT id, name, gender, score FROM students ORDER BY score DESC LIMIT 3 OFFSET 0; # 查询第1页,每页3条记录

SELECT id, name, gender, score FROM students ORDER BY score DESC LIMIT 3 OFFSET 3; #查询第2页,每页3条记录

SELECT id, name, gender, score FROM students ORDER BY score DESC LIMIT 3 OFFSET 6; #查询第3页,每页3条记录

SELECT id, name, gender, score FROM students ORDER BY score DESC LIMIT 3 OFFSET 20; #OFFSET设定为20

聚合查询:SELECT FUCTIONNAME(*) FROM FUCTIONNAME: COUNT、SUM、AVG、MAX、MIN等

SELECT COUNT(*) FROM students; #使用聚合查询,COUNT(*)表示查询所有列的行数

SELECT COUNT(*) num FROM students; #使用聚合查询并设置结果集的列名为num:

SELECT COUNT(*) boys FROM students WHERE gender = 'M'; #使用聚合查询并设置WHERE条件:

SELECT AVG(score) average FROM students WHERE gender = 'M'; #使用聚合查询计算男生平均成绩:

SELECT COUNT(*) num FROM students GROUP BY class_id; #按class_id分组:

SELECT class_id, COUNT(*) num FROM students GROUP BY class_id; #按class_id分组:

多表查询:SELECT * FROM ,

SELECT * FROM students, classes; #FROM students, classes: #FROM students, classes:

SELECT students.id sid,students.name, students.gender,classes.id cid,classes.name cname FROM students, classes; # set alias:

SELECT s.id sid,s.name,s.gender,c.id cid,c.name cname FROM students s, classes c; #set table alias:

SELECT s.id sid,s.name,s.gender,c.id cid,c.name cname FROM students s, classes c WHERE s.gender = 'M' AND c.id = 1; #set where clause:

连接查询:SELECT ... FROM INNER JOIN ON ;

SELECT s.id, s.name, s.class_id, s.gender, s.score FROM students s; #选出所有学生

SELECT s.id, s.name, s.class_id, c.name class_name, s.score FROM students s INNER JOIN classes c ON s.class_id = c.id; #选出所有学生,同时返回班级名称

2、修改数据

INSERT插入:INSERT INTO (字段1, 字段2, ...) VALUES (值1, 值2, ...);

INSERT INTO students (class_id, name, gender, score) VALUES (2, '大牛', 'M', 80); #添加一条新记录

INSERT INTO students (class_id, name, gender, score) VALUES (1, '大宝', 'M', 87), (2, '二宝', 'M', 81); #一次性添加多条新记录

插入或替换:如果记录已经存在,就先删除原记录,再插入新记录

REPLACE INTO students (id, class_id, name, gender, score) VALUES (1, 1, '小明', 'F', 99);

插入或更新:如果记录已经存在,就更新该记录,

INSERT INTO students (id, class_id, name, gender, score) VALUES (1, 1, '小明', 'F', 99) ON DUPLICATE KEY UPDATE name='小明', gender='F', score=99;

插入或忽略:若id=1的记录不存在,INSERT语句将插入新记录,否则,当前id=1的记录将被更新

INSERT IGNORE INTO students (id, class_id, name, gender, score) VALUES (1, 1, '小明', 'F', 99);

UPDATE更新:UPDATE SET 字段1=值1, 字段2=值2, ... WHERE ...;

UPDATE students SET name='大牛', score=66 WHERE id=1; #更新id=1的记录

UPDATE students SET name='小牛', score=77 WHERE id>=5 AND id<=7; #更新id=5,6,7的记录

UPDATE students SET score=score+10 WHERE score<80; #更新score<80的记录

UPDATE students SET score=100 WHERE id=999; #更新id=999的记录

DELETE删除:DELETE FROM WHERE ...;

DELETE FROM students WHERE id=1; #删除id=1的记录

DELETE FROM students WHERE id>=5 AND id<=7; #删除id=5,6,7的记录

DELETE FROM students WHERE id=999; #删除id=999的记录

总结:

创建

CREATE TABLE IF NOT EXSITE( 字段1 数据类型, 字段2 数据类型, 字段3 数据类型, ....)

CREAT TABLE if not exists 〈表名〉(id integerPrimary Key Autoincrement, sId integer, sName text, sAge integer)

查询

SELECT * FROM WHERE

插入

INSERT INTO (字段1, 字段2, ...) VALUES (值1, 值2, ...);

替换

REPLACE INTO (字段1, 字段2, ...) VALUES (值1, 值2, ...);

更新

UPDATE SET 字段1=值1, 字段2=值2, ... WHERE ...;

删除

DELETE FROM WHERE ...;

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/541949.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

执行git push出现Everything up-to-date

在github上git clone一个项目&#xff0c;在里面创建一个目录&#xff0c;然后git push的时候&#xff0c;出现报错"Everything up-to-date" 原因&#xff1a;1&#xff09;没有git add .2&#xff09;没有git commit -m "提交信息"如果上面两个步骤都成功…

Java File类boolean delete()方法(带示例)

文件类布尔型delete() (File Class boolean delete()) This method is available in package java.io.File.delete(). 软件包java.io.File.delete()中提供了此方法。 This method is used to delete file or directory by using delete() method and this method is accessible…

Unity3D Adam Demo的学习与研究

1.简述 这篇文章是对Adam各种相关资料了解后进行一些精简的内容。如果你想仔细研究某个技术请跳转至unity相关页面。 Adam官方页面: https://unity3d.com/cn/pages/adam 搬运视频以及资源包网盘下载: http://pan.baidu.com/s/1jH6NF86 Adam这个demo由8个人的团队耗时6个月(part…

Java File类boolean isFile()方法(带示例)

File类boolean isFile() (File Class boolean isFile()) This method is available in package java.io.File.isFile(). 软件包java.io.File.isFile()中提供了此方法。 This method is used to check whether the file is specified by filepath is a file or not. 此方法用于检…

要加油!

现实中我容易佩服一个人。 一个顽强的女人&#xff0c;一个艰苦奋斗的男人..... 但是在网络的世界里&#xff0c;我没有佩服过几个&#xff0c;但是不得不说的就是冰河。同样的年龄人家做的事情和我们做的事情差距是多么的大&#xff0c;真的想想心里都是天壤之别。 比一比才知…

Java DataOutputStream writeInt()方法及示例

DataOutputStream类writeInt()方法 (DataOutputStream Class writeInt() method) writeInt() method is available in java.io package. writeInt()方法在java.io包中可用。 writeInt() method is used to write the given integer value to the basic DataOutputStream as 4 b…

python安卓自动化实现方法_uiautomator +python 实现安卓UI自动化

简单实例注&#xff1a;安卓6.0以上的手机不会自动安装app-uiautomator.apk和app-uiautomator-test.apk&#xff0c;需要手动安装&#xff0c;否则报错ioerror RPC server not starteduiautomator pythonHTMLTestRunner 安卓UI自动化实现#coding:utf-8from uiautomator importD…

ES6特性之:Spread操作符

Spread操作符(...)&#xff0c;也称作展开操作符&#xff0c;作用是将可迭代的(Iterable)对象进行展开。 比如有2个数组&#xff0c;我们要将其中一个数组中所有元素插入到另一个数组中&#xff0c;通过Spread操作符&#xff0c;就可以这样进行&#xff1a; var fruits ["…

Java类class isMemberClass()方法及示例

类的类isMemberClass()方法 (Class class isMemberClass() method) isMemberClass() method is available in java.lang package. isMemberClass()方法在java.lang包中可用。 isMemberClass() method is used to check whether the underlying class is a member class or not.…

velocity自定义函数_velocity基本语法和总结

一&#xff1a;基本语法&#xff1a;1、#set(#a "a")$a ##输出语句时直接写变量的名称即可2、判断语句&#xff1a;#if($a "a") ##判断语句没有括号&#xff0c;也是直接输出$a3、数组&#xff1a;#set($arry [0..10])$foreach($i in $arry)$i ##换行#e…

docker-machine指定cpu个数

序 给本机的一个服务压测&#xff0c;结果半天qps上不了万&#xff0c;而且经常跑满cpu&#xff0c;搞半天发现&#xff0c;docker里头才1核1G内存。原来boot2docker默认给docker-machine分配1个cpu和1G内存。 修改配置 docker-machine create \--driver virtualbox \--virtual…

Java ClassLoader findResources()方法与示例

ClassLoader类findResources()方法 (ClassLoader Class findResources() method) findResources() method is available in java.lang package. findResources()方法在java.lang包中可用。 findResources() method is used to find all the resources with the given resource …

Java ByteArrayInputStream mark()方法与示例

ByteArrayInputStream类mark()方法 (ByteArrayInputStream Class mark() method) mark() method is available in java.util package. mark()方法在java.util包中可用。 mark() method is used to set the current mark position in the stream from where read or write can b…

java mediainfo.dll_MediaInfo库的简单使用

想到一个问题, 如何获得一个图像文件(比如jpg, bmp, png)的信息. 自己查查文件的格式, 写一个解析, 应该不困难; 但是找了下现成的, 发现MediaInfo库已经可以非常好的实现需要的功能了.MediaInfo可以在sourceforge上找到, 是一个解析视频,音频, 图片等媒体文件的库. 可以得到文…

Redis配置和常用命令

1 redis.conf配置文件&#xff1a;2 引用3 #是否作为守护进程运行4 daemonize yes5 #配置pid的存放路径及文件名&#xff0c;默认为当前路径下6 pidfile redis.pid7 #Redis默认监听端口8 port 63799 #客户端闲置多少秒后&#xff0c;断开连接 10 timeout 300 11 #日志显示级别 …

oracle中dbms_DBMS中的功能依赖性和属性关闭

oracle中dbms功能依赖 (Functional Dependency) A relational Database management System (RDBMS) represents the database o a collection of relations/tables. A functional dependency is a constraint between two sets of attributes in a relation. It is the propert…

java invoke 泛型_利用Java反射机制和泛型,全自动解析json

有啦这个简直&#xff0c;太爽啦&#xff0c;利用Java 反射机制&#xff0c;利用Class 就可以得到 类的 变量 Field[] fieldscls.getDeclaredFields();还可以通过类中 的方法名字 去执行这个方法m1 cls.getDeclaredMethod(getMothodName(fields[j].getName()), String.class)…

2_C语言中的数据类型 (四)整数与无符号数

1.1 sizeof关键字 sizeof是c语言关键字&#xff0c;功能是求指定数据类型在内存中的大小&#xff0c;单位&#xff1a;字节 sizeof与size_t类型 1.1 int类型 1.1.1 int常量&#xff0c;变量 int就是32位的一个二进制整数&#xff0c;在内存当中占据4个字节…

python 示例_Python TextCalendar类别| pryear()方法与示例

python 示例Python TextCalendar.pryear()方法 (Python TextCalendar.pryear() Method) pryear() method is an inbuilt method of the TextCalendar class of calendar module in Python. It works on text calendars. It uses an instance of TextCalendar class and prints …

Spring实战——通过Java代码装配bean

上篇说的是无需半行xml配置完成bean的自动化注入。这篇仍然不要任何xml配置&#xff0c;通过Java代码也能达到同样的效果。 这么说&#xff0c;是要把上篇的料拿出来再煮一遍&#xff1f; 当然不是&#xff0c;上篇我们几乎都在用注解的方式如ComponentScan Component等就完成了…