标准SQL语言的用法_MySQL
SQL语言是目前最通用的关系数据库语言。ANSI SQL是指由美国国家标准局(ANSI)的数据库委员会制定的标准SQL语言,多数关系数据库产品支持标准SQL语言,但是它们也往往有各自的SQL方言。
在分层的软件结构中,关系数据库位于最底层,它的上层应用都被称为数据库的客户程序。以MySql为例,mysql.exe和Java应用就是它的两个客户程序。这些客户程序最终通过SQL语言与数据库通信。
SQL(Structured Query Language)的英语全称可翻译为结构化查询语言,但实际上它除了具有数据查询功能,还具有数据定义、数据操纵和数据控制功能。
SQL语言的类型
语言类型 描述 SQL语句
DDL(Data Definition Language) 数据定义语言,定义数据库中的表、视图和索引等 create、drop和alter语句
DML(Data Manipulation Language) 数据操纵语言,保存、更新或删除数据 insert、update和delete语句
DQL(Data Query Language) 数据查询语言,查询数据库中的数据 select语句
DCL(Data Control Language) 数据控制语言,用于设置数据库用户的权限 grant和remove语句
数据完整性
当用户向数据库输入数据时,由于种种原因,用户有可能输入错误数据。保证输入的数据符合规定,成为数据库系统,尤其是多用户的关系数据库系统首要关注的问题。为了解决这一问题,在数据库领域出现了数据完整性的概念。数据完整性(Data Integrity)就是指数据必须符合的规范,它主要分为三类:
实体完整性(Entity Integrity)
规定表的一行(即每一条记录)在表中是唯一的实体。实体完整性通过表的主键来实现。
域完整性(Domain Integrity)
指数据库表的列(即字段)必须符合某种特定的数据类型或约束。如not null。
参照完整性(Referential Integrity)
保证一个表的外键和另一个表的主键对应。
DDL数据定义语言
用于定义数据库中的表、视图和索引等。相关DDL语句如下:
createtable:创建一个表。
crate table CUSTOMERS(
ID bigint not null,
NAME varchar(15) not null,
AGE int,
primary key (ID)
);
crate table ORDERS(
ID bigint not null,
ORDER_NUMBER varchar(15) not null,
PRICE double precision,
CUSTOMER_ID bigint,
foreign key(CUSTOMER_ID) references CUSTOMERS(ID)
);
在创建数据库schema时,通常所有表的DDL语句都放在同一个SQL脚本文件中,必须按照先父表后子表的顺序来定义DDL语句。假如表之间的参照关系发生变化,就必须修改DDL语句的顺序,这增加了维护SQL脚本文件的难度。为了解决这一问题,可以采用另一种方式来定义外键。
crate table CUSTOMERS(
ID bigint not null,
NAME varchar(15) not null,
AGE int,
primary key (ID)
);
crate table ORDERS(
ID bigint not null,
ORDER_NUMBER varchar(15) not null,
PRICE double precision,
CUSTOMER_ID bigint,
primary key (ID)
);
alter table ORDERS add constraint FK_CUSTOMER foreign key (CUSTOMER_ID) references CUSTOMERS(ID);
altertable:修改一个表。
droptable:删除一个表,同时删除表中所有记录。
DML数据操纵语言
DML用于向数据库插入、更新或删除数据,这些操作分别对应insert、update和delete语句。
在执行这些语句时,数据库系统先进行数据完整性检查,如果这些语句违反了数据完整性,数据库系统会异常终止执行SQL语句。
DQL数据查询语言
SQL语言的核心就是数据查询语言。查询语句的语法如下:
select 目标列 from 基本表(或视图) [where 条件表达式] [group by 列名1[having 条件表达式]] [order by 列名2[asc|desc]]
简单查询
简单SQL查询语句,其中where子句设定查询条件,order by子句设定查询结果的排序方式。
(1)查询年龄在10到50之间的客户,查询结果先按照年龄降序排列,再按照名字升序排列。
select * from customers where age between 18 and 50 order by age desc,name asc;
(2)查询名字为“Tom”、“Mike”、“Jack”的客户。
select * from customers where name in (‘Tom’,’ Mike’,’ Jack’);
(3)查询姓名的第二个字母是“a”的客户。
select * from customers where name like ‘’_a%’’;
(4)查询年龄为null的客户的名字。
select name from customers where age is null;
注意:不能用表达式age=null来比较age是否为null,因为这个表达式的值既不为true,也不为false,而是永远为null。当where子句的取值为null,select的查询语句的查询结果为空。
(5)在查询语句中为表和字段指定别名:
select name c_name,age c_age from customer c where c.id=1;
连接查询
连接查询的from子句的连接语法格式为:
from talbe1 join_type table2 [on (join_condition)] [where (query_condition)]
table1和talbe2表示参与连接操作的表,table1为左表,table2为右表。on子句设定连接条件,where子句设定查询条件,join_type表示连接类型,可分为3种:
交叉连接(cross join):不带on子句,返回连接表中所有数据行的笛卡儿积。
Select * from customers,orders;
返回两张表中记录数的乘积。若customers中有5条记录,orders表中有7条记录,则结果返回35条记录。
内连接(inner join):返回连接表中符合连接条件及查询条件的数据行。
显式内连接:使用inner join关键字,在on子句中设定连接条件
Select c.id,o.customer_id,c.name,o.id roder_id,order_number from customers c inner join orders o on c.id=o.customer_id;
隐式内连接:不包含inner join关键字和on关键字,在where子句中设定连接条件
Select c.id,o.customer_id,c.name,o.id order_id,order_number from customers c,orders o where c.id=o.customer_id;
外连接:分为左外连接(left outer join)、右外连接(right outer join)。与内连接不同的是,外连接不仅返回连接表中符合连接条件及查询条件的数据行,也返回左表(左外连接时)或右表(右外连接时)中仅符合查询条件但不符合连接条件的数据行。
Select c.id,o.customer_id,c.name,o.id order_id,order_number from customers c left outer join orders o on c.id=o.customer_id;
以上查询语句的查询结果不仅包含符合on连接条件的数据,还包含customers左表中的其他数据行。
子查询
子查询也叫嵌套查询,是指在select子句或者where子句中又嵌入select查询语句,下面举例说明它的用法。
1)查询具有3个以上订单的客户:
select * customers c where c
2)查询名为“Mike”的客户的所有订单
select * from orders o where o.customer_id in (select id form cutomers where name=’Mike’);
3)查询没有订单的客户:
select * from customers c where 0=(select count(*) from order o where c.id=o.customer_id);
或者
select * from customers c where not exists (select * from orders o where c.id=o.customer_id);
4)查询ID为1的客户的姓名、年龄及它的所有订单的总价格:
select name,age,(select sum(price) from orders where customer_id=1) total_price from customers where id=1;
total_price是别名
也可以通过左外连接查询来完成相同的功能:
select name,age,sum(price) from customers c left outer join orders o on c.id=o.customer_id where c.id=1 group by c.id;
如果数据库不支持子查询,可以通过连接查询来完成相同的功能。事实上,所有的子查询语句都可以改写为连接查询语句。
联合查询
联合查询能够合并两条查询语句的查询结果,去掉其中的重复数据行,然后返回没有重复数据行的查询结果。联合查询使用union关键字,例如:
select * from customers where age=24;
报表查询
报表查询对数据行进行分组统计,其语法格式为:
[select …] from … [where…] [ group by … [having… ]] [ order by … ]
其中group by 子句指定按照哪些字段分组,having子句设定分组查询条件。在报表查询中可以使用以下SQL聚集函数。
count():统计记录条数
min():求最小值
max():求最大值
sum():求和
avg():求平均值
用法:
1)按照客户分组,查询每个客户的所有订单的总价格:
select c.id,c.name,sum(price) from customers c left outer join orders o on c.id=o.customer_id group by c.id;
2)按照客户分组,查询每个客户的所有订单的总价格,并且要求订单的总价格大于100:
select c.id,c.name,sum(price) from customers c left outer join orders o on c.id=o.customer_id group by c.id having(sum(price)>100);

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제











