对表的数据的增删查改
(前言,一般来说sql语句中的关键字需要大写,这样比较规范,但是我为了好认用了小写)
(因为mysql是不区分大小写的,所以全部小写也是会执行的)
向表中增加数据
insert into table_name (列1名,列2名,列3名,....)
values("列1值","列2值","列3值",.....);
需要注意的是有时我们并不需要特别的写出列名,因为我们已经知道有哪些列,有几列,所以 我们可以直接写出values;
而且对于自动递增的列我们可以使用null来代替它,这样在数据书中该行中该列的值会自动输入上一行该列的值加一;但是我们不能用空字符串来代替它,这样会报错,因为他们的数据类型是不同的。如图所示:
insert into ordered values("21","93-12-12",1); insert into ordered values(null,"93-12-14",2); insert into ordered values("","93-12-15",3);
首先第一列是自动递增的,然后输入以上三个语句,
第一句结果为:
第二行结果为:
第三行结果为:
21:22:43 insert into ordered values("","93-12-15",3) Error Code: 1366. Incorrect integer value: '' for column 'o_num' at row 1 0.000 sec
查询表中数据
select 所查询的字段 from table_name where 限制语句 [group by 字段] [having <>] [order by 列名 desc或] [limit 限制查询结果行数]
上面的语句where 和后面的限制语句都是可选的,接下来我们一一说明他们的用法。
首先是查询全表
select *from table_name; *符号是一种通配符 代表所有字段。
查询表中的几个列
select 列名,列名,... from table_name; 列名即字段名,查询表中的指定字段,字段名可多个也可以一个。
查询时使用where限制条件
select 列名,... from table_name where 限制条件;
关于限制条件的几种方式可以点击这里查看。
查询不重复的结果
select distinct 列名,... from table_name;
对查询结果进行排序 根据order by 后面的列排序
select 列名,... from table_name order by 列名 [desc or asc];
desc示从上到下是降序,asc表示升序,默认是升序排列。
将查询结果按列名分组
select 列名,... from table_name group by 列名;
通常 group by语句是配合sql函数一起使用的,关于函数问题我们以后再细说
查询分组过后的使用添加的限制条件
select 列名,... from table_name group by 列名 having 限制条件 ;
该条语句通常也需要搭配sql函数使用。
group by后添加with rollup关键字
select 列名,... from table_name group by 列名 with rollup;
该关键字可以是查询结果多出一行 这一行来表示查询记录的总和。
根据多字段分组
select 列名,... from table_name group by 列名,列名,...;
这个时候会先按第一个列名进行分组,然后在第一个列名值相同的情况下按第二个列名分组,第三个依次类推,
限制查询结果的条数
select 列名,... from table_name limit[n,m];
n的值是查询结果的位置偏移量(当前行数-第一行的值),即如果要从第一行开始显示,n=0 (ps:1-1);从 第二行,n=1,(ps:2-1);第三行的话 n=2,(ps:3-1).
m的值是指定返回的查询结果条数(这个应该很好理解)
多表查询
一般来说,多表查询需要多个表中有相同意义的字段,字段名字可能不同
连接查询:⑴ 内连接查询
select 字段1,字段2,字段3,字段4 from 表1 inner join 表2 on 表1.相同意义字段名=表2.相同意义字段名 ;
其中字段1234可能分别属于表1表2, 其实这个语句还有另外一种写法。
select 字段1,字段2,字段3,字段4 from 表1,表2 where 表1.相同意义字段名=表2.相同意义字段名;
而为什么不用第二种写法是因为第一种写法可以明确指出连接条件,而且where子句在有些时候影响查询条件。
⑵外连接查询
外连接又分为左连接和右连接,
左连接:返回左表中全部记录和右表中连接字段相等的记录,
比如 user1表这样 user2表这样
执行完左连接语句:select user1.a,b,c from user1 left outer join user2 on user1.a=user2.a;
结果是这样
也就是说左外连接会将右表的数据根据user1.a=user2.a匹配插入到左表中,若左表一行中有数据而右表没有,则该数据用null代替。
而右外连接则是这个语句,
select user1.a,b,c from user1 right outer join user2 on user1.a=user2.a;
结果为
因为查询的字段是user1.a所以结果中a字段的第4行为null,右外连接就是左外连接的反过来。
相关推荐
MySQL SQL语句练习题及答案 本资源提供了 MySQL SQL 语句的练习题及答案,涵盖了创建表、插入数据、删除数据、更新数据、查询数据等多方面的知识点。 一、创建表 在 MySQL 中,创建表使用 CREATE TABLE 语句。...
在Java的JDBC编程中,`PreparedStatement`是一个非常重要的接口,它用于预编译SQL语句,提高了数据库操作的效率和安全性。当我们处理大量重复的SQL操作时,使用`PreparedStatement`可以避免SQL注入等问题,同时提升...
在Access、MySQL和MSSQL等数据库管理系统中,SQL语句有着广泛的应用。以下是一些基本的SQL语句及其说明: 1. **创建数据库**: 使用`CREATE DATABASE`语句创建一个新的数据库,例如:`CREATE DATABASE database-...
在MySQL中,还有一些特定的特性,比如索引的创建和管理,触发器的使用,以及分区表等。索引可以显著提高查询速度,但也会占用额外的存储空间;触发器可以在特定事件发生时自动执行一些操作,增加数据库的自动化程度...
- **2NF**:第二范式是在满足1NF的基础上,确保表中的每列都依赖于完整的主键,不存在部分依赖。 - **3NF**:第三范式是在满足2NF的基础上,进一步要求非主键列之间不存在传递依赖,即除了主键之外的其他列不能...
6. **文件名"getStmtTables"**:根据提供的文件名,这可能是解析SQL语句以获取所涉及表格列表的代码或工具的一部分。这可能是一个函数或脚本,用于提取SQL语句中的表名,从而构建血缘关系图谱。 7. **实现步骤**: ...
4. **优化`WHERE`子句**:确保`WHERE`子句中使用的条件能够充分利用索引,从而减少需要扫描的数据量。 5. **理解`EXTRA`列**:仔细阅读`EXTRA`列中的信息,了解查询中是否存在潜在的问题或优化空间。 通过以上方法...
这篇内容将详细解释这两个SQL语句的工作原理、用法以及如何导出这些语句,以供日后使用或备份。 首先,我们来看INSERT语句。INSERT语句用于向数据库的表中添加新的记录。基本语法如下: ```sql INSERT INTO 表名 ...
本章我们将深入探讨如何使用SQL语句来操作数据。 1. **SQL基本结构** SQL语句通常包括SELECT、INSERT、UPDATE、DELETE等关键字,它们分别用于查询、插入、修改和删除数据。例如,`SELECT * FROM table_name`用于...
如果在表 t 中存在主键或者唯一性约束,那么第二条语句将会发生错误。 类似地,在查询时,也可能会出现大小写问题,例如: ``` select * from t where a like 'a%'; select * from t where a like 'A%'; ``` 这两...
本篇文章将深入探讨一些MySQL中的经典SQL语句,这些语句对于优化数据库性能和提升开发效率至关重要。 1. **创建数据库**: 使用`CREATE DATABASE`语句可以创建新的数据库。例如,`CREATE DATABASE database-name`...
恢复SQL语句是数据库备份与还原的第二部分。使用T-SQL语句,可以实现数据库的恢复,例如: ```sql exec p_restoredb @bkpath='c:\',@bkfname='db_\DATE\_db.bak' ``` 这条语句将恢复指定的备份文件到当前数据库中。 ...
在Excel表格中,我们可以设置第一行为表头,列头为字段名,第二行可以设置数据类型的提示,宏将根据这些信息生成SQL语句。执行宏后,用户只需复制生成的SQL语句到SSMS中,运行即可完成建表操作。 标签中的“sql...
总之,“实用总结SQL语句大全”将引导你掌握SQL的基本用法,理解其核心概念,并能灵活运用到实际数据库操作中。无论是初学者还是有经验的数据库管理员,这个资源都能提供宝贵的参考。通过深入学习和实践,你可以提升...
本文将详细介绍三种主流数据库(SQL Server、MySQL和Oracle)中的分页SQL语句实现方法。 #### SQL Server 的分页SQL语句实现 SQL Server 支持通过`TOP`关键字来实现分页查询。具体实现方式如下: 1. **查询第M页...
根据提供的文件信息,本文将详细解析MySQL数据库中的SQL语句,特别是针对数据库表记录的CRUD操作(创建、读取、更新、删除),并探讨分页查询与LIMIT方言的使用方法,以及SELECT语句的执行顺序等内容。 ### MySQL...
【SQL语句练习提高】 在SQL中,查询和操作数据是其核心功能。以下通过给出的练习题目,我们将深入理解SQL的基本句式和用法。 28. 题目要求从`employee`表中抽取部门名称(depart_name),计算平均工资(avg(wage)...
浅谈 MySQL 中优化 SQL 语句查询常用的 30 种方法 MySQL 是一种广泛使用的关系数据库管理系统,优化 SQL 语句查询是提高数据库性能的关键。下面是浅谈 MySQL 中优化 SQL 语句查询常用的 30 种方法: 一、避免全表...
例如,在MySQL中,可以使用`Performance Schema`或者`Information Schema`来收集这些数据: ```sql SELECT statement, COUNT(*) AS execution_count, SUM(total_time) AS total_time FROM performance_schema....