SQL Server de l'entrée au maître (D)

Aujourd'hui Azhu nous conduire officiellement entrés dans la quatrième étape de l' apprentissage
à la sélection de
SQL Server de l' entrée au maître (a)
SQL Server (b) Mastering
SQL Server (b) de façon succincte Mastering
SQL Server à partir de l'introduction compétents (c)
répertoire
traitement des requêtes et des données de table d' édition
des données de requête
  1. requête simple
  2. statistiques
  3. requêtes de jointure
  4. sous - requêtes
  5. d'enquête commune
II, édition des données
  1. Insérez des données
  2. Modifier les données de
  suppression données

traitement de requête et les données de table d'édition

Tout d'abord, les données de requête

1. Requête simple

grammaire

    SELECT 目标表达式 
    FROM 表名

(1) La requête spécifie la colonne

      SELECT  姓名
      FROM 项目表

(2) Recherche colonnes
Note: * exprimées par toutes les colonnes, toutes les colonnes de la table dans l'ordre de la table l' ensemble de la sortie

      SELECT *
      FROM 项目表

(3) calculer la requête de colonne
peut vérifier après certains résultats de calcul de propriétés sont énumérées

      SELECT 姓名,累计学分,累计学分-累计学分*0.1
      FROM 学生表

(4) alias de colonne
    1. comme mot clé
    2. = connecter

       SELECT   姓名 AS name,累计学分 AS Ogpa,Ngpa=累计学分-累计学分*0.1
       FROM 学生表

Remarque: Lorsque la colonne alias espaces utilisez des guillemets simples

       SELECT  姓名 AS '学生表  NAME'
       FROM 学生表

(5) Utilisez le mot-clé DISTINCT pour éliminer tuples double

       SELECT DISTINCT 所在院系,专业
       FROM 学生表

Note: Cette double supprime
DISTINCT champ mot-clé de sa liste complète des requêtes

2. Interrogez tuples satisfaisant à la condition
avec WHERE la requête
requête retourne TRUE (vrai), FALSE (faux), UNKNOWN (inconnu)
NOT, AND, opération logique OU trois tables

NE PAS résultat
T F
F T
la la
ET T F la
T T F la
F F F F
la la F la
OU T F la
T T T T
F T F la
la T la la

requête commune

