SQL数据库(设置模式、数据库操作、表操作、列操作、SQL索引/约束、SQL数据类型、SQL函数、常见问题)

news2025/7/9 9:52:20

目录

SQL数据库

设置模式

SET NAMES utf-8

set sql_safe_updates=1

数据库操作

CREATE DATABASE databaseName(创建数据库)

USE databaseName(选择数据库)

DROP DATABASE databaseName(删除数据库)

表操作

CREATE TABLE(创建表)

DROP TABLE(删除表)

TRUNCATE TABLE table_name(删除表中数据)

添加列

删除列

修改列

JOIN(组合表)

INNER JOIN

RIGHT  JOIN(LEFT JOIN)

LEFT JOIN示例

 Full join(SQL Server)

列操作(筛选、排序、去重)

Select columnName From tableName(选)

AS(别名)

WHERE(筛选条件)

BETWEEN A AND B

IS(判断null)

IN(指定集合)

LIKE(模糊查询)

REGEXP/RLIKE(正则匹配)

SELECT DISTINCT(去重)

ORDER BY(排序)

SELECT TOP(取前多少数据SQL Server/MS Access)

LIMIT(取前多少数据MySQL)

列操作(增、删、改、组合、合并)

INSERT INTO(插入)

SELECT INTO(旧表数据插入新表!MySQL)

INSERT INTO(旧表数据插入新表)

DELETE FROM(删除)

UPDATE(修改)

CONCAT(组合多列数据)

UNION(合并数据)

SQL索引、AUTO INCREMENT、SQL约束(not null、unique、primary key、foreign key、check、defalut)

SQL视图

通用数据类型

Microsoft Access/MySQL/SQL Server中的数据类型

SQL函数

SQL常见问题


SQL数据库

用于访问和处理数据库的标准的计算机语言。

注意:SQL 对所有字段的大小写完全不敏感:SELECT 与 sEleCt 是相同的。下面大写表示SQL关键字。

设置模式

SET NAMES utf-8

设置使用的字符集相当于

SET character_set_client='utf8';

SET character_set_connection='utf8';

SET character_set_results='utf8';

set sql_safe_updates=1

