亚洲国产日韩欧美在线a乱码,国产精品路线1路线2路线,亚洲视频一区,精品国产自,www狠狠,国产情侣激情在线视频免费看,亚洲成年网站在线观看

SQL語句說明與

時(shí)間:2024-10-08 12:06:18 SQL 我要投稿
  • 相關(guān)推薦

SQL語句說明與范例

  篇一:SQL語句大全實(shí)例

  SQL語句實(shí)例

  表操作

  例 1 對于表的教學(xué)管理數(shù)據(jù)庫中的表 STUDENTS ,可以定義如下:

  CREATE TABLE STUDENTS

  (SNONUMERIC (6, 0) NOT NULL

  SNAME CHAR (8) NOT NULL

  AGENUMERIC(3,0)

  SEXCHAR(2)

  BPLACE CHAR(20)

  PRIMARY KEY(SNO))

  例 2 對于表的教學(xué)管理數(shù)據(jù)庫中的表 ENROLLS ,可以定義如下:

  CREATE TABLE ENROLLS

  (SNONUMERIC(6,0) NOT NULL

  CNO CHAR(4) NOT NULL

  GRADEINT

  PRIMARY KEY(SNO,CNO)

  FOREIGN KEY(SNO) REFERENCES STUDENTS(SNO)

  FOREIGN KEY(CNO) REFERENCES COURSES(CNO)

  CHECK ((GRADE IS NULL) OR (GRADE BETWEEN 0 AND 100)))

  例 3 根據(jù)表的 STUDENTS 表,建立一個(gè)只包含學(xué)號、姓名、年齡的女學(xué)生表。 CREATE TABLE GIRL

  AS SELECT SNO, SNAME, AGE

  FROM STUDENTS

  WHERE SEX=' 女 ';

  例 4 刪除教師表 TEACHER 。

  DROP TABLE TEACHER

  例 5 在教師表中增加住址列。

  ALTER TABLE TEACHERS

  ADD (ADDR CHAR(50))

  例 6 把 STUDENTS 表中的 BPLACE 列刪除,并且把引用 BPLACE 列的所有視圖和約束也一起刪除。

  ALTER TABLE STUDENTS

  DROP BPLACE CASCADE

  例 7 補(bǔ)充定義 ENROLLS 表的主關(guān)鍵字。

  ALTER TABLE ENROLLS

  ADD PRIMARY KEY (SNO,CNO) ;

  視圖操作(虛表)

  例 9 建立一個(gè)只包括教師號、姓名和年齡的視圖 FACULTY 。 ( 在視圖定義中不能包含 ORDER BY 子句 )

  CREATE VIEW FACULTY

  AS SELECT TNO, TNAME, AGE

  FROM TEACHERS

  例 10 從學(xué)生表、課程表和選課表中產(chǎn)生一個(gè)視圖 GRADE_TABLE , 它包括學(xué)生姓名、課程名和成績。

  CREATE VIEW GRADE_TABLE

  AS SELECT SNAME,CNAME,GRADE

  FROM STUDENTS,COURSES,ENROLLS

  WHERE STUDENTS.SNO = ENROLLS.SNO AND

  COURSES.CNO=ENROLLS.CNO

  例 11 刪除視圖 GRADE_TABLE

  DROP VIEW GRADE_TABLE RESTRICT

  索引操作

  例 12 在學(xué)生表中按學(xué)號建立索引。

  CREATE UNIQUE INDEX ST

  ON STUDENTS (SNO,ASC)

  例 13 刪除按學(xué)號所建立的索引。

  DROP INDEX ST

  數(shù)據(jù)庫模式操作

  例 14 創(chuàng)建一個(gè)簡易教學(xué)數(shù)據(jù)庫的數(shù)據(jù)庫模式TEACHING_DB ,屬主為 ZHANG 。 CREATE SCHEMA TEACHING_DB AUTHRIZATION ZHANG

  例 15 刪除簡易教學(xué)數(shù)據(jù)庫模式 TEACHING_DB 。(( 1 )選用 CASCADE ,即當(dāng)刪除數(shù)據(jù)庫模式時(shí),則本數(shù)據(jù)庫模式和其下屬的基本表、視圖、索引等全部被刪除。( 2 )選用 RESTRICT ,即本數(shù)據(jù)庫模式下屬的基本表、視圖、索引等事先已清除,才能刪除本數(shù)據(jù)庫模式,否則拒絕刪除。)

  DROP SCHEMA TEACHING_DB CASCADE

  單表操作

  例 16 找出 3 個(gè)學(xué)分的課程號和課程名。

  SELECT CNO, CNAME

  FROMCOURSES

  WHERECREDIT = 3

  例 17 查詢年齡大于 22 歲的學(xué)生情況。

  SELECT *

  FROMSTUDENTS

  WHERE AGE > 22

  例 18找出籍貫為河北的男生的姓名和年齡。

  SELECT SNAME, AGE

  FROMSTUDENTS

  WHEREBPLACE = ' 河北 ' AND SEX = ' 男 '

  例 19 找出年齡在 20 ~ 23 歲之間的學(xué)生的學(xué)號、姓名和年齡,并按年齡升序排序。 (ASC (升序)或 DESC (降序)聲明排序的方式,缺省為升序。 )

  SELECT SNO, SNAME, AGE

  FROMSTUDENTS

  WHERE AGE BETWEEN 20 AND 23

  ORDER BY AGE

  例 20 找出年齡小于 23 歲、籍貫是湖南或湖北的學(xué)生的姓名和性別。(條件比較運(yùn)算符=、< 和邏輯運(yùn)算符 AND (與),此外還可以使用的運(yùn)算符有:>(大于)、>=(大于等于)、<=(小于等于)、<>(不等于)、 NOT (非)、 OR (或)等。

  謂詞 LIKE 只能與字符串聯(lián)用,常常是 “ <列名>LIKE pattern” 的格式。特殊字符 “_” 和 “%” 作為通配符。

  謂詞 IN 表示指定的屬性應(yīng)與后面的集合(括號中的值集或某個(gè)查詢子句的結(jié)果)中的某個(gè)值相匹配,實(shí)際上是一系列的 OR (或)的縮寫。謂詞 NOT IN 表示指定的屬性不與后面的集合中的某個(gè)值相匹配。

  謂詞 BETWEEN 是 “ 包含于 … 之中 ” 的意思。)

  SELECT SNAME, SEX

  FROMSTUDENTS

  WHERE AGE < 23 AND BPLACE LIKE' 湖% '

  或

  SELECT SNAME, SEX

  FROMSTUDENTS

  WHERE AGE < 23 AND BPLACE IN ( ' 湖南 ' , ' 湖北 ' )

  例 22 找出學(xué)生表中籍貫是空值的學(xué)生的姓名和性別。(在 SQL 中不能使用條件:<列名>= NULL 。在 SQL 中只有一個(gè)特殊的查詢條件允許查詢 NULL 值:)SELECT SNAME, SEX

  FROMSTUDENTS

  WHERE BPLACE IS NULL

  多表操作

  例 23 找出成績?yōu)?95 分的學(xué)生的姓名。(子查詢)

  SELECT SNAME

  FROMSTUDENTS

  WHERESNO =

  (SELECT SNO

  FROMENROLLS

  WHERE GRADE = 95)

  例 24 找出成績在 90 分以上的學(xué)生的姓名。

  SELECT SNAME

  FROMSTUDENTS

  WHERE SNO IN

  (SELECT SNO

  FROM ENROLLS

  WHERE GRADE > 90)

  或

  SELECT SNAME

  FROMSTUDENTS

  WHERE SNO = ANY

  (SELECT SNO

  FROM ENROLLS

  WHERE GRADE > 90)

  例 25 查詢?nèi)繉W(xué)生的學(xué)生名和所學(xué)課程號及成績。(連接查詢)

  SELECT SNAME, CNO, GRADE

  FROMSTUDENTS, ENROLLS

  WHERE STUDENTS.SNO = ENROLLS.SNO

  例 26 找出籍貫為山西或河北,成績?yōu)?90 分以上的學(xué)生的姓名、籍貫和成績。(當(dāng)構(gòu)造多表連接查詢命令時(shí),必須遵循兩條規(guī)則。第一,連接條件數(shù)正好比表數(shù)少 1 (若有三個(gè)表,就有兩個(gè)連接條件 ) ;第二,若一個(gè)表中的主關(guān)鍵字是由多個(gè)列組成,則對此主關(guān)鍵字中的每一個(gè)列都要有一個(gè)連接條件(也有少數(shù)例外情況))

  SELECT SNAME, BPLACE, GRADE

  FROMSTUDENTS, ENROLLS

  WHERE BPLACE IN (? 山西 ? , ? 河北 ?) AND GRADE >= 90 ANDSTUDENTS.SNO=ENROLLS.SNO

  例 28 查出課程成績在 80 分以上的女學(xué)生的姓名、課程名和成績。( FROM 子句中的子查詢)

  SELECT SNAME,CNAME, GRADE

  FROM(SELECT SNAME, CNAME , GRADE

  FROM STUDENTS, ENROLLS,COURSES

  WHERE SEX = ' 女 ')

  AS TEMP (SNAME, CNAME,GRADE)

  WHERE GRADE > 80

  表達(dá)式與函數(shù)的使用

  例 29 查詢各課程的學(xué)時(shí)數(shù)。(算術(shù)表達(dá)式由算術(shù)運(yùn)算符+、-、 * 、/與列名或數(shù)值常量所組成。)

  SELECT CNAME,COURSE_TIME = CREDIT*16

  FROMCOURSES

  例 30 找出教師的最小年齡。(內(nèi)部函數(shù): SQL 標(biāo)準(zhǔn)中只使用 COUNT 、 SUM 、 AVG 、 MAX 、 MIN 函數(shù),稱之為聚集函數(shù)( Set Function )。 COUNT 函數(shù)的結(jié)果是該列統(tǒng)計(jì)值的總數(shù)目, SUM 函數(shù)求該列統(tǒng)計(jì)值之和, AVG 函數(shù)求該列統(tǒng)計(jì)值之平均值, MAX 函數(shù)求該列最大值, MIN 函數(shù)求該列最小值。)

  SELECT MIN(AGE)

  FROMTEACHERS

  例 31 統(tǒng)計(jì)年齡小于等于 22 歲的學(xué)生人數(shù)。(統(tǒng)計(jì))

  SELECT COUNT(*)

  FROMSTUDENTS

  WHERE AGE < = 22

  例 32 找出學(xué)生的平均成績和所學(xué)課程門數(shù)。

  SELECT SNO, AVG(GRADE), COURSES = COUNT(*)

  FROMENROLLS

  GROUP BY SNO

  例 34 找出年齡超過平均年齡的學(xué)生姓名。

  SELECT SNAME

  FROM STUDENTS

  WHERE AGE >

  (SELECT AVG(AGE)

  FROMSTUDENTS)

  例 35 找出各課程的平均成績,按課程號分組,且只選擇學(xué)生超過 3 人的課程的成績。( GROUP BY 與 HAVING

  GROUP BY 子句把一個(gè)表按某一指定列(或一些列)上的值相等的原則分組,然后再對每組數(shù)據(jù)進(jìn)行規(guī)定的操作。

  篇二:sql語句實(shí)例

  創(chuàng)建數(shù)據(jù)庫:create database <數(shù)據(jù)庫名>

  Create database Wangyi

  創(chuàng)建數(shù)據(jù)庫并設(shè)置其存儲結(jié)構(gòu):create database db_name on [prima](存儲結(jié)構(gòu)的信息)

  create database companysales

  on primary

  (name ='sale_data',

  filename ='d:datasales_data.mdf',

  size=10mb,

  maxsize=100mb,

  filegrowth=10%)--filegrowth=10mb,

  log on

  (name='sale_log',

  filename ='d:datasales_log.ldf',

  size=3mb,

  maxsize=5mb,

  filegrowth=1mb

  )

  刪除數(shù)據(jù)(轉(zhuǎn) 載于:wWw.cnboThwiN.cOM 博 威范文 網(wǎng):sql語句范例)庫:drop database <數(shù)據(jù)庫名>

  drop database Wangyi

  r

  創(chuàng)建表:create table <表名>

  (<列名><數(shù)據(jù)類型>[列級完整性約束條件]

  [, <列名><數(shù)據(jù)類型>[列級完整性約束條件]…]

  [,表級完整性約束條件]);

  create table Student

  (Sno 5) not null unique,

  Sname 20),

  Ssex 1),

  Sage int,

  Sdept 15));

  刪除表: <表名1>[<,表名2>…<,表名3>] Student

  創(chuàng)建表時(shí)添加主鍵約束:constraint 約束名 primary key(列屬性1[,…,列屬性

  n])

  create table Student

  (Sno 5) not null,

  Sname 20),

  Ssex 1),

  Sage int,

  Sdept 15)

  constraint pk_Sno primary key(Sno))

  創(chuàng)建默認(rèn)約束:創(chuàng)建表時(shí))constraint 約束名 default 默認(rèn)值

  修改表示)alter table 表名 add constraint 約束名 default 默認(rèn)值

  alter table Student

  add constraint de_Ssex default ‘男’

  for Ssex

  篇三:SQL語句大全實(shí)例 (1)

  SQL語句實(shí)例

  表操作

  例 1 對于表的教學(xué)管理數(shù)據(jù)庫中的表 STUDENTS ,可以定義如下:

  CREATE TABLE STUDENTS

  (SNONUMERIC (6, 0) NOT NULL

  SNAME CHAR (8) NOT NULL

  AGENUMERIC(3,0)

  SEXCHAR(2)

  BPLACE CHAR(20)

  PRIMARY KEY(SNO))

  例 2 對于表的教學(xué)管理數(shù)據(jù)庫中的表 ENROLLS ,可以定義如下:

  CREATE TABLE ENROLLS

  (SNONUMERIC(6,0) NOT NULL

  CNO CHAR(4) NOT NULL

  GRADEINT

  PRIMARY KEY(SNO,CNO)

  FOREIGN KEY(SNO) REFERENCES STUDENTS(SNO)

  FOREIGN KEY(CNO) REFERENCES COURSES(CNO)

  CHECK ((GRADE IS NULL) OR (GRADE BETWEEN 0 AND 100)))

  例 3 根據(jù)表的 STUDENTS 表,建立一個(gè)只包含學(xué)號、姓名、年齡的女學(xué)生表。 CREATE TABLE GIRL

  AS SELECT SNO, SNAME, AGE

  FROM STUDENTS

  WHERE SEX=' 女 ';

  例 4 刪除教師表 TEACHER 。

  DROP TABLE TEACHER

  例 5 在教師表中增加住址列。

  ALTER TABLE TEACHERS

  ADD (ADDR CHAR(50))

  例 6 把 STUDENTS 表中的 BPLACE 列刪除,并且把引用 BPLACE 列的所有視圖和約束也一起刪除。

  ALTER TABLE STUDENTS

  DROP BPLACE CASCADE

  例 7 補(bǔ)充定義 ENROLLS 表的主關(guān)鍵字。

  ALTER TABLE ENROLLS

  ADD PRIMARY KEY (SNO,CNO) ;

  視圖操作(虛表)

  例 9 建立一個(gè)只包括教師號、姓名和年齡的視圖 FACULTY 。 ( 在視圖定義中不能包含 ORDER BY 子句 )

  CREATE VIEW FACULTY

  AS SELECT TNO, TNAME, AGE

  FROM TEACHERS

  例 10 從學(xué)生表、課程表和選課表中產(chǎn)生一個(gè)視圖 GRADE_TABLE , 它包括學(xué)生姓名、課程名和成績。

  CREATE VIEW GRADE_TABLE

  AS SELECT SNAME,CNAME,GRADE

  FROM STUDENTS,COURSES,ENROLLS

  WHERE STUDENTS.SNO = ENROLLS.SNO AND

  COURSES.CNO=ENROLLS.CNO

  例 11 刪除視圖 GRADE_TABLE

  DROP VIEW GRADE_TABLE RESTRICT

  索引操作

  例 12 在學(xué)生表中按學(xué)號建立索引。

  CREATE UNIQUE INDEX ST

  ON STUDENTS (SNO,ASC)

  例 13 刪除按學(xué)號所建立的索引。

  DROP INDEX ST

  數(shù)據(jù)庫模式操作

  例 14 創(chuàng)建一個(gè)簡易教學(xué)數(shù)據(jù)庫的數(shù)據(jù)庫模式TEACHING_DB ,屬主為 ZHANG 。 CREATE SCHEMA TEACHING_DB AUTHRIZATION ZHANG

  例 15 刪除簡易教學(xué)數(shù)據(jù)庫模式 TEACHING_DB 。(( 1 )選用 CASCADE ,即當(dāng)刪除數(shù)據(jù)庫模式時(shí),則本數(shù)據(jù)庫模式和其下屬的基本表、視圖、索引等全部被刪除。( 2 )選用 RESTRICT ,即本數(shù)據(jù)庫模式下屬的基本表、視圖、索引等事先已清除,才能刪除本數(shù)據(jù)庫模式,否則拒絕刪除。)

  DROP SCHEMA TEACHING_DB CASCADE

  單表操作

  例 16 找出 3 個(gè)學(xué)分的課程號和課程名。

  SELECT CNO, CNAME

  FROMCOURSES

  WHERECREDIT = 3

  例 17 查詢年齡大于 22 歲的學(xué)生情況。

  SELECT *

  FROMSTUDENTS

  WHERE AGE > 22

  例 18找出籍貫為河北的男生的姓名和年齡。

  SELECT SNAME, AGE

  FROMSTUDENTS

  WHEREBPLACE = ' 河北 ' AND SEX = ' 男 '

  例 19 找出年齡在 20 ~ 23 歲之間的學(xué)生的學(xué)號、姓名和年齡,并按年齡升序排序。 (ASC (升序)或 DESC (降序)聲明排序的方式,缺省為升序。 )

  SELECT SNO, SNAME, AGE

  FROMSTUDENTS

  WHERE AGE BETWEEN 20 AND 23

  ORDER BY AGE

  例 20 找出年齡小于 23 歲、籍貫是湖南或湖北的學(xué)生的姓名和性別。(條件比較運(yùn)算符=、< 和邏輯運(yùn)算符 AND (與),此外還可以使用的運(yùn)算符有:>(大于)、>=(大于等于)、<=(小于等于)、<>(不等于)、 NOT (非)、 OR (或)等。

  謂詞 LIKE 只能與字符串聯(lián)用,常常是 “ <列名>LIKE pattern” 的格式。特殊字符 “_” 和 “%” 作為通配符。

  謂詞 IN 表示指定的屬性應(yīng)與后面的集合(括號中的值集或某個(gè)查詢子句的結(jié)果)中的某個(gè)值相匹配,實(shí)際上是一系列的 OR (或)的縮寫。謂詞 NOT IN 表示指定的屬性不與后面的集合中的某個(gè)值相匹配。

  謂詞 BETWEEN 是 “ 包含于 … 之中 ” 的意思。)

  SELECT SNAME, SEX

  FROMSTUDENTS

  WHERE AGE < 23 AND BPLACE LIKE' 湖% '

  或

  SELECT SNAME, SEX

  FROMSTUDENTS

  WHERE AGE < 23 AND BPLACE IN ( ' 湖南 ' , ' 湖北 ' )

  例 22 找出學(xué)生表中籍貫是空值的學(xué)生的姓名和性別。(在 SQL 中不能使用條件:<列名>= NULL 。在 SQL 中只有一個(gè)特殊的查詢條件允許查詢 NULL 值:)SELECT SNAME, SEX

  FROMSTUDENTS

  WHERE BPLACE IS NULL

  多表操作

  例 23 找出成績?yōu)?95 分的學(xué)生的姓名。(子查詢)

  SELECT SNAME

  FROMSTUDENTS

  WHERESNO =

  (SELECT SNO

  FROMENROLLS

  WHERE GRADE = 95)

  例 24 找出成績在 90 分以上的學(xué)生的姓名。

  SELECT SNAME

  FROMSTUDENTS

  WHERE SNO IN

  (SELECT SNO

  FROM ENROLLS

  WHERE GRADE > 90)

  或

  SELECT SNAME

  FROMSTUDENTS

  WHERE SNO = ANY

  (SELECT SNO

  FROM ENROLLS

  WHERE GRADE > 90)

  例 25 查詢?nèi)繉W(xué)生的學(xué)生名和所學(xué)課程號及成績。(連接查詢)

  SELECT SNAME, CNO, GRADE

  FROMSTUDENTS, ENROLLS

  WHERE STUDENTS.SNO = ENROLLS.SNO

  例 26 找出籍貫為山西或河北,成績?yōu)?90 分以上的學(xué)生的姓名、籍貫和成績。(當(dāng)構(gòu)造多表連接查詢命令時(shí),必須遵循兩條規(guī)則。第一,連接條件數(shù)正好比表數(shù)少 1 (若有三個(gè)表,就有兩個(gè)連接條件 ) ;第二,若一個(gè)表中的主關(guān)鍵字是由多個(gè)列組成,則對此主關(guān)鍵字中的每一個(gè)列都要有一個(gè)連接條件(也有少數(shù)例外情況))

  SELECT SNAME, BPLACE, GRADE

  FROMSTUDENTS, ENROLLS

  WHERE BPLACE IN (? 山西 ? , ? 河北 ?) AND GRADE >= 90 ANDSTUDENTS.SNO=ENROLLS.SNO

  例 28 查出課程成績在 80 分以上的女學(xué)生的姓名、課程名和成績。( FROM 子句中的子查詢)

  SELECT SNAME,CNAME, GRADE

  FROM(SELECT SNAME, CNAME , GRADE

  FROM STUDENTS, ENROLLS,COURSES

  WHERE SEX = ' 女 ')

  AS TEMP (SNAME, CNAME,GRADE)

  WHERE GRADE > 80

  表達(dá)式與函數(shù)的使用

  例 29 查詢各課程的學(xué)時(shí)數(shù)。(算術(shù)表達(dá)式由算術(shù)運(yùn)算符+、-、 * 、/與列名或數(shù)值常量所組成。)

  SELECT CNAME,COURSE_TIME = CREDIT*16

  FROMCOURSES

  例 30 找出教師的最小年齡。(內(nèi)部函數(shù): SQL 標(biāo)準(zhǔn)中只使用 COUNT 、 SUM 、 AVG 、 MAX 、 MIN 函數(shù),稱之為聚集函數(shù)( Set Function )。 COUNT 函數(shù)的結(jié)果是該列統(tǒng)計(jì)值的總數(shù)目, SUM 函數(shù)求該列統(tǒng)計(jì)值之和, AVG 函數(shù)求該列統(tǒng)計(jì)值之平均值, MAX 函數(shù)求該列最大值, MIN 函數(shù)求該列最小值。)

  SELECT MIN(AGE)

  FROMTEACHERS

  例 31 統(tǒng)計(jì)年齡小于等于 22 歲的學(xué)生人數(shù)。(統(tǒng)計(jì))

  SELECT COUNT(*)

  FROMSTUDENTS

  WHERE AGE < = 22

  例 32 找出學(xué)生的平均成績和所學(xué)課程門數(shù)。

  SELECT SNO, AVG(GRADE), COURSES = COUNT(*)

  FROMENROLLS

  GROUP BY SNO

  例 34 找出年齡超過平均年齡的學(xué)生姓名。

  SELECT SNAME

  FROM STUDENTS

  WHERE AGE >

  (SELECT AVG(AGE)

  FROMSTUDENTS)

  例 35 找出各課程的平均成績,按課程號分組,且只選擇學(xué)生超過 3 人的課程的成績。( GROUP BY 與 HAVING

  GROUP BY 子句把一個(gè)表按某一指定列(或一些列)上的值相等的原則分組,然后再對每組數(shù)據(jù)進(jìn)行規(guī)定的操作。

【SQL語句說明與】相關(guān)文章:

oracle的sql語句01-21

SQL查詢語句大全10-24

SQL語句的理解原則10-05

mysql SQL語句積累參考10-02

sql語句的各種模糊查詢08-25

Oracle的sql語句模擬試題及答案10-12

SQL語句中的正則表達(dá)示07-28

SQL優(yōu)化大全09-09

2016最新J2EE中SQL語句自動構(gòu)造方法08-02

PHP防止SQL注入的例子09-25