동일한 설정으로 너무 오랫동안 작업하거나 다른 사람과 PC를 공유하십시오. 일부 언어 팩이 설치되어 있을 수 있으며 이로 인해 종종 충돌이 발생합니다. 이제 Windows 11에서 원치 않는 표시 언어를 제거해야 할 때입니다. 충돌에 대해 말하면 여러 언어 팩이 있는 경우 실수로 Ctrl+Shift를 누르면 키보드 레이아웃이 변경됩니다. 이를 처리하지 않으면 현재 작업에 방해가 될 수 있습니다. 그럼 바로 방법을 살펴보겠습니다! Windows 11에서 표시 언어를 제거하는 방법은 무엇입니까? 1. 설정에서 +를 눌러 설정 앱을 열고 탐색 창에서 시간 및 언어로 이동한 후 언어 및 지역을 클릭하세요. Windows제거하려는 표시 언어 옆에 있는 줄임표를 클릭하고 팝업 메뉴에서 제거를 선택합니다. "를 클릭하세요.

iPhone이 가장 사용자 친화적인 전자 기기 중 하나라는 사실은 비밀이 아니며, 그 이유 중 하나는 원하는 대로 쉽게 개인화할 수 있다는 것입니다. 개인화에서는 iPhone을 설정할 때 선택한 언어와 다른 언어로 언어를 변경할 수 있습니다. 여러 언어에 익숙하거나 iPhone의 언어 설정이 잘못된 경우 아래 설명에 따라 변경할 수 있습니다. iPhone 언어 변경 방법 [3가지 방법] iOS를 사용하면 사용자가 iPhone에서 선호하는 언어를 자유롭게 전환하여 다양한 요구에 적응할 수 있습니다. Siri와의 상호 작용 언어를 변경하여 음성 지원과의 의사소통을 용이하게 할 수 있습니다. 동시에 로컬 키보드를 사용하면 여러 언어 간을 쉽게 전환하여 입력 효율성을 높일 수 있습니다.

