sql基础知识总结 第1篇
1.什么是事务
需要在同一个处理单元中执行的一系列更新处理的集合。一个事务中包含多少个更新处理或者包含哪些处理,在DBMS中并没有固定的标准,而是根据用户的要求决定的。
2.语法
3.理解事务
事务其实很好理解,它将一系列操作放在一个块中形成一个代码块,这个代码块要执行就全部执行,要么就不执行。
拿银行转账举例,转账的过程为,我的账户金额减少——>对方账户金额增加——>交易完毕。
如果我的账户金额减少后出现了故障导致对方账户金额没有增加,那么这肯定是不被允许的。所以这个转账过程中的每一步都必须完整的执行。
rollback就是在DML语句出现故障时,来使得数据库回滚到执行操作前的状态。而commit则是所有DML正确执行后才执行,告诉系统这个事务正常完成了,系统可以进入下一个新的状态了。
一、case when语句
这个语句出现的比较频繁,所以这里给出它的格式。
二、sql语句及种类
这是sql的基础知识,需要知道。
三、exists谓词
在SQL语言中,EXISTS(存在)谓词是一个非常重要的查询关键词。
EXISTS代表存在量词。带有EXISTS谓词的子查询不返回任何数据,只产生逻辑真值“true”或逻辑假值“false”。
具体如何使用exists可以参照如下文章,写的通俗易懂。
sql基础知识总结 第2篇
表的连接主要分为以下几种。
1.内连接
语法格式如下:
内连接就是得出两个表的交集部分。
2.左连接
语法格式如下:
左连接就是左边表的记录要全部显示出来,右表只有和左表匹配到的记录才进行显示。
3.右连接
和左连接相反,不再累述。
4.自连接
就是把一张表看成两张表。进行自连接往往是一张表的某些列间存在逻辑关系。
sql基础知识总结 第3篇
1.插入数据
虽然表名后面的列名表不是严格要求的,但是这样会更安全。如果不写出列名,则需要严格按照表的定义插入数据。
如果我们只需要插入一行中的部分列,那么列出列名就变得必须了。
.插入检索出的数据
使用insert...select语句进行。以下是格式。
.复制表
2.更新数据
一定切记不要忘了过滤条件,否则将会对所有行的数据进行更新。
3.删除数据
sql基础知识总结 第4篇
1.计算字段
存储在数据库表中的数据一般不是应用程序所需要的格式。
我们需要直接从数据库中检索出转化、计算或格式化过的数据;而不是检索出数据,然后再在客户机应用改程序或报告程序中重新格式化。
只有数据库知道SELECT语句中那些列是实际的表列,哪些列是计算字段。从客户机(应用程序)的角度来看,计算字段的额数据是以与其他列的数据相同的方式返回的。
2.拼接字段
在mysql中,我们可以使用concat函数对字段进行拼接,格式如下。
对于字符串中存在的空格,我们可以用字符串处理函数RTRIM()、LTRIM()、TRIM()来进行处理。
3.使用别名
我们可以用关键字as来给我们的列起一个别名。格式如下
sql基础知识总结 第5篇
CREATE TABLE example AS
SELECT
, AS customer,
, AS shipper, AS product
FROM customers c
JOIN orders o USING (customer_id)
LEFT JOIN shippers sh
ON =
CROSS JOIN products p;
sql基础知识总结 第6篇
1.使用where子句
在sql中,我们使用where子句来对查询出的结果进行过滤,得到我们所需要的数据。它的格式如下。
过滤条件有多个时,我们可以使用and或or来进行多个条件的罗列。值得注意的是,当有多个过滤条件是,and的优先级会高于or,这也许会导致一些逻辑错误,需要注意。
子句操作符
值得注意的是,在判断某个值是否为空值是,应该使用is null或is not null来判断,而不是使用_= null_或_!= null_。
3.使用通配符进行过滤
在用通配符进行过滤时,我们使用like操作符进行。
通配符主要包括两个,它们分别为百分号'%'和下划线'_'。
其中'%'表示任意长度的字符串,而下划线'_'只表示一个字符。
需要注意的是,'%'不仅可以表示一个或多个字符,还可以表示0个字符。
sql基础知识总结 第7篇
1.创建组合查询
创建组合查询时我们使用UNION将两个或多个select语句查询出的结果组合在一起形成一个表。
需要不同的select语句返回相同数量的列且对应列的数据类型相同,事实上应该是意义都一样才合理。
与union all
对于组合查询出的结果,如果使用union,则会自动对结果进行去重。如果不想去重则使用union all。
3.组合查询的排序
对于组合查询结果的排序只需要使用一个order by子句,放在最后一个select语句的后面即可。
sql基础知识总结 第8篇
USE store;
SELECT DISTINCT points+10 AS _new points_ FROM customers
WHERE points BETWEEN 500 AND 3000 OR
last_name LIKE '%b%' OR
last_name NOT LIKE '_____y' OR
last_name REGEXP '^rose|mac|field$|[a-h]e|[lt]y' OR
phone IS NULL
ORDER BY state, _new points_ DESC
LIMIT 2, 3; -- from 3 to 5
sql基础知识总结 第9篇
CREATE TABLE orders_archived AS SELECT * FROM orders;
-- Truncate
INSERT INTO orders_archived
SELECT * FROM orders WHERE order_date < '2016-01-01'
UNION
SELECT * FROM orders WHERE order_date > '2019-01-01';
INSERT INTO order_items
VALUES
(LAST_INSERT_ID(),1,1,),
(LAST_INSERT_ID(),2,1,);
sql基础知识总结 第10篇
在WHERE子句中不能使用SELECT中的别名
单表查询:从一张表中查询数据
SELECT FROM table_name
多表查询:从多张表中联合查询出数据
SELECT FROM 表名A,表名B,表名C
1.非空约束(NK):NOT NULL,不允许某列的内容为空。
2.设置列的默认值:DEFAULT。
3.唯一约束(UK):UNIQUE,在该表中,该列的内容必须唯一。
4.主键约束:PRIMARY KEY, 非空且唯一。
5.主键自增长:AUTO_INCREMENT,从1开始,步长为1。
6.外键约束:FOREIGN KEY,A表中的外键列.A表中的外键列的值必须参照于B表中的某一列(B表主键)。
注意:在MySQL中,InnoDB支持事务和外键.
修改表的存储引擎为InnoDB: ALTER TABLE 表名 ENGINE='InnoDB'