-
SQL语言
2015-11-14 12:47:11SQL语言是高级的非过程化编程语言,允许用户在高层数据结构上工作。它不要求用户指定对数据的存放方法,也不需要用户了解具体的数据存放方式,所以具有完全不同底层结构的不同数据库系统可以使用相同的结构化查询...一、选择题
1. SQL语言是( )的语言,容易学习 。 SQL语言是高级的非过程化编程语言,允许用户在高层数据结构上工作。它不要求用户指定对数据的存放方法,也不需要用户了解具体的数据存放方式,所以具有完全不同底层结构的不同数据库系统可以使用相同的结构化查询语言作为数据输入与管理的接口。SQL语言语句可以嵌套,这使他具有极大的灵活性和强大的功能。
A.过程化 B. 非过程化
C.格式化 D. 导航式
2. SQL语言的数据操纵语句包括SELECT、INSERT、UPDATE、DELETE等。其中最重要的,也是使用最频繁的语句是( ) 。
A. SELECT B. INSERT
C. UPDATE D. DELETE
3. 在视图上不能完成的操作是( ) 。
A. 更新视图 B. 查询
C. 在视图上定义新的表 D. 在视图上定义新的视图
4. SQL语言集数据查询、数据操纵、数据定义和数据控制功能于一体,其中,CREATE、DROP、ALTER语句是实现哪种功能( )。
A. 数据查询 B. 数据操纵
C. 数据定义 D. 数据控制
5. SQL语言中,删除一个视图的命令是( )。
A.DELETE
B.DROP
C.CLEAR
D.REMOVE
6. 在SQL语言中的视图VIEW是数据库的( ) 。
A. 外模式 B. 模式 C. 内模式 D. 存储模式
7. 下列的SQL语句中,( )不是数据定义语句。
A. CREATE TABLE B. DROP VIEW
C. CREATE VIEW D. GRANT
8. 若要撤销数据库中已经存在的表S,可用( )。
A. DELETE TABLE S B. DELETE S
C. DROP TABLE S D. DROP S
9. 若要在基本表S中增加一列CN(课程名),可用( )。
A.ADD TABLE S(CN CHAR(8))
B.ADD TABLE S ALTER(CN CHAR(8))
C.ALTER TABLE S ADD(CN CHAR(8))
D.ALTER TABLE S (ADD CN CHAR(8))
10. 学生关系模式 S( S#,Sname,Sex,Age),S的属性分别表示学生的学号、姓名、性别、年龄。要在表S中删除一个属性“年龄”,可选用的SQL语句是( )。
A. DELETE Age from S
B. ALTER TABLE S DROP Age
C. UPDATE S Age
D. ALTER TABLE S ‘Age’
11. 有关系S(S#,SNAME,SAGE),C(C#,CNAME),SC(S#,C#,GRADE)。其中S#是学生号,SNAME是学生姓名,SAGE是学生年龄, C#是课程号,CNAME是课程名称。要查询选修“ACCESS”课的年龄不小于20的全体学生姓名的SQL语句是SELECT SNAME FROM S,C,SC WHERE子句。这里的WHERE子句的内容是( )。
A. S.S# = SC.S# and C.C# = SC.C# and SAGE>=20 and CNAME=‘ACCESS’
B. S.S# = SC.S# and C.C# = SC.C# and SAGE in>=20 and CNAME in ‘ACCESS’
C. SAGE in>=20 and CNAME in ‘ACCESS’
D. SAGE>=20 and CNAME=’ ACCESS’
12. 设关系数据库中一个表S的结构为S(SN,CN,grade),其中SN为学生名,CN为课程名,二者均为字符型;grade为成绩,数值型,取值范围0-100。若要把“张二的化学成绩80分”插入S中,则可用( )。
A. ADD
INTO S
VALUES(’张二’,’化学’,’80’)
B. INSERT
INTO S
VALUES(’张二’,’化学’,’80’)
C. ADD
INTO S
VALUES(’张二’,’化学’,80)
D. INSERT
INTO S
VALUES(’张二’,’化学’,80)
13. 设关系数据库中一个表S的结构为:S(SN,CN,grade),其中SN为学生名,CN为课程名,二者均为字符型;grade为成绩,数值型,取值范围0-100。若要更正王二的化学成绩为85分,则可用( ) 。
A. UPDATE S
SET grade=85
WHERE SN=’王二’ AND CN=’化学’
B. UPDATE S
SET grade=’85’
WHERE SN=’王二’ AND CN=’化学’
C. UPDATE grade=85
WHERE SN=’王二’ AND CN=’化学’
D. UPDATE grade=’85’
WHERE SN=’王二’ AND CN=’化学’
14. 在SQL语言中,子查询是( ) 。
A. 返回单表中数据子集的查询语言
B. 选取多表中字段子集的查询语句
C. 选取单表中字段子集的查询语句
D. 嵌入到另一个查询语句之中的查询语句
15. SQL是一种( )语言。
A. 高级算法 B. 人工智能
C. 关系数据库 D. 函数型
16. 有关系S(S#,SNAME,SEX),C(C#,CNAME),SC(S#,C#,GRADE)。其中S#是学生号,SNAME是学生姓名,SEX是性别, C#是课程号,CNAME是课程名称。要查询选修“数据库”课的全体男生姓名的SQL语句是SELECT SNAME FROM S,C,SC WHERE子句。这里的WHERE子句的内容是( )。
A.S.S# = SC.S# and C.C# = SC.C# and SEX=’男’ and CNAME=’数据库’
B.S.S# = SC.S# and C.C# = SC.C# and SEX in’男’and CNAME in’数据库’
C.SEX ’男’ and CNAME ’ 数据库’
D.S.SEX=’男’ and CNAME=’ 数据库’
17. 若用如下的SQL语句创建了一个表SC:
CREATE TABLE SC (S# CHAR(6) NOT NULL,C# CHAR(3) NOT NULL,SCORE INTEGER,NOTE CHAR(20));向SC表插入如下行时,( )行可以被插入 。
A.(’201009’,’111’,60,必修)
B.(’200823’,’101’,NULL,NULL)
C.(NULL,’103’,80,’选修’)
D.(’201132’,NULL,86,’ ’)
18. 假设学生关系S(S#,SNAME,SEX),课程关系C(C#,CNAME),学生选课关系SC(S#,C#,GRADE)。要查询选修“Computer”课的男生姓名,将涉及到关系( )。
A. S B. S,SC C. C,SC D. S,C,SC
选择题答案:
(1) B (2) A (3) C (4) C (5) B
(6) A (7) D (8) C (9) C (10) B
(11) A (12) D (13) A (14) D (15) C
(16) A (17) B (18) D
二、简答题
1. 试述SQL语言的特点。
答:
(1)综合统一。 SQL语言集数据定义语言DDL、数据操纵语言DML、数据控制语言DCL的功能于一体。
(2)高度非过程化。用SQL语言进行数据操作,只要提出“做什么”,而无须指明“怎么做”,因此无需了解存取路径,存取路径的选择以及SQL语句的操作过程由系统自动完成。
(3)面向集合的操作方式。SQL语言采用集合操作方式,不仅操作对象、查找结果可以是元组的集合,而且一次插入、删除、更新操作的对象也可以是元组的集合。
(4)以同一种语法结构提供两种使用方式。SQL语言既是自含式语言,又是嵌入式语言。作为自含式语言,它能够独立地用于联机交互的使用方式,也能够嵌入到高级语言程序中,供程序员设计程序时使用。
(5)语言简捷,易学易用。
2. 试述SQL的定义功能。
答: SQL的数据定义功能包括定义表、定义视图和定义索引。
SQL语言使用CREATE TABLE语句定义建立基本表,;ALTER TABLE语句修改基本表定义,DROP TABLE语句删除基本表;建立索引使用CREATE INDEX语句建立索引, DROP INDEX语句删除索引表;SQL语言使用CREATE VIEW命令建立视图,DROP VIEW语句删除视图。
3. 用SQL语句建立第3章习题3中的四个表。
答: 对于S表:S( SNO,SNAME,STATUS,CITY);
建S表
CREATE TABLE S
(SNO CHAR(3),
SNAME CHAR(10),
STATUS CHAR(2),
CITY CHAR(10));
P(PNO,PNAME,COLOR,WEIGHT);
建P表
CREATE TABLE P
(PNO CHAR(3),
PNAME CHAR(10),
COLOR CHAR(4),
WEIGHT INT);
J(JNO,JNAME,CITY);
建J表
CREATE TABLE J
(JNO CHAR(3),
JNAME CHAR(10),
CITY CHAR(10));
SPJ(SNO,PNO,JNO,QTY);
建SPJ表
CREATE TABLE SPJ
(SNO CHAR(3),
PNO CHAR(3),
JNO CHAR(3),
QTY INT);
4. 针对上题中建立的四个表试用SQL语言完成第3章习题3中的查询。
答: (1) 求供应工程J1零件的供应商号码SNO;
SELECT SNO
FROM SPJ
WHERE JNO=‘J1’;
(2) 求供应工程J1零件P1的供应商号码SNO;
SELECT SNO
FROM SPJ
WHERE JNO=‘J1’
AND PNO=‘P1’;
(3) 求供应工程J1零件为红色的供应商号码SNO;
SELECT SNO
FROM SPJ
WHERE JNO=‘J1’
AND PNO IN
(SELECT PNO
FROM P
WHERE COLOR=‘红’);
或
SELECT SNO
FROM SPJ,P
WHERE JNO=‘J1’
AND SPJ.PNO=P.PNO
AND COLOR=‘红’;
(4) 求没有使用天津供应商生产的红色零件的工程号JNO;
解析:
用SQL语言表示如下:
SELECT JNO
FROM J
WHERE NOT EXISTS
(SELECT *
FROM SPJ
WHERE SPJ.JNO=J.JNO
AND SNO IN
(SELECT SNO
FROM S
WHERE CITY=‘天津’)
AND PNO IN
(SELECT PNO
FROM P
WHERE COLOR=‘红’));
或
SELECT JNO
FROM J
WHERE NOT EXISTS
(SELECT *1
FROM SPJ, S, P
WHERE SPJ.JNO=J.JNO
AND SPJ.SNO=S.SNO
AND SPJ.PNO=P.PNO
AND S.CITY=‘天津’
AND P. COLOR=‘红’);
注意:从 J 表入手,以包含那些尚未使用任何零件的工程号。
(5) 求至少用了供应商S1所供应的全部零件的工程号JNO 。
解析:
用SQL语言表示如下:
SELECT DISTINCT JNO
FROM SPJ SPJZ
WHERE NOT EXISTS
(SELECT *
FROM SPJ SPJX
WHERE SNO='S1'
AND NOT EXISTS
(SELECT *
FROM SPJ SPJY
WHERE SPJY.PNO=SPJX.PNO
AND SPJY.JNON=SPJZ.JNO
AND SPJY.SNO=’S1’));
AND SPJY.SNO='S1' ));
5. 针对习题3中的四个表试用SQL语言完成以下各项操作:
(1)找出所有供应商的姓名和所在城市。
(2)找出所有零件的名称、颜色、重量。
(3)找出使用供应商S1所供应零件的工程号码。
(4)找出工程项目J2使用的各种零件的名称及其数量。
(5)找出上海厂商供应的所有零件号码。
(6)找出使用上海产的零件的工程名称。
(7)找出没有使用天津产的零件的工程号码。
(8)把全部红色零件的颜色改成蓝色。
(9)由S5供给J4的零件P6改为由S3供应,请作必要的修改。
(10)从供应商关系中删除S2的记录,并从供应情况关系中删除相应的记录。
(11)请将 (S2,J6,P4,200) 插入供应情况关系。
答: (1) 找出所有供应商的姓名和所在城市。
SELECT SNAME, CITY
FROM S;
(2) 找出所有零件的名称、颜色、重量。
SELECT PNAME, COLOR, WEIGHT
FROM P;
(3) 找出使用供应商S1所供应零件的工程号码。
SELECT JNO
FROM SPJ
WHERE SNO=‘S1’;
(4) 找出工程项目J2使用的各种零件的名称及其数量。
SELECT P.PNAME, SPJ.QTY
FROM P, SPJ
WHERE P.PNO=SPJ.PNO
AND SPJ.JNO='J2';
(5) 找出上海厂商供应的所有零件号码。
SELECT DISTINCT PNO
FROM SPJ
WHERE SNO IN
(SELECT SNO
FROM S
WHERE CITY='上海');
(6) 找出使用上海产的零件的工程名称。
SELECT JNAME
FROM J, SPJ, S
WHERE J. JNO=SPJ. JNO
AND SPJ. SNO=S.SNO
AND S.CITY='上海';
或
SELECT JNAME
FROM J
WHERE JNO IN
(SELECT JNO
FROM SPJ, S
WHERE SPJ. SNO=S.SNO
AND S.CITY='上海');
(7) 找出没有使用天津产的零件的工程号码。
SELECT JNO
FROM J
WHERE NOT EXISTS
(SELECT *
FROM SPJ
WHERE SPJ.JNO=J.JNO AND SNO IN
(SELECT SNO
FROM S
WHERE CITY=‘天津’));
或
SELECT JNO
FROM J
WHERE NOT EXISTS
(SELECT *1
FROM SPJ, S
WHERE SPJ.JNO=J.JNO AND SPJ.SNO=S.SNO AND S.CITY=‘天津’);
(8) 把全部红色零件的颜色改成蓝色。
UPDATE P
SET COLOR='蓝'
WHERE COLOR='红' ;
(9) 由S5供给J4的零件P6改为由S3供应,请作必要的修改。
UPDATE SPJ
SET SNO='S3'
WHERE SNO='S5' AND JNO='J4' AND PNO='P6';
(10) 从供应商关系中删除S2的记录,并从供应情况关系中删除相应的记录。
DELETE
FROM SPJ
WHERE SNO='S2';
或
DELETE
FROM S
WHERE SNO='S2';
解析:注意删除顺序,应该先从SPJ表中删除供应商S2所供应零件的记录,然后从从S表中删除S2。
(11) 请将 (S2,J6,P4,200) 插入供应情况关系。
INSERT INTO SPJ(SNO, JNO, PNO, QTY)
VALUES (S2,J6,P4,200);
或
INSERT INTO SPJ
VALUES (S2,P4,J6,200);
6. 什么是基本表?什么是视图?两者的区别和联系是什么?
答:基本表是本身独立存在的表,在SQL中一个关系就对应一个表。
视图是从一个或几个基本表导出的表。视图本身不独立存储在数据库中,是一个虚表。即数据库中只存放视图的定义而不存放视图对应的数据,这些数据仍存放在导出视图的基本表中。视图在概念上与基本表等同,用户可以如同基本表那样使用视图,可以在视图上再定义视图。
7. 试述视图的优点。
答:(1)视图能够简化用户的操作。
(2)视图使用户能以多种角度看待同一数据。
(3)视图对重构数据库提供了一定程度的逻辑独立性。
(4)视图能够对机密数据提供安全保护。
8. 所有的视图是否都可以更新?为什么?
答:不是。视图是不实际存储数据的虚表,因此对视图的更新,最终要转换为对基本表的更新。因为有些视图的更新不能唯一地有意义地转换成对相应基本表的更新,所以,并不是所有的视图都是可更新的。如《概论》3.5.1中的视图S_G(学生的学号及他的平均成绩)
CREAT VIEW S_G(Sno,Gavg)
AS SELECT Sno,AVG(Grade)
FROM SC
GROUP BY Sno;
要修改平均成绩,必须修改各科成绩,而我们无法知道哪些课程成绩的变化导致了平均成绩的变化。
9. 哪类视图是可以更新的,哪类视图是不可更新的? 各举一例说明。
答:基本表的行列子集视图一般是可更新的。如《概论》3.5.3中的例1。
若视图的属性来自集函数、表达式,则该视图肯定是不可以更新的。
如《概论》3.5.3中的S_G视图。
10. 试述某个你熟悉的实际系统中对视图更新的规定。
答:(略)
解析:不同的系统对视图更新的规定是不同的,读者必须了解你所用系统对视图更新的规定。
11. 请为三建工程项目建立一个供应情况的视图,包括供应商代码(SNO)、零件
代码(PNO)、供应数量(QTY)。针对该视图完成下列查询:
(1)找出三建工程项目使用的各种零件代码及其数量。
(2)找出供应商S1的供应情况。
答:建视图:
CREATE VIEW V_SPJ AS
SELECT SNO, PNO, QTY
FROM SPJ
WHERE JNO=
(SELECT JNO
FROM J
WHERE JNAME='三建');
对该视图查询:
(1) 找出三建工程项目使用的各种零件代码及其数量。
SELECT PNO, QTY
FROM V_SPJ;
(2) 找出供应商S1的供应情况。
SELECT PNO, QTY /* S1供应三建工程的零件号和对应的数量*/
FROM V_SPJ
WHERE SNO='S1';
-
SQL语言四大类
2016-10-21 10:37:06SQL语言四大类 SQL语言共分为四大类:数据查询语言DQL,数据操纵语言DML,数据定义语言DDL,数据控制语言DCL。数据查询语言DQL 数据查询语言DQL基本结构是由SELECT子句,FROM子句,WHERE子句组成的查询块: ...SQL语言四大类
SQL语言共分为四大类:数据查询语言DQL,数据操纵语言DML,数据定义语言DDL,数据控制语言DCL。
数据查询语言DQL
数据查询语言DQL基本结构是由SELECT子句,FROM子句,WHERE子句组成的查询块:
SELECT <字段名表> FROM <表或视图名> WHERE <查询条件>
SELECT * FROM lmapp.lm_addr where uid like ‘U1351106%’;
##数据操纵语言DML
数据操纵语言DML主要有三种形式:
1)插入:INSERT
insert into tmp (medid,searchid) values (12345,54321);
2)更新:UPDATE
update tmp set searchid=‘1’ where medid=‘12345’;
3)删除:DELETE
delete from tmp where medid=‘12345’;数据定义语言DDL
数据定义语言DDL用来创建数据库中的各种对象-----表、视图、索引、同义词、聚簇等如:
CREATE TABLE/VIEW/INDEX/SYN/CLUSTER(表 视图 索引 同义词 簇)
下面是通用的SQL语法用来创建MySQL表:
- CREATE TABLE table_name (column_name column_type);
现在,我们将在 test 数据库中创建以下表。create table tutorials_tbl( tutorial_id INT NOT NULL AUTO_INCREMENT, tutorial_title VARCHAR(100) NOT NULL, tutorial_author VARCHAR(40) NOT NULL, submission_date DATE, PRIMARY KEY ( tutorial_id ) );
数据控制语言DCL
数据控制语言DCL用来授予或回收访问数据库的某种特权,并控制数据库操纵事务发生的时间及效果,对数据库实行监视等。如:
1) GRANT:授权。
2) REVOKE:撤销授权。
3) ROLLBACK [WORK] TO [SAVEPOINT]:回退到某一点。
回滚—ROLLBACK
回滚命令使数据库状态回到上次最后提交的状态。其格式为:
SQL>ROLLBACK;
4) COMMIT [WORK]:提交。
在数据库的插入、删除和修改操作时,只有当事务在提交到数据库时才算完成。在事务提交前,只有操作数据库的这个人才能有权看到所做的事情,别人只有在最后提交完成后才可以看到。
提交数据有三种类型:显式提交、隐式提交及自动提交。下面分别说明这三种类型。
(1) 显式提交
用COMMIT命令直接完成的提交为显式提交。其格式为:
SQL>COMMIT;
(2) 隐式提交
用SQL命令间接完成的提交为隐式提交。这些命令是:
ALTER,AUDIT,COMMENT,CONNECT,CREATE,DISCONNECT,DROP,EXIT,GRANT,NOAUDIT,QUIT,REVOKE,RENAME。
(3) 自动提交
若把AUTOCOMMIT设置为ON,则在插入、修改、删除语句执行后,系统将自动进行提交,这就是自动提交。其格式为:SQL>SET AUTOCOMMIT ON -
Oracle数据库SQL语言
2017-01-31 20:16:39本课程全面介绍oracle的SQL语言。 介绍查询语句 DML语句 DDL语句 数据库对象等等 -
SQL语言和T-SQL语言简介
2015-05-19 16:03:59SQL语言简介 结构化查询语言(SQL)是一个非过程化的语言,它一次处理一个记录,对数据提供自动导航。SQL允许用户在高层的数据结构上工作,而不对单个记录进行操作,可操作记录集。所有SQL语句接受集合作为输入,...SQL语言简介
结构化查询语言(SQL)是一个非过程化的语言,它一次处理一个记录,对数据提供自动导航。SQL允许用户在高层的数据结构上工作,而不对单个记录进行操作,可操作记录集。所有SQL语句接受集合作为输入,返回集合作为输出。SQL的集合特性允许一条SQL语句的结果作为另一条SQL语句的输入。SQL不要求用户指定对数据的存放方法。这种特性使用户更容易集中精力于要得到的结果。所有的SQL语句使用查询优化器,是RDBMS的一部分,由它决定对指定数据存取的最快速度的手段。
SQL可用于所有用户的DB活动模型,包括系统管理员,数据库管理员,应用程序员,决策支持系统人员及许多其他类型的终端用户。
由于主要的关系数据库管理系统都支持SQL语言,所以用户可以使用SQL的技能从一个RDBMS转到另一个。所有用户SQL编写的程序都是可移植的。
T-SQL语言简介
T-SQL语言是标准的SQL Server的扩展,是标准的SQL程序设计语言的增强版,是用以程序与SQL Server沟通的主要语言。T-SQL是SQL Server系统产品独有的,其他的关系数据库不支持T-SQL。
T-SQL语言的组成
数据定义语言(DLL):用于在数据库系统中对数据库,表,视图,索引等数据库对象进行创建和管理。
数据控制语言(DCL):用于实现对数据库中数据的完整性,安全性等的控制。
数据操纵语言(DML):用于插入,修改,删除和查询数据库中的数据。
T-SQL语句构成
每条SQL语句均由一个谓词开始,该谓词描述这条语句要产生的动作,如Select或Update关键字。谓词后紧跟一个或多个子句,子句中给出了被谓词作用的数据或提供谓词动作的详细信息,每一条子句都由一个关键字开始。
T-SQL语句分类
变量说明语句:用来说明变量的命令。
数据定义语句:用来建立数据库,数据库对象和定义列,大部分是以Create开头的命令。
数据操纵语句:用来操纵数据库中数据的命令,如Select,Insert,Update,Delete等等。
数据控制语句:用来控制数据库组件的存取许可,存取权限等命令,如Grant,Revoke等等。
流程控制语句:用于设计应用程序流程的语句,如If While和Case等等。
内嵌函数:说明变量的命令。
其他命令:嵌于命令中使用的标准函数。
简单T-SQL语言的使用
1Create database语句
语法格式为:Create database 数据库名,创建一个数据库
2Drop database语句
语法格式为:Drop database 要删除的数据库名,删除一个数据库
3Create table语句
语法格式为:Create table 表名(
列名 1 数据类型,
列名 2 数据类型,
列名 3 数据类型,
...
)创建一个数据表
4Drop table语句
语法格式为:Drop table 要删除的表名,删除一个数据表
5Insert语句
向表中插入数据使用Insert语句,语法格式为:Insert 表名 (字段1,字段2,...,字段n) values (值1,值2,...,值n)。
对于向表中的所有非标识列字段插入数据,简写为下面格式:Insert 表名 values (值1,值2,...,值n)。
5Update语句
更改表中的内容是由Update语句实现的,语法格式为:Update 表名 set 字段1=值1,字段2=值2,...,字段n=值n where 条件1 and 条件2 and...and 条件n 其中不加where和后面的条件是更新表中所有内容,加上where和后面的条件是只更新符合条件的内容。
6Delete语句
删除数据表中的内容通过Delete语句实现,语法格式为:Delete 表名 where 条件1 and 条件2 and ... and 条件n,其中不加where和后面的条件是删除数据表中的所有内容,加上where和后面的条件是只删除符合条件的内容。
7SeLect语句
查询数据表中的内容是通过Select语句实现的,语法格式为:Select 子段1,子段2,...,子段n from 表 where 条件1 and 条件2 and ... and 条件n。查询数据表中的所有子段的格式为:Select * from 表 where 条件1 and 条件2 and ... and 条件n。其中不加where和后面的条件是查询数据表中的所有内容,加上where和后面的条件是只查询符合条件的内容。
在SQL Server 2008数据库上进行基本的操作
对于创建和删除数据库以及数据表的操作比较简单就不在进行操作,就只进行插入,更改,删除和查询四个基本的数据操纵语句的使用。
对于已创建好的一个UserInformation数据表进行四种语句的使用。
所对表进行的基本操作代码为:
<span style="font-size:18px;">Insert UserInformation values(1,'管理员','12432345678','30','新华路24号')</span><span style="font-size:18px;"> Update UserInformation set userTel='17500001111' where id=1 Delete UserInformation where userSex='女' Select * from UserInformation userAge>30</span>
最后表中显示的结果很简单。
-
数据库SQL语言
2020-08-23 10:38:22SQL语言基础 大家好,我是大黄。这次我来简单带你们了解一下数据库技术中必不可少的一项——SQL语言。 SQL,英文是Structured Query Language,直面翻译就是结构化疑问语言。所以说明这个语言是有一定的结构的,所以...SQL语言基础
大家好,我是大黄。这次我来简单带你们了解一下数据库技术中必不可少的一项——SQL语言。
SQL,英文是Structured Query Language,直面翻译就是结构化疑问语言。所以说明这个语言是有一定的结构的,所以基础阶段不会太困难。SQL数据库体系结构
任何语言都有属于它的一套固定的标准,SQL主要有3个标准:
ANSI(美国国家标准机构)SQL;
对ANSI SQL进行修改后在1992年采用的标准SQL-92或SQL2;
最近的SQL-99标准,也称为SQL3标准。以上大家了解一下就行,知道现在普遍使用的是SQL3标准就行,为了凑字数,不重要。下面就开始说一些干货!
1.SQL的特点
(1)综合统一。SQL是一种关系型的数据语言。它包含了数据查询、数据定义、数据操纵、数据控制这四个功能。而且有固定的结构,语言风格也统一,可以独立完成数据库生命周记的所有活动。它比非关系型数据语言更简便。而非关系型语句使用起来就相对复杂,修改数据库模式的时候,必须停止现有的数据库运行,转储数据,修改模式编译后再重装数据库。这样一比较,SQL语言的优势就大大体现出来。
(2)高度非过程化。简单来说,用SQL语言进行数据操作的时候,只要指出“做什么”,无须指出“怎么做”,存储路径对于用户来说是透明的,提高了数据的独立性。
(3)面向集合的操作方式。就是操作的对象、查找的结果可以是元组的集合,而不需要一条数据一条数据的操作。
(4)两种使用方式。第一种方式,用户可以在终端键盘上输入SQL命令,对数据库进行操作,称为自含式语言。第二种方式,将SQL语言嵌入到高级语言程序中(比如在一段Java语句中嵌入一段SQL语句),又称为嵌入式语言。
(5)语言简洁、易学易用。SQL语言功能极强,完成和性功能仅仅使用了九个动词。- 数据查询:select
- 数据定义:create、drop、alter
- 数据操纵:insert、update、delete
- 数据控制:grant、revork
这也是我为什么说不会太困难,掌握了这九个动词的使用方法就基本能实现数据库的所有的数据操作。
2.SQL支持三级模式结构
其中,视图对应外模式、基本表对应模式、存储文件对应内模式。
我们从图中可以看出,“视图”不是数据库必备的,但是一个视图可以同时对应多个表,也就是可以同时对多个表建立一个视图,而且一张表也可以建立多个不同的视图。一张表只能对应一个存储文件,但是一个存储文件可以同时存储多张表。
下面我就来说一下SQL的基本语句。SQL数据定义
SQL的数据定义包括对表、视图、索引的创建和删除。
1.创建表
语句格式:
create table <表名>(<列名><数据类型>[列级完整性约束条件],
<列名><数据类型>[列级完整性约束条件]······,
<表级完整性约束条件>);
列级完整性约束条件有NULL(空)和UNIQUE(取值唯一),如果NOT NULL UNIQUE表示取值唯一,不能取空值。
【例】在csdn数据库中创建一个用户信息表user(pnum,name,nickname,sex,id_num,birth)分别表示用户手机号、姓名、昵称、性别、身份证号、生日。CREATE TABLE `user` IN csdn ( pnum CHAR(11) not null UNIQUE, name VARCHAR(10)not null, nickname VARCHAR(10) not null UNIQUE, sex char(1), id_num cahr(18) not null, birth date );
2.修改和删除表
1)修改表
语句格式:
alter table <表名>[add <列名><数据类型>[列级完整性约束条件]]
[drop <完整性约束>]
[modify <列名><数据类型>];
【例】向用户信息表user增加zap“邮政编码”:alter table 'user' add zap char(6);
【例】将性别字段数据类型改为int:
ALTER TABLE `user` MODIFY sex int;
【例】将邮政编码字段删除
alter TABLE `user` DROP zap;
SQL数据查询
1.select基本结构
语句格式:
SELECT [ALL | DISTINCT] <目标列表达式>[,<目标列表达式>······]
FROM <表名或者视图名>[,<表名或者视图名>······]
WHERE <条件表达式>
[GROUP BY <列名 1>
[HAVING <条件表达式>]]
[ ORDER BY <列名 2> [ASC | DESC] ]
SQL查询中的子句顺序为SELECT、FROM、WHERE、GROUP BY、HAVING、ORDER BY。
其中SELECT、FROM是必须的,HAVING条件子句只能和GROUP BY搭配起来使用。
WHERE 子句的条件表达式中可以使用的运算符:
2.简单查询
简单查询只需要使用3个保留字,即SELECT、FROM、WHERE
【例】查询用户信息表中的所有信息select * from 'user';
【例】查询用户信息表中性别为男的手机号码
select pnum from 'user' where sex='男';
3.连接查询
若查询涉及两个及以上的表,则称为连接查询
新建一个用户订单表order(goods_name,account,price,pnum,address)分别为商品名称、数量、价格、用户手机号、地址。
【例】查询性别为男的用户购买地址select address from 'order','user' where 'user'.pnum = 'order'.pnum and sex='男';
4.子查询
1)where子查询:将一个查询结果作为另一个查询(更新)操作的条件
【例】查询性别为男的用户的订单信息select * from 'order' where pnum in ( select pnum from 'user' where sex='男');
2)from子句子查询:将一个查询结果看作一张虚拟表提供给其他查询使用
【例】查询购买了青菜的用户名select nickname from( select pnum from 'order' where goods_name='青菜' )t,'user' where t.pnum='user'.pnum;
3)select子句子查询:将一个查询结果和其他查询结果进行组合
【例】查询性别为男的用户名以及他的订单订单地址select address,( select nickname from 'user' where sex='男' )from 'user','order' where 'user'.pnum = 'order'.pnum;
5.分组查询
【例】查询各类商品的销售总量并按照销量降序排序
select sum(account)销量,goods_name from 'order' group by goods_name order by sum(account) decs;
SQL数据更新
1.插入
如果要在关系型数据库中插入数据,可以指定被插入的元组,或者用查询语句选出一批待插入分元组。
语句格式:
INSERT INTO 基本表名(字段名[,字段名]······)
VALUES(常量[,常量]······);
【例】在用户信息表中插入一条语句insert into 'user' values('15131100223','csdn','csdn','男','321282199910010238','1999-10-01');
2.删除
语句格式:
DELETE FROM 基本表名
[WHERE 条件表达式];
【例】删除所有性别为男的用户信息delete from 'user' where sex='男';
3.修改
语句格式:
UPDATE 基本表名
SET 列名=值表达式(,列名=值表达式······)
[WHERE 条件表达式];
【例】将所有性别为男的用户的性别改为女update 'user' set sex='女' where sex='男';
好了,关于SQL语言基础就暂时说到这,后续如果还需要什么补充可以给我留言。希望这些对你们有帮助,谢谢!
-
SQL语言基础
2020-03-05 11:40:15SQL(Structured Query Language)结构化查询语言是广泛应用于数据库管理软件的语言(非编程语言),根据SQL语言不同功能特性,将其分为三类,分别是DDL(Data Definition Language)数据定义语言,DML(Data ... -
SQL语言介绍
2018-10-26 00:45:13SQL语言介绍 1、SQL基本介绍 SQL语言,是结构化查询语言(Structured Query Language)的简称。是一门特殊母的编程语言。SQL语言是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统;... -
SQL语言 简介
2019-06-25 10:22:42SQL语言 SQL语言按照功能划分成以下4个部分: DDL(Data Definition Language)数据定义语言,它用来定义我们的数据库对象,包括数据库、数据表和列。通过使用DDL,我们可以创建,删除和修改数据库和表结构。 DML... -
嵌入式SQL语言
2017-05-28 08:51:05Java对数据库进行操作的SQL字符串就是一个嵌入式的SQL语言,Java被称作宿主语言,即主语言。那么程序如何知道哪个是Java程序语言,哪个是SQL语言呢? 区分嵌入式SQL语言和主语言的方法是作语法标记,不同的主语言对... -
SQL——SQL语言全部关键字详解
2019-08-25 11:39:01数据库中我们做常用的就是SQL基本查询语言,甚至有些人认为...文章目录SQL语言基本定义基本类型特殊关键字SQL插入/删除/修改语句create tableinsert into…valuesdelete fromupdate…set…wheredrop tablealter ta... -
SQL语言全部关键字详解
2018-04-09 12:25:45SQL语言基本定义基本类型SQL表中支持很多固有类型,包括:类型 含义 char(n) 存放固定长度的字符串,用户指定长度为n。如果没有使用n个长度则会在末尾添加空格。 varchar(n) 可变长度的字符串,用户指... -
Transact-SQL语言
2019-03-19 14:46:36关于SQL server使用的T-SQL语言的一点介绍 -
1.1 SQL语言
2016-02-02 16:15:191.1 SQL语言正在更新内容,请稍后 -
SQL语言分类
2013-11-05 17:43:35SQL语言分类 DDL—数据定义语言(Create,Alter,Drop,DECLARE) DML—数据操纵语言(Select,Delete,Update,Insert) DCL—数据控制语言(GRANT,REVOKE,COMMIT,ROLLBACK) 数据定义语言 数据定义... -
SQL语言建表
2018-06-04 21:14:511) 用SQL语言CREATE TABLE语句创建学生表student、课程表course和选课表SC;(字段类型及长度自己确定)STUDENT(SNO,SNAME,SSEX,SAGE,SDEPT,ADDRESS);Create table students(Sno char(10),Sname char(15),Ssex ... -
SQL语言艺术,中文完整扫描版
2014-01-03 13:14:52《SQL语言艺术》的作者St6phane Faroult借用《孙子兵法》的智慧处理SQL性能方面的问题 开发数据库应用好比一场战役 设计即战略 而每次数据库访问就是与敌军在战术上的对决 Stephane对SQL性能问题的论述 视角... -
SQL语言的3种分类
2018-05-27 10:57:06SQL语言按照实现的功能不同,主要分为3类:数据操纵语言(DML),数据定义语言(DDL),数据控制语言(DCL)。1.数据操纵语言(DML):主要用来处理数据库中的数据内容。允许用户对数据库中的数据进行查询 ,插入,... -
sql语言分为四类
2017-12-15 16:48:21SQL语言四大类 SQL语言共分为四大类:数据查询语言DQL,数据操纵语言DML,数据定义语言DDL,数据控制语言DCL。 转载之 http://blog.csdn.net/sunhuaqiang1/article/details/52880780 数据查询语言... -
初识SQL语言
2012-08-17 11:29:46sql语言 sql语言是高级的机构化语言,用户使用SQL时,只需要提出做什么,而不必提出怎么做, 具体的执行过程由系统自动完成,大大减轻了用户的负担,是沟通数据库服务器和客户端的重要工具, 用于存储数据以及... -
SQL Server(六)-Transact-SQL语言
2019-04-11 16:10:13Transact-SQL语言是SQL Server为用户提供的一种编程语言,是对标准SQL的实现和扩展,它具有标准SQL的主要特点,同时增加了变量、运算符、函数和流程控制等语言元素,使得其功能更加强大。1.1 Transact-SQL与标准SQL ... -
SQL语言简介
2013-05-23 13:44:23SQL语言简介 •标准化语言 •大小写规则 标准化语言 SQL是一种标准化的计算机语言,其设计目标是尽可能接近英语,这样使得SQL语言易于掌握,基本的SQL命令只需很少时间就能学会,最高级的命令在几天内便可... -
PL/SQL语言、PL/SQL中的程序控制、PL/SQL存储过程
2019-05-28 01:35:14文章目录PL/SQL语言PL/SQL中的程序控制PL/SQL存储过程 PL/SQL语言 PL/SQL的基本概念 PL/SQL也是一种程序语言,叫做过程化SQL语言。PL/SQL是Oracle数据库对SQL语句的扩展。在普通SQL语句的使用上增加了编程语言... -
Sql语言如何拼接数据?
2018-09-10 10:38:35在sql语言中对数据进行适当的操作,能够有效地减少查询出数据之后业务逻辑的代码量,因此本篇博文将介绍sql语言中的拼接数据的功能。 本文将介绍拼接字段、拼接列,以及在一定的限制下拼接同一字段中不同列数据的... -
简单了解SQL与T-SQL的区别以及T-SQL语言的组成和语句结构
2019-02-22 16:05:28T-SQL即 Transact-SQL,是标准SQL语言的扩展,是SQL Server的核心,在SQL的的基础上添加了变量,运算符,函数和流程控制等新内容, 总之SQL Server是几乎所有关系型数据库都支持的语言,而T-SQL是Microsoft SQL ...