비디오는 오늘날의 소셜 미디어와 인터넷 문화에서 점점 더 중요한 역할을 하고 있으며 Douyin, Kuaishou, Bilibili 등은 수억 명의 사용자에게 인기 있는 플랫폼이 되었습니다. 사용자는 자신의 삶의 순간, 창작물, 흥미로운 순간, 기타 콘텐츠를 동영상을 중심으로 공유하여 다른 사람들과 교류하고 소통합니다. 최근에는 대규모 언어 모델이 인상적인 기능을 보여주었습니다. 대형 모델에 "눈"과 "귀"를 장착하여 비디오를 이해하고 사용자와 상호 작용할 수 있습니까? DAMO 아카데미 연구진은 이러한 문제에서 출발하여 종합적인 시청각 기능을 갖춘 대형 모델인 Video-LLaMA를 제안했습니다. Video-LLaMA는 비디오의 비디오 및 오디오 신호를 인식하고 이해할 수 있으며 오디오 및 비디오를 기반으로 일련의 복잡한 작업을 완료하기 위해 사용자가 입력한 지침을 이해할 수 있습니다.

때로는 컴퓨터 시스템을 설치했는데 시스템이 영어로 되어 있는 경우가 있습니다. 이 경우 컴퓨터 언어를 중국어로 변경해야 합니다. 이제 win10 시스템에서 컴퓨터 언어를 중국어로 변경하는 방법을 알려주세요. . win10에서 컴퓨터 언어를 중국어로 변경하는 방법 1. 컴퓨터를 켜고 왼쪽 하단에 있는 시작 버튼을 클릭합니다. 2. 왼쪽의 설정 옵션을 클릭하세요. 3. 열리는 페이지에서 "시간 및 언어"를 선택합니다. 4. 연 후 왼쪽의 "언어"를 클릭합니다. 5. 여기에서 원하는 컴퓨터 언어를 설정할 수 있습니다.

대규모 모델의 지속적인 최적화를 기반으로 하는 LLM 에이전트(이러한 강력한 알고리즘 엔터티)는 복잡한 다단계 추론 작업을 해결할 수 있는 잠재력을 보여주었습니다. 자연어 처리부터 딥 러닝까지 LLM 에이전트는 인간의 언어를 이해하고 생성할 수 있을 뿐만 아니라 전략을 수립하고 다양한 환경에서 작업을 수행하며 심지어 API 호출 및 코딩을 사용하여 빌드까지 할 수 있어 점차 연구 및 산업의 초점이 되고 있습니다. 솔루션. 이러한 맥락에서 AgentQuest 프레임워크의 도입은 LLM 에이전트의 평가 및 발전을 위한 모듈식 벤치마킹 플랫폼을 제공할 뿐만 아니라 연구원에게 이러한 에이전트의 성능을 추적하고 개선할 수 있는 강력한 도구를 제공합니다. 좀 더 세분화된 수준

지난 2년 동안 전 세계적으로 인기를 얻은 국내 게임의 경우 Genshin Impact가 확실히 선두를 차지했습니다. 지난 5월 발표된 올해 1분기 모바일게임 매출 조사 보고서에 따르면 '원신임팩트'가 5억6700만달러의 절대우위로 카드드로잉 모바일게임 부문 1위를 굳건히 차지했다고 밝혔다. 불과 18년 만에 모바일 플랫폼의 총 수익이 30억 달러(약 RM130억)를 넘어섰습니다. 이제 Xumi가 개장하기 전 마지막 2.8 섬 버전이 기한이 지났습니다. 오랜 드래프트 기간을 거쳐 마침내 새로운 플롯과 플레이할 영역이 생겼습니다. 그런데 '간황제'가 몇 명인지는 모르겠습니다. 이제 섬을 완전히 탐험하고 나니 다시 풀이 자라기 시작했습니다. 총 182개의 보물 상자 + 1개의 모라 상자(포함되지 않음)가 있습니다. 긴 잔디 기간에 대해 걱정할 필요가 없습니다. 아니, 긴 풀밭에서

1. 휴대폰 설정 메뉴에서 [시스템 관리]를 클릭하세요. 2. [언어] 항목을 클릭하세요. 3. 사용하려는 시스템 언어를 선택합니다.

웹 개발에서 PHP의 중요성이 계속 증가함에 따라 PHP 함수 라이브러리 설계는 개발의 주요 문제 중 하나가 되었습니다. 좋은 함수 라이브러리는 개발 효율성을 향상시킬 뿐만 아니라 코드 품질과 유지 관리 가능성도 보장합니다. 따라서 함수 라이브러리를 설계하려면 몇 가지 기본 원칙과 표준을 따라야 합니다. 1. 재사용성이 좋은 함수 라이브러리는 재사용이 가능해야 하며 다양한 프로젝트에서 사용할 수 있어야 합니다. 따라서 기능은 추상적이고 일반적이어야 하며 특정 프로젝트나 시나리오에 묶일 수 없습니다. 2. 사용 용이성 함수 라이브러리는 사용하기 쉽고 매개변수를 전달해야 합니다.
