SQL语句简单语法
SQL语句基本的四大元素(增,删,改,查) 插入数据 语法:INSERT INTO 表名(字段1,字段2,...)VALUES(值1,值2,...) 其中,INTO可选. 例如:将姓名张三学号s2t14年龄22插入到stuInfo表中的stuName,stuNo,stuAge这三个字段中。 INSERT INTO stuInfo (stuName,stuNo,st
SQL语句基本的四大元素(增,删,改,查) 插入数据
语法:INSERT INTO 表名(字段1,字段2,...)VALUES(值1,值2,...)
其中,INTO可选.
例如:将姓名‘张三’学号‘s2t14’年龄22插入到stuInfo表中的stuName,stuNo,stuAge这三个字段中。
INSERT INTO stuInfo (stuName,stuNo,stuAge) VALUES ('张三','s2t14',22)
插入多行数据
1.通过INSERT SELECT语句将现有表中的数据添加到新表
语法:INSERT INTO 新表名(字段1,字段2,...)SELECT 字段1,字段2,... FROM 原表名
例如:INSERT INTO TongXunLu(‘Name’,‘Address’,‘Email’)SELECT SName,SAddress,SEmail FROM Students
2.通过SELECT INTO语句将现有表中的数据添加到新表
语法:SELECT 表名.字段1,表名.字段2,... INTO 新表名 FROM 原表名
例如:SELECT Students.SName,Students.SAddress,Students.SMail INTO TongXunLu FROM Students
因为标识列的数据是不允许指定的,因此我们可以创建一个新的标识列
语法:SELECT IDENTITY (数据类型,标识种子,标识增长量) AS 列名 INTO 新表名 FROM 原表名
例如:SELECT Students.SName,Students.SAddress,Students.SMail,IDENTITY(int,1,1)AS StudentsID INTO TongXunLu FROM Students
3.通过UNION关键字合并数据进行插入
UNION语句用于将两个不同数据或查询结果组合的一个新的结果集,当然,不同的数据或查询结果,也要求数据个数、顺序、数据类型都一致,因此,当向表中重复插入多次数据的时候,可以使用SELECCT...UNION来简化操作。
例如:INSERT Students(SName,SGrade,SSex)
SELECT '女生1',7,0 UNION
SELECT '女生2',7,0 UNION
SELECT '女生3',7,0 UNION
SELECT '女生4',7,0 UNION
SELECT '女生5',7,0 UNION
SELECT '男生1',7,1 UNION
SELECT '男生2',7,1 UNION
SELECT '男生3',7,1 UNION
SELECT '男生4',7,1 删除数据
语法:DELETE FROM 表名 WHERE (条件)
例如:删除stuInfo表中年龄小于20岁的学生。
DELETE FROM stuInfo WHERE stuAge
TRUNCATE TABLE用来删除表中所有行的命令,功能上它类似于没有WHERE子句的DELETE语句。
例如:要删除学员信息表中的所有记录行,可以使用。
TRUNCATE TABLE Students
提示:TRUNCATE TABLE 删除表中的所有行,但是表的结构、列、约束、索引等不会被改动。TRUNCATE TABLE不能用于有外键约束引用的表,这种情况下,需要使用DELETE语句。 修改数据
语法:UPDATE 表名 SET 字段1=值1,字段2=值2,... WHERE (条件)
例如:将stuInfo表中姓名是张三的学生年龄修改为25岁。
UPDATE stuInfo SEF stuAge = 25 WHERE stuName = '张三'
还可以通过表达式来更新数据。
例如:需要在成绩表中更新成绩,所有低于85分的都在原来的基础上加5分,更新的SQL语句如下。
UPDATE Scores SET Scores =Scores + 5 WHERE Scores
1.查询所有的数据行和列
把表中所有数据行和列到列举出来需要使用“*”通配符来表示所有的列。
例如:查询Students表中的所有数据。
SELECT * FROM Students
2.条件查询
语法:SELECT 字段1,字段2,...FROM 表名
例如:查询stuInfo表中所有学生的姓名(stuName)和年龄(stuAge)两个字段。
SELECT stuName,stuAge FROM stuInfo
3.在查询中使用列名
AS子句可以用来改变结果集列的名称,还有一种情况是要让标题列的信息更易懂。
例如:把SCode列名查询后显示为“学员编号”
SELECT SCode AS 学员编号,SName AS 学员姓名 FROM Students
还有一种情况是使用计算、合并得到新列的命名。
例如:在查询Employees表中的数据时,需要把FirstName和LastName字段合并成一个叫“姓名”的字段。
SELECT FirstName+'.'+LastName AS '姓名'FROM Employees 或者
SELECT '姓名'= FirstName+'.'+LastName FROM Employees
4.查询空行
在SQL语句中采用“IS NULL”或者“IS NOT NULL”来判断是否为空行。
例如:要查询学员信息表中没有填写Email信息的学员,可以使用以下查询语句。
SELECT SName FROM Students WHERE SEmail IS NULL
5.在查询中使用常量列
有的时候,一些常量的缺省信息需要添加到查询输出中,以方便统计或计算。
例如:查询学员信息的时候,学校名称统一都是“河北新龙”,查询输出的语句为。
SELECT 姓名=SName,地址=SAddress,'河北新龙' AS 学校名称 FROM Students
6.查询返回限制的行数
例如:在测试的时候,如果数据库中有上万条记录,而只要检查前面十行数据是否有效。
SELECT TOP 10 SName,SAddress FROM Students WHERE SSex = 0 查询排序
如果需要按照一定的顺序排列查询语句选中的行,需要使用ORDER BY子句,并且排序可以是升序(ASC)或者降序(DESC)。如果不指定ASC或者DESC,缺省记录集按ASC升序排序。上面讲述的SQL语句都可以在其后面加上ORDER BY来进行排序。
例如:查询学员成绩的时候,如果把所有成绩都降低10%后加5分,再按照及格成绩的高低来进行排列。
SELECT StudentID AS 学员编号,(Score*0.9+5)AS 综合成绩 FROM Score WHERE (Score*0.9+5)>60 ORDER BY Score
还可以按照多个字段进行排序。
例如:要在学员成绩的基础上,再按照课程ID进行排序的语句如下。
SELECT StudentID AS 学员编号,Score AS 成绩 FROM Score WHERE Score>60 ORDER BY Score,CourseID
特殊排序
在数据库表中有以下字符数据,如:
13-1、13-10、13-100、13-108、14-3、14-1、13-18
现在希望通过SQL语句进行排序,并且首先要按照前半部分的数字进行排序,然后再按照后半部分的数字进行排序,输出要排成这样:13-1、13-10、13-18、13-100、13-108、14-1、14-3
数据库表名:SellRecord;字段名:ListNumber
分析:
这是查询语句,需要使用SELECT语句,,需要用到ORDER BY进行排序,并重新计算出排序的数字来。
前半部分的数字,可以从先找到“-”符号的位置,然后取其左半部分,最后再使用Convert函数将其转换为数字。
Convert(int,Left(ListNumber,CharIndex('-',ListNumber)-1))
后半部分的数字,可以先找到“-”符号的位置,然后把从第一个位置到该位置的全部字符替换为空格,最后再使用Convert函数将其转换为数字。
Convert(int,Stuff(ListNumber,1,Charindex('-',ListNumber),''))
完整的T-SQL语句是:
SELECT ListNumber
FROM SellRecord
ORDER BY Convert(int,Left(ListNumber,CharIndex('-',ListNumber)-1)),Convert(int,Stuff(ListNumber,1,Charindex('-',ListNumber),''))
使用LIKE进行模糊查询
LIKE运算符用于匹配字符串或字符串的一部分(称为子串),由于该运算符只用于字符串,所以仅与Char或Varchar数据类型联合使用。
在数据更新、删除或者查询的时候,依然可以使用LIKE关键字来进行匹配查找,例如:
SELECT * FROM Students WHERE SName LIKE '张%'
使用BETWEEN在某个范围内进行查询
使用关键字BETWEEN可以查找那些介于两个已知值之间的一组未知值。要实现这种查找必须知道开始查找的初值和终值,这个最大值和最小值用单词AND分开,例如:
SELECT * FROM SCore WHERE Score BETWEEN 60 AND 80
此外,BETWEEN查询日期范围的时候使用得比较多,例如:查询不在1992年8月1号到1993年8月1号之间订购的读书列表。
SELECT * FROM Sales WHERE ord_date NOT BETWEEN '1992-8-1' AND '1993-8-1'
提示:使用NOT来对限制条件“取反”操作
使用IN在列举值内进行查询
查询的值是指定的某些值之一,可以使用带列举值的IN关键字来进行查询。
例如:列举值放在圆括号里,用逗号分开。
SELECT SName AS 学员姓名 FROM Students WHERE SAddress IN ('北京','广州','上海') ORDER BY SAddress SQL Server中的聚合函数
在查询中还会经常碰到的要求是取某些列的最大值、最小值、平均值等信息,有时候还需要计算出究竟查询到多少行数据项。这个时候就可以使用聚合函数了,聚合函数能够基于列进行计算,并返回单个值。
SQL Server提供了以下几个聚合函数:
1.SUM
SUM返回表达式中所有数值的总和,它只能用于数字类型的列。
例如:在Pubs数据库中,要得到商务付款的总数,执行以下查询语句。
SELECT SUM(ytd_sales) FROM titles WHERE type = 'business'
注意:这种查询只返回一个数值,因此,不能够直接与可能返回多行的列一起使用来进行查询。
2.AVG
AVG函数返回表达式中所有数值的平均值,也只能用于数字类型的列。
例如:要查询及格线以上的学员的平均成绩。
SELECT AVG(SCore) AS 平均成绩 FROM Score WHERE Score >=60
3.MAX和MIN
MAX返回表达式中的最大值,MIN返回表达式的最小值,它们都可以用于数字型、字符型以及日期/时间类型的列。
例如:查询平均成绩、最高分、最低分的语句如下。
SELECT AVG(SCore) AS 平均成绩,MAX(Score) AS 最高分,MIN(Score) AS 最低分 FROM Score WHERE Score >=60
4.COUNT
COUNT返回提供的表达式中非空值的计数,COUNT可以用于数字和字符类型的列。
例如:查询及格人数的语句如下。
SELECT COUNT(*) AS 及格人数 FROM Score WHERE Score >= 60 分组查询
使用Group By进行分组查询
成绩表中存储了所有课程的成绩,在这种情况下,可能就需要统计不同课程的平均成绩。也就是说,需要对不同的成绩首先按照课程来进行分组,分组以后再进行聚合计算,得到累计信息。
采用分组查询实现的SQL语句如下:
SELECT CourseID, AVG(Score) AS 课程平均成绩 FROM Score GROUP BY CourseID
使用HAVING子句进行分组筛选

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック











ハードディスクのシリアル番号はハードディスクの重要な識別子であり、通常、ハードディスクを一意に識別し、ハードウェアを識別するために使用されます。場合によっては、オペレーティング システムのインストール時、正しいデバイス ドライバーの検索時、ハード ドライブの修復の実行時など、ハード ドライブのシリアル番号を照会する必要があることがあります。この記事では、ハードドライブのシリアル番号を確認する簡単な方法をいくつか紹介します。方法 1: Windows コマンド プロンプトを使用してコマンド プロンプトを開きます。 Windows システムでは、Win+R キーを押し、「cmd」と入力し、Enter キーを押してコマンドを開きます。

PHP による簡単なオンライン予約システムの作成方法 インターネットの普及とユーザーの利便性の追求により、オンライン予約システムはますます普及しています。レストラン、病院、美容室、その他のサービス業であっても、シンプルなオンライン予約システムにより効率が向上し、ユーザーにより良いサービス体験を提供できます。この記事では、PHP を使用して簡単なオンライン予約システムを作成する方法と、具体的なコード例を紹介します。データベースとテーブルの作成 まず、予約情報を保存するデータベースを作成する必要があります。 MySで

Java を使用して簡単な生徒の成績レポート ジェネレーターを作成するにはどうすればよいですか? Student Performance Report Generator は、教師または教育者が生徒の成績レポートを迅速に作成するのに役立つツールです。この記事では、Java を使用して簡単な生徒の成績レポート ジェネレーターを作成する方法を紹介します。まず、学生オブジェクトと学生成績オブジェクトを定義する必要があります。学生オブジェクトには学生の名前や学生番号などの基本情報が含まれ、学生スコア オブジェクトには学生の科目のスコアや平均成績などの情報が含まれます。以下は、単純な Student オブジェクトの定義です。

クイック スタート: Go 言語関数を使用したシンプルなライブラリ管理システムの実装 はじめに: コンピューター サイエンスの分野の継続的な発展に伴い、ソフトウェア アプリケーションのニーズはますます多様化しています。図書館管理システムは、共通の管理ツールとして、多くの図書館、学校、企業にとって必要なシステムの 1 つとなっています。この記事では、Go 言語の関数を使用して、簡単なライブラリ管理システムを実装します。この例を通じて、読者は Go 言語の関数の基本的な使い方と実践的なプログラムの構築方法を学ぶことができます。 1. デザインアイデア: まずはやってみましょう

PHP を使用して単純なファイル管理機能を開発する方法の紹介: ファイル管理機能は、多くの Web アプリケーションの重要な部分です。ユーザーはファイルをアップロード、ダウンロード、削除、表示できるため、ファイルを管理する便利な方法が提供されます。この記事では、PHP を使用して簡単なファイル管理機能を開発する方法と具体的なコード例を紹介します。 1. プロジェクトを作成する まず、基本的な PHP プロジェクトを作成する必要があります。プロジェクト ディレクトリに次のファイルを作成します:index.php: アップロード テーブルを表示するために使用されるメイン ページ

C++ で簡単な音楽レコメンデーション システムを作成するにはどうすればよいですか?はじめに: 音楽推薦システムは、現代の情報技術における研究のホットスポットであり、ユーザーの音楽の好みや行動習慣に基づいて曲を推薦できます。この記事では、C++ を使用して簡単な音楽レコメンデーション システムを作成する方法を紹介します。 1. ユーザーデータを収集する まず、ユーザーの音楽嗜好データを収集する必要があります。さまざまな種類の音楽に対するユーザーの好みは、オンライン調査やアンケートなどを通じて取得できます。データをテキスト ファイルまたはデータベースに保存する

シンプルな電卓は、「+」、「-」、「*」、「/」などの基本的な演算を実行する電卓です。電卓は基本的な操作を素早く実行できます。 switch ステートメントを使用して計算機を作成します。例 演算子-「+」=>34+324=358演算子-「-」=>3874-324=3550演算子-「*」=>76*24=1824O

ラムダ式は名前のない匿名関数であり、その構文は (parameter_list)->expression です。匿名性、多様性、カリー化、閉鎖性が特徴です。実際のアプリケーションでは、ラムダ式を使用して、合計関数 sum_lambda=lambdax,y:x+y などの関数を簡潔に定義し、map() 関数をリストに適用して合計演算を実行できます。