开启安全更新数据模式(update 语句后必须携带 where 条件,否则就会报错

数据库操作

CREATE DATABASE databaseName(创建数据库)

创建databaseName数据库

USE databaseName(选择数据库)

选择databaseName数据库

DROP DATABASE databaseName(删除数据库)

删除databaseName数据库

表操作

创建删除表、删除表中所有数据、添加删除表中列字段以及改变列字段数据类型、组合合并表。

CREATE TABLE(创建表)

创建Persons表并指定列的字段和数据类型,varchar为字符,长度限定为255.

CREATE TABLE Persons
(
PersonID int,
LastName varchar(255)
);

拷贝旧表的结构和数据到新表。 

CREATE TABLE 新表
AS
SELECT * FROM 旧表 

DROP TABLE(删除表)

DROP TABLE table_name

TRUNCATE TABLE table_name(删除表中数据)

删除表内的数据,但并不删除表本身

添加列

在 "Persons" 表中添加一个名为 "DateOfBirth" 的列,数据类型为日期。

ALTER TABLE Persons
ADD DateOfBirth date

删除列

ALTER TABLE table_name
DROP COLUMN column_name

修改列

SQL Server / MS Access

ALTER TABLE table_name
ALTER COLUMN column_name datatype

My SQL / Oracle

ALTER TABLE table_name
MODIFY COLUMN column_name datatype

JOIN(组合表)

通过不同的条件组合表,组合的条件用on

INNER JOIN

SELECT * FROM tableA  A INNER table B ON A.key = B.key

只有满足A.key=B.key的数据才会组合后返回。

RIGHT  JOIN(LEFT JOIN)

SELECT * FROM tableA  A RIGHT JOINN table B ON A.key = B.key

以B表为基准,B表中的每一条数据都会根据A.Key = B.Key的条件返回,B表中的一条对应A表中的多条,则将A表中的多条和B表中的一条组合返回,B表中的某条无对应则返回该条(该条数据中涉及A表中的字段值为null)

LEFT JOIN示例

Websites表

+----+--------------+---------------------------+-------+---------+
| id | name         | url                       | alexa | country |
+----+--------------+---------------------------+-------+---------+
| 1  | Google       | https://www.google.cm/    | 1     | USA     |
| 2  | 淘宝          | https://www.taobao.com/   | 13    | CN      |
| 3  | 菜鸟教程      | http://www.runoob.com/    | 4689  | CN      |
| 4  | 微博          | http://weibo.com/         | 20    | CN      |
| 5  | Facebook     | https://www.facebook.com/ | 3     | USA     |
| 7  | stackoverflow | http://stackoverflow.com/ |   0 | IND     |
+----+---------------+---------------------------+-------+---------+

access_log表

+-----+---------+-------+------------+
| aid | site_id | count | date       |
+-----+---------+-------+------------+
|   1 |       1 |    45 | 2016-05-10 |
|   2 |       3 |   100 | 2016-05-13 |
|   3 |       1 |   230 | 2016-05-14 |
|   4 |       2 |    10 | 2016-05-14 |
|   5 |       5 |   205 | 2016-05-14 |
|   6 |       4 |    13 | 2016-05-15 |
|   7 |       3 |   220 | 2016-05-15 |
|   8 |       5 |   545 | 2016-05-16 |
|   9 |       3 |   201 | 2016-05-17 |
|  10 |       6 |   111 | 2016-03-19 |
+-----+---------+-------+------------+

 Full join(SQL Server)

 相当于LEFT JOIN与RIGHT JOIN 的和。  

             

当添加WHERE t1.列名 IS NULL OR t2.列名 IS NULL时为下图

列操作(筛选、排序、去重)

Select columnName From tableName(选)

选择列名columnName从表tableName中,* 号可以表示所有列

AS(别名)

可以在columnName后接AS newName或接字符串’newName’将列名重新命名,也可以对表进行重命名。

下面两示例表示意思相同

SELECT w.name , a.count
FROM Websites AS w, access_log AS a
WHERE a.count=w.id and w.name="菜鸟教程";

SELECT Websites.name, access_log.count
FROM Websites, access_log
WHERE access_log.count= Websites.id and Websites.name="菜鸟教程";

WHERE(筛选条件)

筛选符合条件的,会进行隐式类型转换where id * 3 – 6表示筛选出id=2(只有0会被转化为false)

AND表示且,OR表示或,非表示NOTNOT id > 5和id<=5表示相同<>和!=都表示不等于

BETWEEN A AND B

表示值在AB之间,包括A和B,顺序不能反,小的要在前,大的在后,可以用字母比较ASCII 值,注意是否包含AB取决于数据库类型

IS(判断null)

用于判断是否值为null,注意!=5的筛选是无法筛选出null(null不参与非IS的筛选

IN(指定集合)

用于筛选在指定集合的值,a IN (10,20,30)表示a=10 OR a = 20 OR a = 30

LIKE(模糊查询)

模糊查询,%百分号代表0个或任意个字符,相当于正则中的 [\d\D]*,_下划线代表一个字符,相当于正则中的[\d\D]

REGEXP/RLIKE(正则匹配)

使用REGEXP或rlike都表示正则匹配  WHERE name REGEXP '^J'表示匹配以J开头的name。注意后面接正则字符串。

SELECT DISTINCT(去重)

去重(只有所有选取列的对应值相同才会被去除)

ORDER BY(排序)

排序(默认按升序排列,字段后接ASC表示升序,DESC表示降序),注意ORDER BY a,b DESC表示先将b列按降序排列,再将a列按升序排列,多列字段的排序,按右到左依次对每个字段进行排序。

SELECT TOP(取前多少数据SQL Server/MS Access)

选取前多少数据,select top 7 id,name 选取前7行的id和name,7后面可以加空格percent表示前百分之7。注意有排序会先筛选排序最后再取数据

LIMIT(取前多少数据MySQL)

选取前多少数据,SELECT * FROM table LIMIT 7,表示取前7条数据。Limit 0,7和LIMIT 7 OFFSET 0都表示取前7条。注意有排序会先筛选排序最后再取数据

列操作(增、删、改、组合、合并)

INSERT INTO(插入)

向表中插入n条数据

INSERT INTO Websites (name, url, country) VALUES 
('stackoverflow', 'http://stackoverflow.com/', 'IND'),
('csdn', 'http://csdn.com/', 'cn');

表示向插入Websites表中插入2条数据,每条数据用括号包裹,逗号隔开。

注意没有指定要插入数据的列名的形式需要列出插入行的每一列数据。

SELECT INTO(旧表数据插入新表!MySQL)

在旧表中选择数据插入新表(新表不存在)

SELECT column1,column2...
INTO newtable 
FROM table1;

注意新表将会使用 SELECT 语句中定义的列名称和类型进行创建可以使用 AS 子句来应用新名称。 

INSERT INTO(旧表数据插入新表)

在旧表中选择数据插入新表(新表已存在)

INSERT INTO newTable (column1,column2...) 
SELECT column1,colum2... 
FROM ordTable

DELETE FROM(删除)

删除表中数据

DELETE FROM Websites WHERE name='Facebook';
--表示删除满足条件的行。
DELETE FROM Websites;
--表示删除该表下所有行(保留了表)

UPDATE(修改)

更新表中已存在的记录

UPDATE table_name
SET column1 = value1, column2 = value2, ...
WHERE condition;

CONCAT(组合多列数据)

组合多列数据为一列。

SELECT name, CONCAT(url, ', ', alexa, ', ', country) AS site_info FROM Websites;

表示选取name和site_info列,site_info列的值由url,alexa,country列的值组成,中间以逗号和空格隔开。

UNION(合并数据)

合并两个或多个 SELECT 语句的结果集。注意UNION 内部的 SELECT 语句必须选相同数量的列、对应的列也必须拥有相似的数据类型。

SELECT country FROM Websites
UNION
SELECT country FROM apps
ORDER BY country;

表示将两表中的country列合并成一列,会自动去重(需保留重复的话用UNION ALL)。

注意ORDER BY会在合并后进行排序

SQL索引、AUTO INCREMENT、SQL约束(not null、unique、primary key、foreign key、check、defalut)

SQL索引、AUTO INCREMENT、SQL约束(not null、unique、primary key、foreign key、check、defalut)_YF-SOD的博客-CSDN博客

SQL视图

视图是基于 SQL 语句的结果集的可视化的表,展示部分表的内容。提供了一个统一访问数据的接口。(可以设置只读模式允许用户通过视图访问数据的安全机制,而不授予用户直接访问底层表的权限)

MySQL学习笔记——视图_修改视图会修改原表吗_默萧756的博客-CSDN博客 

通用数据类型

SQL 通用数据类型 | 菜鸟教程

Microsoft Access/MySQL/SQL Server中的数据类型

SQL MS Access、MySQL 和 SQL Server 数据类型 | 菜鸟教程 

SQL函数

SQL常见问题

https://deepinout.com/mysql/mysql-questions/609_mysql_commysqljdbcpackettoobigexception.html

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

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

相关文章

一种集成低损耗二极管的SiC沟槽MOSFET,用于提高开关性能

标题&#xff1a;A Low-Loss Diode Integrated SiC Trench MOSFET for Improving Switching Performance 阅读日期&#xff1a;2023.7.17 研究了什么 该研究提出并通过数值模拟对一种集成低损耗二极管&#xff08;LLD-ATMOS&#xff09;的硅碳化物&#xff08;SiC&#xff09…

【SSCMS 内容管理系统】环境配置篇

SSCMS 内容管理系统基于微软 .NET Core 平台开发&#xff0c;用于创建在 Windows、Linux、Mac 以及 Docker 上运行的 Web 应用程序和服务。 具有”跨平台、分布式部署“、”网站群与多服务器发布“、”良好的扩展性与二次开发“ 等特点。 MySqlSSCMS系统&#xff08;V6版本&am…

初识react

初识react 第一步就给我出个问题版本太低 https://www.cnblogs.com/gslgb/p/16585233.html https://blog.csdn.net/xiangshiyufengzhong/article/details/124193898 第二个问题 便利生成dom 需要绑定key 不要总想着加冒号这不是vue 第三个问题 我p标签包裹 MapList组件 MapLis…

一致性哈希算法总结

title: 一致性哈希算法总结 date: 2023-05-22 11:25:13 tags: 算法 categories:数据结构与算法 cover: https://cover.png feature: false 1. 背景 假设&#xff0c;我们有三台缓存服务器&#xff0c;用于缓存图片&#xff0c;我们为这三台缓存服务器编号为 0 号、1 号、2 号…

使用Vue + el-form + rules实现图书信息录入功能实战

前言 上节回顾 转眼2023年已经过去一半了&#xff0c;我咋记得2022年刚过去呢&#xff0c;有时候在前端打版本的时候我还不小心写成2022啥啥啥呢&#xff0c;写完才发现自己自己写错了&#xff0c;应该是2023&#xff0c;真是时光一去不复回&#xff0c;往事只能回味啊。 上…

基于FPGA的视频接口之SDI编码

简介 SDI接口是一种“数字分量串行接口”,对于详细解释,可以在Google下SDI,我就不当网络的搬运工了,划重点的是,SDI常见的分为3种模式,即SD-SDI、HD-SDI和3G-SDI,以及升级版12G-SDI。 SD-SDI很少有人用,我怀疑可能是640x512的说法,270Mb/s的数据传输量 HD-SDI最常遇到…

vue3 实现 Map 地图区域组件封装

图例&#xff1a;重庆区域 一、安装echarts 坑&#xff1a;地图echarts版本必须在5.0.0以下&#xff0c;否则不能显示&#xff0c;此处指定安装 echarts4.9.0 即可 cnpm install echarts4.9.0 --save 二、下载 “重庆” 区域地图json文件 下载地址&#xff1a;https://www.…

面向对象基础

目录 1. 类和对象 1.1 什么是对象 1.2 什么是面向对象 1.3 什么是类 1.4 什么是对象的属性 1.5 什么是对象的行为 1.6 类和对象的关系 1.7 类的定义 1.8 对象的使用 2. 成员变量和局部变量 2.1 什么是成员变量和局部变量 2.2 成员变量和局部变量的区别 3. 封装 3.1…

软件测试基础篇(测试系列3)

目录 前言&#xff1a; 1.软件测试的生命周期 2.如何描述一个BUG 3.如何定义BUG的级别 4.BUG的生命周期 5.如何开始第一次测试 6.测试执行和BUG管理 结束语&#xff1a; 前言&#xff1a; 在两节中小编与大家简单的讲解了一些有关于软件测试的基础知识&#xff0c;带着…

Ubuntu开机自启动设置

一、创建执行脚本 这里有两个程序所以编写了两个脚本&#xff0c;第一脚本(master.sh)&#xff1a; gnome-terminal -- bash -c "source /home/zyy/anaconda3/bin/activate wood2;cd /home/zyy/pycharmProject/master_program;python main.py > /home/zyy/pycharmProj…

MYSQL常见面试题汇总

Yan-英杰的主页 悟已往之不谏 知来者之可追 C程序员&#xff0c;2024届电子信息研究生 目录 1、三大范式 2、DML 语句和 DDL 语句区别 3、主键和外键的区别 4、drop、delete、truncate 区别 5、基础架构 6、MyISAM 和 InnoDB 有什么区别&#xff1f; 7、推荐自增id作…

HCIP第十天

题目 拓扑图 配置IP地址和环回 启动OSPF&#xff0c;使得AS2内部互相学习到路由 BGP建立对等体关系&#xff0c;R1和R2为EBGP对等体&#xff0c;R234为AS64512的联邦&#xff0c;R567为AS64513的联邦&#xff0c;R7和R8为EBGP对等体&#xff0c;R2-R5和R4-R7为不同联邦的EBGP对…

UML类图的使用

相关概念 1. uml例图使用场景: 类图 类图的使用 1. 在UML类图中表示具体类 具体类在类图中用矩形框表示&#xff0c;矩形框分为三层&#xff1a;第一层是类名字。第二层是类的成员变量&#xff1b;第三层是类的方法。成员变量以及方法前的访问修饰符用符号来表示&#xff1…

文档加密软件有哪些(好用的文档加密软件排名)

在现代社会中&#xff0c;随着信息技术的快速发展&#xff0c;文档的保密性变得越来越重要。为了保护敏感信息不被未经授权的人访问&#xff0c;使用文档加密软件是一种常见的做法。本文将介绍文档加密软件的重要性&#xff0c;并列举一些常见的文档加密软件供读者参考。 文档加…

Git及Tortoisegit使用教程,设置中文

一、到git官网下载GIT 官网 二、下载安装Tortoisegit及中文语言包,Tortoisegit及语言包 语言包下载地址 三、在电脑某个盘的文件里右键 提示未设置git.exe 路径不能继续, 于是去下载git GIT下载 安装Git时, 一直点击 Next > 不要停, 直到结束 此时再跳到TortoiseGit…

[QT编程系列-21]:基本框架 - QT常见数据结构:QString、QList、QVector、QMap、QHash、QSet、QPair详解

目录 1 QString 2 QList 3 QVector 4 QMap 5 QHash 6 QSet 7 QPair 1 QString QString是Qt中用于存储和操作字符串的类。它提供了丰富的字符串处理方法和功能。 以下是QString的一些主要特点和常用操作&#xff1a; 创建QString对象&#xff1a; QString str "H…

远程在Ubuntu20.04安装nvidia显卡驱动

第零步&#xff0c;找人装一个todesk。 在终端运行&#xff1a; ifconfig 记住ip地址&#xff0c;后面要用。 第一步&#xff0c;安装软件&#xff1a; sudo apt-get update sudo apt-get install g gcc make 第二步&#xff0c;下载显卡驱动&#xff1a; 官方驱动 | NVI…

mac批量提取图片文件名到excel?

mac批量提取图片文件名到excel&#xff1f;最近有个小伙伴向我求助一个电脑操作上的问题&#xff0c;问我在Mac电脑上用什么方法可以快速批量的将大量图片的名称一次性提取出来&#xff0c;并且保存到excel表格里。记得小编曾经给大家分享过windows电脑上批量提取文件名称的方法…

关键点检测SIFT算法笔记

SIFT算法 SIFT&#xff08;Scale Invariant Feature Transform&#xff09;&#xff0c;尺度不变特征变换。具有旋转不变性、尺度不变性、亮度变化保持不变性&#xff0c;是一种非常稳定的局部特征。在目标检测和特征提取方向占据着重要的地位。 SIFT算法所查找到的关键点是一些…

LabVIEW实现基于DCT的野生动物监测无线图像传输

LabVIEW实现基于DCT的野生动物监测无线图像传输 针对野生动物物种数量不断下降的情况&#xff0c;需改进以增强当前野生动物监测系统的能力。目前的系统要求工人进入森林以收集存储在存储卡中的图像数据。这项任务风险很大&#xff0c;而且耗费大量时间。系统也无法提供实时报…