Rumah pangkalan data tutorial mysql 标准SQL语言的用法_MySQL

标准SQL语言的用法_MySQL

May 27, 2016 pm 07:11 PM
standard bahasa

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);

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Tetapan grafik terbaik
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Cara Memperbaiki Audio Jika anda tidak dapat mendengar sesiapa
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Cara Mengalih Keluar sepenuhnya Bahasa Paparan yang Tidak Diingini pada Windows 11 Cara Mengalih Keluar sepenuhnya Bahasa Paparan yang Tidak Diingini pada Windows 11 Sep 24, 2023 pm 04:25 PM

Bekerja pada persediaan yang sama terlalu lama atau kongsi PC anda dengan orang lain. Anda mungkin memasang beberapa pek bahasa, yang sering menimbulkan konflik. Jadi, sudah tiba masanya untuk mengalih keluar bahasa paparan yang tidak diingini dalam Windows 11. Bercakap tentang konflik, apabila terdapat berbilang pek bahasa, secara tidak sengaja menekan Ctrl+Shift mengubah reka letak papan kekunci. Jika tidak diuruskan, ini boleh menjadi penghalang kepada tugas yang sedang dijalankan. Jadi, mari kita beralih terus ke kaedah! Bagaimana untuk mengalih keluar bahasa paparan dari Windows 11? 1. Dari Tetapan tekan + untuk membuka aplikasi Tetapan, pergi ke Masa & Bahasa daripada anak tetingkap navigasi dan klik pada Bahasa & Wilayah. WindowsSaya klik elipsis di sebelah bahasa paparan yang anda mahu alih keluar dan pilih Alih keluar daripada menu timbul. klik "

3 Cara Menukar Bahasa pada iPhone 3 Cara Menukar Bahasa pada iPhone Feb 02, 2024 pm 04:12 PM

Bukan rahsia lagi bahawa iPhone adalah salah satu alat elektronik yang paling mesra pengguna, dan salah satu sebabnya ialah ia boleh diperibadikan dengan mudah mengikut keinginan anda. Dalam Pemperibadian, anda boleh menukar bahasa kepada bahasa yang berbeza daripada bahasa yang anda pilih semasa menyediakan iPhone anda. Jika anda biasa dengan berbilang bahasa, atau tetapan bahasa iPhone anda salah, anda boleh menukarnya seperti yang kami terangkan di bawah. Cara Menukar Bahasa iPhone [3 Kaedah] iOS membenarkan pengguna menukar bahasa pilihan pada iPhone secara bebas untuk menyesuaikan diri dengan keperluan yang berbeza. Anda boleh menukar bahasa interaksi dengan Siri untuk memudahkan komunikasi dengan pembantu suara. Pada masa yang sama, apabila menggunakan papan kekunci tempatan, anda boleh bertukar antara berbilang bahasa dengan mudah untuk meningkatkan kecekapan input.

Menambah keupayaan audio-visual yang komprehensif pada model bahasa yang besar, DAMO Academy membuka sumber Video-LLaMA Menambah keupayaan audio-visual yang komprehensif pada model bahasa yang besar, DAMO Academy membuka sumber Video-LLaMA Jun 09, 2023 pm 09:28 PM

Video memainkan peranan yang semakin penting dalam media sosial dan budaya Internet masa kini Douyin, Kuaishou, Bilibili, dll. telah menjadi platform popular untuk ratusan juta pengguna. Pengguna berkongsi detik hidup mereka, karya kreatif, detik menarik dan kandungan lain di sekitar video untuk berinteraksi dan berkomunikasi dengan orang lain. Baru-baru ini, model bahasa yang besar telah menunjukkan keupayaan yang mengagumkan. Bolehkah kita melengkapkan model besar dengan "mata" dan "telinga" supaya mereka boleh memahami video dan berinteraksi dengan pengguna? Bermula daripada masalah ini, penyelidik dari Akademi DAMO mencadangkan Video-LLaMA, model besar dengan keupayaan audio-visual yang komprehensif. Video-LLaMA boleh melihat dan memahami isyarat video dan audio dalam video, dan boleh memahami arahan input oleh pengguna untuk menyelesaikan satu siri tugasan kompleks berdasarkan audio dan video,

Bagaimana untuk menetapkan bahasa komputer Win10 kepada bahasa Cina? Bagaimana untuk menetapkan bahasa komputer Win10 kepada bahasa Cina? Jan 05, 2024 pm 06:51 PM

Kadang-kadang kita hanya memasang sistem komputer dan mendapati bahawa sistem itu dalam bahasa Inggeris Dalam kes ini, kita perlu menukar bahasa komputer kepada bahasa Cina Jadi bagaimana untuk menukar bahasa komputer ke bahasa Cina dalam sistem win10 . Cara menukar bahasa komputer dalam win10 kepada bahasa Cina 1. Hidupkan komputer dan klik butang mula di sudut kiri bawah. 2. Klik pilihan tetapan di sebelah kiri. 3. Pilih "Masa dan Bahasa" pada halaman yang terbuka 4. Selepas membuka, klik "Bahasa" di sebelah kiri 5. Di sini anda boleh menetapkan bahasa komputer yang anda mahu.