question Opérateur (0) Conditions Format (expressions logiques) remarque
Comparaison de la taille =,>, <,> =, <=,! = ,,!>, <! op1op 2 opérateur binaire
Déterminer la portée [NOT] ENTRE ET 0P1 [NOT] ENTRE op2 ET op 3 Trois opérations de tête
La détermination d'un ensemble [PAS DEDANS 1 [NOT] IN 2 opérateur binaire
match de cordes [PAS COMME 1 [NOT] LIKE 2 opérateur binaire
nul EST NON NULLE sur IS [NOT] NULL unaire
plusieurs conditions NON, ET, OU, () NO jusqu'à OP1 ET 2, 2 opi1OR NOT est un opérateur binaire unaire, le reste, entre parenthèses sont utilisés pour modifier la priorité de l'opération

Comparer la taille
(1) une requête pour tous les étudiants de Hangzhou

  SELECT *
  FROM 学生表
  WHERE 籍贯='杭州'

(2) le nom de l'étudiant dans les crédits accumulés de la requête de 160 ou moins et les crédits accumulés

    SELECT 姓名,累计学分
    FROM 学生表
    WHERE 累计学分<160

Déterminer la portée de
la définition

   op1 [NOT] BETWEEN op2 AND op3

Signification: la condition est vraie ou fausse est pas si entre OP1 et OP2 OP3
requête noms des étudiants de crédit cumulés entre 150 et 159 et les crédits accumulés

   SELECT 学号,姓名
   FROM 学生表
   WHERE 累计学分  BETWEEN 150 AND 159

La détermination d' un ensemble de
syntaxe pour IN
requête (non) de Hangzhou, Datong, numéro d'étudiant Taiyuan et le nom

SELECT 学号,姓名
FROM 学生表
WHERE 籍贯 (NOT) IN (‘杭州’,‘大同’,‘太原’)

Après deux enquêtes numéro d'étudiant est 09, égal ou numéro d'étudiant deux a été parmi le premier numéro deux ou étudiant et le nom

SELECT 学号,姓名
FROM 学生表
WHERE SUMBSTRING (学号,6,2)IN (‘09’,SUMBSTRING(学号,2,2),SUMBSTRING(学号,4,2))

Note: SUMBSTRING (s, p, c) le sens du retour à partir de la chaîne p-ième chaîne de sous-chaînes c
correspondant String
syntaxe de type
caractères spéciaux:

% Correspondant à la chaîne d'une longueur quelconque (longueur peut être 0)
_ Un caractère unique
[... C1C2 cn] , C2 ... cn, dans un caractère correspondant c1. Quand c1, c2, ... cn, temps continu simplifié à [c1-cn]
[^ C1C2 ... .cn] En plus de correspondre c1, c2 ... cn, un caractère extérieur. Quand c1, c2, ... cn, temps continu simplifié à [^ c1-cn]

Exemple
nom de la requête dans le second mot est « Peng » , le nombre d'étudiants et le nom

 SELECT 学号,姓名
 FROM 学生表
 WHERE 姓名LIKE ‘_鹏%’

longueur de requête ID étudiant est pas égal à 7 ou six contiennent des caractères non numériques après le nombre d'étudiants du numéro d'étudiant et le nom

  SELECT 学号,姓名
  FROM 学生表
  WHERE 学号NOT LINK'S[0-9][0-9][0-9][0-9][0-9][0-9]'

Découvrez la carte d'étudiant est ni le dernier ni le 1 9 3 ni le nombre d'étudiants et le nom

  SELECT 学号,姓名
  FROM 学生表
  WHERE 学号 LINK '%[^139]'

Pour trouver le nom du cours d'information sur les cours « DB_ » le début de la note _ qui est juste une ordinaire, utilisez maintenant ESCAPE

select*
from 课程表
where课名 LINK'DB\_%' ESCAPE '\'

Le ESCAPE « représente phrase » « est le caractère d'échappement, de sorte que la chaîne de motif immédiatement » \ « derrière le personnage » « n'a pas le sens générique, et dans une échappée normale » caractère »

Impliquant requête null
syntaxe IS NOT NULL

Il y a des dizaines de demandes de renseignements des étudiants numéro d'identification et le début

 SELECT 学号,开课号
 FROM 选课表
 WHERE  成绩 IS NOT NULL

Remarque: IS = pas être utilisé au lieu de, NE pas! = Et <> au lieu de

requête multicritères
OU ET NON PAS OU ET NON PAS priorité décroissante
ces garçons requêtes, les trois premiers est son numéro de téléphone « 130 » de son ou Ningbi Hangzhou ni il se spécialise dans le commerce, ni l' information étudiée gestion

    SELECT*
    FROM 学生表
    WHERE 性别=‘男’AND SUBSTRING(移动电话,1,3)=‘130’AND(籍贯=‘杭州’ OR 籍贯=‘宁波’)AND NOT 专业 IN (‘电子商务’,‘信息管理’)

3. Trier les résultats de la requête
Syntaxe: Oeder PAR

    SELECT 学号
    FROM 选课表
    WHERE 开课号=‘000100’
    ORDER BY 成绩 DESE,成绩+10

Requêtes numéro de début élective « 000100 » au cours du numéro d'étudiant, le score, le score et le score de 10 points pour le nouveau poste, les résultats de la requête dans l'ordre décroissant en fonction des résultats originaux, selon les nouveaux résultats dans l'ordre croissant
Note: DESE descendante, ne pas écrire Mo est toujours croissant

2. Statistiques

1. fonctions les plus courantes statistiques

Fonction Format fonction fonction
COUNT ([DISTINCT] *) Compter le nombre de tuples
COUNT ([DISTINCT] <expression de colonne>) Les statistiques du nombre de valeurs
SOMME somme de la colonne calcul des expressions numériques
AVG expression de calcul de la moyenne des colonnes numériques
MAX Recherche de l'expression maximale de la colonne
MIN Minimisation des expressions de colonne

Toutes les demandes manuels prix total et le prix moyen et le prix total et le prix moyen après le jeu Qizhe

SELECT SUM(定价) AS 原总价,AVG(定价),SUM(定价*0.7)折扣总价,折扣均价=AVG(定价*0.7)
FROM (课程表)

COUNT (*) utilisé pour compter le nombre de tuples satisfaisant à la condition
numéro de cours de requêtes est le nombre total de cours les deux premiers chiffres « 02 »

SELECT COUNT (*)
FROM 课程表
WHERE 课号 LINK 'C02%'

2. demande du Groupe
(1) clause GROUP BY à groupe

 SELECT 开课号,COUNT (学号)
 FROM 选课表
 GROUP BY 开课号

具有相同开课号的元组被分为一组
(2)HAVING短语来帅选

3.连接查询

在列名前+<.表名>作为限定
查询学生表的基本信息及选课信息

 SELECT 学生表.*,开课号,成绩
 FROM 学生表 AS A,选课表AS B
 WHERE 学生表.学号=选课表.学号

使用JOIN ON 关键字
JOIN 用于连接两张表,ON给出两张表的连接条件
查询至少选修了学号为‘S060110’的学生所选一门课程的学生学号和姓名

  SELECT DISTINCT Z.学号, 姓名
  FROM  选课表 X  JOIN  选课表 Y  ON  Y.学号!=X.学号  AND  Y.开课号=x.开课号  
      JOIN  学生表Z  ON  Y.学号=Z.学号
  WHEREx.学号='S060110'

外连接
左外连接:将左边关系中未用到的列加到结果集把=改为"*=”,或者JOIN 改为LEFT OUTER JOIN
右外连接:将右边关系中未用到的列加到结果集把=改为"=*”,或者JOIN 改为RIGHT OUTER JOIN
全外连接:将左右关系全部连接,将JOIN改为FULL OUTER JOIN

查询学生的学号、姓名、籍贯信息及选课信息
(1)左外连接

SELECT学生表.学号, 姓名,籍贯,开课号,成绩
FROM学生表, 选课表
WHERE 学生表.学号*=选课表.学号

(2)右外连接

  SELECT学生表.学号, 姓名, 籍贯, 开课号, 成绩
  FROM  学生表  RIGHT OUTER JOIN  选课表  ON  学生表.学号=选课表.学号

(3)全外连接

SELECT 学生表.学号, 姓名, 籍贯, 开课号, 成绩
FROM 学生表 FULL  OUTER  JOIN  选课表  ON  学生表.学号=选课表.学号

4.子查询

嵌套SELECT语句叫子查询,一个 SELECT 语句的查询结果能够作为另一个语句的输入值。
子查询不但能够出现在Where子句中,也能够出现在from子句中,作为一个临时表使用,也能够出现在select list中,作为一个字段值来返回。

1、单行子查询 :单行子查询是指子查询的返回结果只有一行数据。当主查询语句的条件语句中引用子查询结果时可用单行比较符号(=, >, <, >=, <=, <>)来进行比较。

例:

 select ename,deptno,sal 
 from emp 
 where deptno=(select deptno from dept where loc='NEW YORK'); 

2、多行子查询:多行子查询即是子查询的返回结果是多行数据。当主查询语句的条件语句中引用子查询结果时必须用多行比较符号(IN,ALL,ANY)来进行比较。
IN的含义是匹配子查询结果中的任一个值即可(“IN” 操作符,能够测试某个值是否在一个列表中),ALL则必须要符合子查询的所有值才可,ANY要符合子查询结果的任何一个值即可

注意ALL 和ANY 操作符不能单独使用,而只能与单行比较符(=、>、< 、>= 、<= 、<>)结合使用。

例:1、单行子查询

select ename,deptno,sal
from emp
where deptno=(select deptno
                                  from dept 
                                  where loc='NEW YORK');

2、多行子查询

SELECT ename,job,sal
FROM EMP
WHERE deptno in ( SELECT deptno
                                                FROM dept 
                                                WHERE dname LIKE 'A%');

3、多列子查询

 SELECT deptno,ename,job,sal
 FROM EMP
 WHERE (deptno,sal) IN (SELECT deptno,MAX(sal) FROM EMP GROUP BY deptno);

5.联合查询

UNION将多个查询结果合并起来,个结果表的列数相同
查询计算机专业和信息管理专业的学生信息。

  SELECT*
  FROM 学生表
  WHERE 专业='计算机'
   UNION
   SELECT
   FROM  学生表
   WHERE 专业='信息管理'

二、表数据编辑

插入数据
1.插入单个元组
2.插入子查询结果
3.使用SELECT …INTO语句进行数据插入
修改数据
语法

UPDATE <表名>
SET<列名>=<表达式>[,....n]

UPDATE语句用来修改指定表中满足WHERE条件的元组,用SET子句中的值取代响应的值

修改表中所有行
将学生的累计学分增加3分

 UPDATE 学生表
 SET 累计学分=累计学分+3

修改某些行
将计算机专业所有女上的籍贯改为“杭州”,累计学分+3

 UPDATE 学生表
 SET 累计学分=累计学分+3,籍贯='杭州'
 WHERE 专业='计算机'AND 性别=‘女;’

删除数据
语法

  DELETE [FROM] <目标表名>
  [FROM <表名>[,...n]]
  [WHERE <条件>]

DELETE用来删除满足WHERE条件的元组

从学生表中删除计算机专业所有女生信息

  DELETE FROM 学生表
  WHERE 专业=‘计算机’AND性别=‘女’ 

将学生表清空

    DELECT FROM 学生表
    TRUNCATE TABLE <目标表名>
 比较快不记录日志的操作,删除的数据无法恢复
发布了12 篇原创文章 · 获赞 71 · 访问量 2万+

Je suppose que tu aimes

Origine blog.csdn.net/m0_46315852/article/details/104878000
conseillé
Classement