Anda boleh bermain Genshin Impact hanya dengan menggerakkan mulut anda! Gunakan AI untuk menukar watak dan menyerang musuh: 'Ayaka, gunakan Kamiri-ryu Frost Destruction' Anda boleh bermain Genshin Impact hanya dengan menggerakkan mulut anda! Gunakan AI untuk menukar watak dan menyerang musuh: 'Ayaka, gunakan Kamiri-ryu Frost Destruction' May 13, 2023 pm 07:52 PM

Apabila bercakap mengenai permainan domestik yang telah menjadi popular di seluruh dunia sejak dua tahun lalu, Genshin Impact pasti mengambil bahagian dalam kek itu. Menurut laporan tinjauan hasil permainan mudah alih suku pertama tahun ini yang dikeluarkan pada bulan Mei, "Genshin Impact" dengan kukuh memenangi tempat pertama di kalangan permainan mudah alih pengeluaran kad dengan kelebihan mutlak sebanyak 567 juta dolar AS. Ini juga mengumumkan bahawa "Genshin Impact" telah dalam talian hanya dalam tempoh 18 tahun Beberapa bulan kemudian, jumlah pendapatan daripada platform mudah alih sahaja melebihi AS$3 bilion (kira-kira RM13 bilion). Kini, versi pulau 2.8 terakhir sebelum pembukaan Xumi sudah lama tertangguh Selepas tempoh draf yang panjang, akhirnya terdapat plot dan kawasan baharu untuk dimainkan. Tetapi saya tidak tahu berapa banyak "Maharaja Hati" yang ada Sekarang pulau itu telah diterokai sepenuhnya, rumput telah mula tumbuh semula. Terdapat sejumlah 182 peti harta karun + 1 kotak Mora (tidak termasuk). Tidak, semasa rumput panjang

Meneroka sempadan ejen: AgentQuest, rangka kerja penanda aras modular untuk mengukur dan meningkatkan prestasi ejen model bahasa besar secara menyeluruh Meneroka sempadan ejen: AgentQuest, rangka kerja penanda aras modular untuk mengukur dan meningkatkan prestasi ejen model bahasa besar secara menyeluruh Apr 11, 2024 pm 08:52 PM

Berdasarkan pengoptimuman berterusan model besar, ejen LLM - entiti algoritma yang berkuasa ini telah menunjukkan potensi untuk menyelesaikan tugas penaakulan pelbagai langkah yang kompleks. Daripada pemprosesan bahasa semula jadi kepada pembelajaran mendalam, ejen LLM secara beransur-ansur menjadi tumpuan penyelidikan dan industri Mereka bukan sahaja dapat memahami dan menjana bahasa manusia, tetapi juga merumuskan strategi, melaksanakan tugas dalam persekitaran yang pelbagai, dan juga menggunakan panggilan API dan pengekodan untuk Membina. penyelesaian. Dalam konteks ini, pengenalan rangka kerja AgentQuest merupakan satu peristiwa penting Ia bukan sahaja menyediakan platform penanda aras modular untuk penilaian dan kemajuan ejen LLM, tetapi juga menyediakan penyelidik dengan alat yang Berkuasa untuk menjejak dan meningkatkan prestasi ejen ini pada masa yang tertentu. tahap yang lebih berbutir

Bagaimana untuk menukar paparan bahasa kaedah tetapan bahasa sistem vivox60pro vivox60pro Bagaimana untuk menukar paparan bahasa kaedah tetapan bahasa sistem vivox60pro vivox60pro Mar 23, 2024 am 09:06 AM

1. Klik [Pengurusan Sistem] dalam menu tetapan telefon. 2. Klik pilihan [Bahasa]. 3. Pilih bahasa sistem yang anda ingin gunakan.

Prinsip dan piawaian untuk reka bentuk perpustakaan fungsi PHP Prinsip dan piawaian untuk reka bentuk perpustakaan fungsi PHP Jun 16, 2023 am 11:37 AM

Memandangkan kepentingan PHP dalam pembangunan Web terus meningkat, reka bentuk perpustakaan fungsi PHP telah menjadi salah satu isu utama dalam pembangunan. Perpustakaan fungsi yang baik bukan sahaja dapat meningkatkan kecekapan pembangunan, tetapi juga memastikan kualiti dan kebolehselenggaraan kod. Oleh itu, mereka bentuk perpustakaan fungsi perlu mengikut beberapa prinsip dan piawaian asas. 1. Perpustakaan fungsi dengan kebolehgunaan semula yang baik harus boleh diguna semula dan boleh digunakan dalam projek yang berbeza. Oleh itu, fungsi hendaklah abstrak dan umum dan tidak boleh terikat dengan projek atau senario tertentu. 2. Kemudahan penggunaan Pustaka fungsi hendaklah mudah digunakan dan lulus parameter

See all articles