实验三数据库dml语句操作实验(1)
数据库DML操作(DCL了解)
数据库DML操作(DCL了解)DQL:SELECT * FROM 表名DML(数据操作语⾔,它是对表记录的操作(增、删、改)!)1. 插⼊数据* INTERT INTO 表名(列名1,列名2, ...) VALUES(列值1, 列值2, ...);> 在表名后给出要插⼊的列名,其他没有指定的列等同与插⼊null值。
所以插⼊记录总是插⼊⼀⾏,不可能是半⾏。
> 在VALUES后给出列值,值的顺序和个数必须与前⾯指定的列对应* INTERT INTO 表名 VALUES(列值1, 列值2)> 没有给出要插⼊的列,那么表⽰插⼊所有列。
> 值的个数必须是该表列的个数。
> 值的顺序,必须与表创建时给出的列的顺序相同。
在数据库中所有的字符串类型,必须使⽤单引,不能使⽤双引!⽇期类型也要使⽤单引!//插⼊所有列INSERT INTO stu(number, name, age, gender)VALUES('ITCAST_0001', 'zhangSan', 28, 'male');//插⼊部分列,没有指定的列默认为NULL值INSERT INTO stu(number, name) VAKLUES('ITCAST_0002', 'liSi');//不给出插⼊列,那么默认为插⼊所有列!值的顺序要与创建表时列的顺序相同INSERT INTO stu VALUES('ITCAST_0003', 'wangWu', 82, 'female');2. 修改数据* UPDATE 表名 SET 列名1=列值1, 列名2=列值2, ... [WHERE 条件]* 条件(条件可选的):> 条件必须是⼀个boolean类型的值或表达式:UPDATE t_person SET gender='男', age=age+1 WHERE sid='1'; > 运算符:=、!=、<>、>、<、>=、<=、BETWEEN...AND、IN(...)、IS NULL、NOT、OR、AND列如:WHERE age >=18AND age <=80WHERE age BETWEEN18AND80WHERE name='zhangSan'OR name='liSi'WHERE name IN ('zhangSan', 'liSi')WHERE age IS NULL, //不能使⽤等号WHERE age IS NOT NULL3. 删除数据* DELETE FROM 表名 [WHERE 条件];* TRUNCATE TABLE 表名:TRUNCATE是DDL语句,它是先删除drop该表,再create该表。
处理数据-DML语句
处理数据-DML语句处理数据-DML语句1 SQL语句类型1.1 DML:数据操纵语⾔ Data Manipulation LanguageDML是指SQL语句中⽤于处理对象中的数据的语⾔。
DML语句⽤来增加、修改和删除数据库对象中的数据,例如表中的数据。
insert 向数据库的表中添加数据update 更改表中已有的数据delete 从表中删除已有的数据merge 能够在⼀个SQL语句中对⼀个表同时执⾏inserts和updates操作DML:增、删、改1.2 DDL:数据定义语⾔ Data Definition LanguageDDL是指⽤于构建数据库对象的语⾔create 创建数据库中的表、视图、索引、同义词和其他对象alter ⽤于修改数据库中已经存在的对象结构、名称或其他属性drop 删除数据库对象truncate 截断表1.3 DCL:数据控制语⾔ Data Control Languagegrant 为⽤户赋予权限revoke 收回⽤户权限1.4 TCL:事务控制语⾔ Transaction Control Languagecommit 提交事务rollback 撤销事务savepoint 在会话中设置⼀个保存点,将来通过rollback语句可以回滚到该位置。
2 DML数据操纵语⾔2.1 insert语句语法:insert into table_name(column1, column2...) values(value1, value2...);2.1.1 向表中插⼊新⾏insert into dept(deptno,dname,loc) values(50,'DEVELOPMENT','DETROIT');2.1.2 插⼊带有空值的⾏第⼀种⽅法:省略字段的⽅法:从列的表中忽略有空值的列(例如dept表中有deptno、dname、loc字段,插⼊数据时只需指定deptno、dname字段的值即可)insert into dept(deptno,dname) values(60,'MIS');第⼆种⽅法:明确指定的⽅法:指定null关键字insert into dept values(70,'FINANCE',null);【常见错误】1.对not null约束的列没有插⼊值或插⼊null值2.违反唯⼀约束、check约束3.数据类型不匹配4.值过⼤,超出列的范围2.1.3 插⼊当前⽇期时间 sysdate函数insert into emp(empno,ename,job,mgr,hiredate,sal,comm,deptno) values (7196,'GREEN','SALESMAN',7782,sysdate,2000,null,10); sysdate函数取出当前的⽇期时间insert into emp values(2296,'AROMANO','SALESMAN',7782,TO_DATE('FEB 3,1997','MON DD,YYYY'),1300,null,10);to_char()将指定时间按照指定格式转化为字符串2.1.4 从另⼀张表中拷贝⾏(带有⼦查询的insert语句)insert into emp1 select*from emp where job='MANAGER';【注意】1.不要使⽤values⼦句语句2.⼦查询中的列要与insert⼦句中的列相匹配2.1.5 扩展:insert all多⾏插⼊多张表使⽤⼀张表,向三个表中插⼊数据insert allwhen deptno =10theninto emp10 values(empno,ename,deptno)when deptno =20theninto emp20 values(empno,ename,deptno)when deptno =30theninto emp30 values(empno,ename,deptno)select empno,ename,deptno from emp;2.2 update语句语法:update table_name set column1=value1(,column2=value2...) (where condition);【注意事项】带where条件:修改⼀⾏或者⼏⾏或者所有⾏不带where条件:修改所有⾏2.2.1 修改数据需求:7782号员⼯从10号部门调到20号部门select*from emp where empno=7782;update emp set deptno=20where empno=7782;2.2.2 基于另⼀个表进⾏修改update emp set deptno = (select deptno from emp where empno =7788) where job = (select job from emp where empno =7788); 2.2.3 将值更新为空值update时可以使⽤=nullupdate emp set job=null;也可以使⽤=''update emp set job='';where条件中不能使⽤=null、=''、<>''、<>null,可以⽤is null、is not null2.2.4 关联⼦查询更新需求:更新emp1表中loc列update emp1 e set loc=(select loc from dept d where d.deptno=e.deptno);2.3 delete 语句语法:delete from table_name [where condition];【注意】delete 语句⽤来从数据库的表中删除⾏被删除的⾏是由where⼦句所确定的,如果将where⼦句忽略,那么delete将从表中删除所有的⾏2.3.1 删除数据delete from emp where deptno=10;delete from emp;3 TCL事务控制语⾔数据库事务由以下部分组成:⼀个或多个DML语句⼀个DDL语句⼀个DCL语句数据库事务的开始和结束:以第⼀个DML语句的执⾏作为开始以下⾯的其中之⼀作为结束:-- commit或rollback语句-- DDL或DCL语句(⾃动commit)-- SQL Developer or SQL*Plus⽤户的退出-- 系统崩溃sqlplus 异常中⽌时⾃动进⾏隐式回滚3.1 事务的ACID属性任何关系型数据库都必须能够通过ACID测试:原⼦性:Atomicity ⼀致性:Consistency 隔离性:Isolation 持久性:Durability原⼦性:⼀个事务的所有部分必须都完成,或者都不完成⼀致性:查询的结果必须与数据库在查询开始时的状态⼀致隔离性:除了作出变更的会话,其他会话都⽆法看到未提交的数据持久性:事务⼀旦完成,所有⽤户必须能够⽴刻看到所做的变更,同时数据库必须保证这些变更不会丢失(数据库通过⽇志保持事务的持久性)3.2 commitcommit保存从会话中最后⼀次提交之后对数据库所做的修改commit对数据库作出永久的变动,⼀旦提交之后,这些变动就⽆法再通过rollback语句撤销显⽰提交:commit语句隐式提交:DDL或DCL语句、正常退出Sql*Plus3.2.1 commit或rollback之前的数据状态改变前的数据状态是可以恢复的执⾏DML操作的⽤户可以通过SELECT语句查询之前的修正其他⽤户不能看到当前⽤户所做的改变,直到当前⽤户结束事务DML语句所涉及到的⾏被锁定,其他⽤户不能操作3.2.2 commit 之后的数据状态数据的改变被保存在数据库中以前的数据被覆盖所有⽤户都可以查看结果受影响的⾏上的锁被释放,可供其他⽤户来操作的那些⾏所有保存点都将被删除3.2.3 commit 提交数据3.2.4 隐式提交隐式事务处理⾃动提交会在以下情况中执⾏:DDL语句DCL语句不使⽤COMMIT或ROLLBACK语句提交或回滚,正常结束会话DDL、DCL、正常退出DDL、DCL语句正确执⾏后会隐式commit语法正确的DDL、DCL语句执⾏前会隐式commit隐式提交:⾮“⾃动提交”,Oracle服务器只是按照指令进⾏操作1.执⾏DDL语句时,实现这个DDL命令的源代码包含了⼀个完全正规的commit命令2.SQL*Plus退出命令exit(quit),默认exit commit,可以退出时exit rollback;3.3 rollbackrollback撤销了执⾏该命令的⽤户在指定的会话中对数据库所做的修改rollback不会撤销已经提交过的修改3.3.1 回滚后的数据状态使⽤ROLLBACK语句可使数据变化失效:数据更改都会被撤消数据恢复到以前的状态锁被释放3.3.2 隐式回滚1.异常退出:(点X关闭sqlplus)2.系统崩溃原理:windows平台SQL*Plus关闭窗⼝的代码中嵌⼊了⼀条rollback语句3.4 savepointsavepoint在⼀个事务内建⽴分隔点,使后续的rollback语句可以进⼀步细分能够撤销操作的位置。
数据库 数据操作语言DML实验
数据库系统原理实验报告实验名称:数据操作语言DML实验任课教师:***学号:*********姓名:***完成日期:2012.10.3一、实验目的1、建立基本表并进行DML操作。
2、数据查询:单表查询、连接查询、嵌套查询、集合查询和统计等功能。
3、数据更新:增加、删除、查询和修改功能。
二、实验过程与分析1、用Create、Insert语句创建基本表S,P,J和SPJ(1)、基本表Screate table S(SNO char(3) primary key,SNAME char(10),STA TUS char(2),CITY char(10));(2)、基本表Pcreate table P(PNO char(3) primary key,PNAME char(10),COLOR char(4),WEIGHT int);(3)、基本表Jcreate table J(JNO char(3) primary key,JNAME char(10),CITY char(10));(4)、基本表SPJcreate table SPJ(SNO char(3),PNO char(3),JNO char(3),QTY int,primary key (SNO,PNO,JNO),foreign key (SNO) references S (SNO),foreign key (PNO) references P (PNO),foreign key (JNO) references J (JNO));2、插入数据(1)、向S表插入数据insert into S values('S1','精益','20','天津');insert into S values('S2','盛锡','10','北京');insert into S values('S3','东方红','30','北京');insert into S values('S4','丰泰盛','30','天津');insert into S values('S5','为民','30','上海');(2)、向P表插入数据insert into P values('P1','螺母','红','12');insert into P values('P2','螺楦','绿','17');insert into P values('P3','螺丝刀','蓝','14');insert into P values('P4','螺丝刀','红','14');insert into P values('P5','凸轮','蓝','40');insert into P values('P6','齿轮','红','30');(3)、向J表插入数据insert into J values('J1','三建','北京');insert into J values('J2','一汽','长春');insert into J values('J3','弹簧厂','天津');insert into J values('J4','造船厂','天津');insert into J values('J5','机车厂','唐山');insert into J values('J6','无线电厂','常州');insert into J values('J7','半导体厂','南京');(4)、向SPJ表插入数据insert into SPJ values('S1','P1','J1','200');insert into SPJ values('S1','P1','J3','100');insert into SPJ values('S1','P1','J4','700');insert into SPJ values('S1','P2','J1','100');insert into SPJ values('S2','P3','J1','400');insert into SPJ values('S2','P2','J4','200');insert into SPJ values('S2','P3','J4','500');insert into SPJ values('S2','P3','J5','400');insert into SPJ values('S2','P5','J1','400');insert into SPJ values('S2','P5','J2','100');insert into SPJ values('S3','P1','J1','200');insert into SPJ values('S3','P3','J1','200');insert into SPJ values('S4','P2','J1','100');insert into SPJ values('S4','P2','J3','300');insert into SPJ values('S4','P6','J4','200');insert into SPJ values('S5','P2','J4','100');insert into SPJ values('S5','P3','J1','200');insert into SPJ values('S5','P6','J2','200');insert into SPJ values('S5','P6','J4','500');运行结果:Oracle8 Enterprise Edition Release 8.0.5.0.0 - Production PL/SQL Release 8.0.5.0.0 - Production*SQLWKS> create table S2> (3> SNO char(3) primary key,4> SNAME char(10),5> STA TUS char(2),6> CITY char(10)7> );语句已处理。
MySQL基础教程之DML语句详解
MySQL基础教程之DML语句详解⽬录DML 语句1.插⼊记录2.更新记录3.简单查询记录4.删除记录5.查询记录详解(DQL语句)5.1.查询不重复的记录5.2.条件查询5.3.聚合查询5.4.排序查询5.5.limit查询5.6.连表查询5.7.⼦查询5.8.记录联合5.9.select语句的执⾏顺序6.总结DML 语句DML(Data Manipulation Language)语句:数据操纵语句。
⽤途:⽤于添加、修改、删除和查询数据库记录,并检查数据完整性。
常⽤关键字:insert、update、delete、select等。
DML 操作的对象是库表的数据(记录)。
主要包括插⼊(insert)、更新(update)、删除(delete)和查询(select)。
DML 语句是开发⼈员使⽤最频繁的操作。
1.插⼊记录插⼊⼀条记录insert into tablename (field1,field2,...,fieldn) values (value1,value2,...,valuen);⼀次性插⼊多条数据insert into tablename(field1,field2,...,fieldn)values(value1,value2,...,valuen),(value1,value2,...,valuen);2.更新记录更新单表数据update tablename set field1=value1,filed2=value2,...fieldn=valuen [where condition]同时更新多个表的数据update t1,t2,...,tn set t1.field1=expr1,tn.field=exprn [where condition];通常⽤于根据⼀个表的字段来动态地更新另外⼀个表的字段在此说明:中括号 “[ ]” 代表的是可选参数,即可有可⽆的参数。
3.简单查询记录简单的条件查询。
DML(Data Manipulation Language)数据操纵语言
DML(Data Manipulation Language)数据操纵语言命令使用户能够查询数据库以及操作已有数据库中的数据。
如insert,delete,update,select(插入、删除、修改、检索)等都是DML.
INSERT 陈述式
用来在资料表或检视表中插入一列资料。例如,如果要在Customer_Data 资料表中新增一个客户,可使用类似以下的 INSERT 陈述式:
INSERT INTO Customer_Data
VALUES (777, "Frankie", "Stein", "4895873900")
注意:如果使用这种形式的 INSERT 陈述式,但被插入的数值次序上与建立资料表时不同,数值将被放入错误的资料行。如果资料的型别与定义不符,则会收到一个错误讯息。
E 陈述式
DELETE 陈述式用来删除资料表中一列或多列的资料,您也可以删除资料表中的所有资料列。要从 Customer_Data 资料表中删除所有的列,您可以利用下列陈述式:
DELETE FROM Customer_Data
或
DELETE Customer_Data
UPDATE Customer_Data
SET phone= 02145896352
WHERE customer_id = 100;
与之相关的概念:DDL
DDL(Data Definition Language)语句用语定义和管理数据库中的对象,如Create,Alter和Drop.
UPDATE陈述式
用来对资料表中的一行或多行进行数据的修改,您也可以修改资料表中的所有资料行。要从Customer_Data资料表中更改所有行,您可以利用下列陈述式:
数据库实验报告 三DML练习
一、题目DML练习:UPDATA、DELETE、INSERT相关操作。
二、调试运行结果截图1、UPDATA(1)更新表S中的数据使AGE+1更新前UPDA TE SSET AGE=AGE+1更新后(2)用一张表去更新另一张表的数据UPDA TE TMP_SSSSET SNAME=S.SNAMEFROM SWHERE S.S#=TMP_SSS.S#UPDA TE TMP_SSSSET SNAME=(SELECT SNAMEFROM SWHERE S.S#=TMP_SSS.S#)SELECT*FROM TMP_SSS(3)把女同学的成绩提高10%U PDA TE SCSET GRADE=GRADE*1.1WHERE S#IN(SELECT S#FROM SWHERE SEX='女')SELECT*FROM SC(4)当课程低于该课程平均成绩是提高5%UPDA TE SCSET GRADE=GRADE+1.05WHERE C#='042083'AND GRADE<(SELECT A VG(GRADE)FROM SC WHERE C#='042083')SELECT*FROM SC2、DELETE(1)删除表的S#='040405028'行删前DELETE FROM SWHERE S#='040405028'删后(2)把课程名为“操作系统”的成绩从表SC中删除DELETE FROM SCWHERE C#IN(SELECT C#FROM CWHERE CNAME='操作系统')(3)把SC表中成绩大于C#='042096'平均分的同学的成绩删除删前DELETE FROM SCWHERE GRADE>(SELECT A VG(GRADE)FROM SCWHERE C#='042096');删后(4)删除基本表SCDELETE FROM SC3、INSERT(1)在新建的基本表SS中插入数据INSERT INTO SS( S#,SNAME,SEX,AGE )V ALUES('200510405301','张一二','男','20')(2)在基本表SC中连续插入3个元组INSERT INTO SCV ALUES('000000','0000','85'),('111111','1111','90'),('222222','2222','60')SELECT*FROM SC(3)在基本表SC中把平均分大于80的男生的学号和平均成绩存入另外一个已存在的基本表S_GRADE中INSERT INTO S_GRADE(S#,A VG_GRADE)SELECT S#,A VG(GRADE)FROM SCWHERE S#IN(SELECT S#FROM SWHERE SEX='男')GROUP BY S#HA VING A VG(GRADE)>60SELECT*FROM S_GRADE。
实验3 数据操纵语言DML-2015
实验3 数据操纵语言DML实验目的1.熟悉SQL语言中DML的功能。
2.初步了解如何进行查询优化。
3.初步了解SQL语句的查询计划。
实验平台1.OS:Windows XP/72.DBMS:SQL Server 2008实验用时两次上机(4月21号之前提交实验报告)预备知识一、数据操纵语言数据库数据操纵语言DML (Data Manipulation Language),它使用户能够查询数据库以及操作已有数据库中的数据的计算机语言。
DML具体包含查询,删除,更新,插入四种操作。
二、SQLSQL(Structured Query Language)结构化查询语言,是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统。
SQL语言包括三种主要程序设计语言类别的语句:数据定义语言(DDL),数据操作语言(DML)及数据控制语言(DCL)。
三、SQL Server 临时表SQL Server包含一个自带的系统数据库——tempdb。
它用来存放用户创建的临时对象。
临时对象分为全局临时对象和区域临时对象。
全局临时对象所有用户可见,区域临时对象仅当前连接对象可见。
每当SQL Server重启后,tempdb数据库会被重新创建。
临时表的创建:临时表的创建与表的创建方法一样,只不过本地临时表的名称前面有一个编号符 (#table_name),而全局临时表的名称前面有两个编号符 (##table_name)。
如:CREATE TABLE #Temp (cola INT PRIMARY KEY)将创建一个名为Temp的临时表。
临时表的其他数据操作和表的一致。
实验活动注:请各位同学用SQL语句完成今天实验的所有步骤(系统视图的查看除外),并在实验报告中记录每条语句。
每个操作完成之后,观察相关系统表的改变并分析原因。
一、熟悉SQL语句的DML功能步骤一:创建数据库,建立第二章习题5中的4个表,并插入数据。
实训sql关系数据库实训练习含答案,DML语句及DDL语句
DML 语句及 DDL 语句实训内容 】1、数据操纵语句实训目的】 掌握 INSERT 、UPDATE 、DELETE 三个数据操作语句; 掌握数据库对象的定义CREATE )、修改( ALTER )及删除( DELETE )操作。
用 INSERT 、UPDATE 、DELETE 三个语句来完成对数据进行添加、更新及删 除操作,这三个语句能修改数据库中的数据,但不返回结果集。
2、创建和修改表结构SQL 的DDL 语句能创建和修改数据库的逻辑结构, 包括CREATE 语句、ALTER 语句及 DROP 语句。
3、创建和修改视图 在 SQL 中,视图是一种类表对象。
或称之为衍生表(虚拟表) ,它并不在物理 上包含数据,但是它的定义是永久性的。
用 CREAE VIEW 定义视图。
4、请完成以下数据操纵语句: 1) 学号为“ 1031231”的学生,新选修了 3号课程,成绩未知。
insert into 选课表 values('1031231',3,NULL) 2) 为 GZ02 计 6班未选 4号课程的学生补选 4 号课程。
insert into 选课表 (学号 ,课程号 ) select 学号 ,4 from 学生表 where 班级 ='GZ02 计 6' and 学号 not in (select 学号 from 选课表 where 课程号 =4) 3) 将名字为 '王玲俐 '的学生的年龄修改为 18 岁,班级改为 'GZ02 计 8'。
update 学生表set 年龄=18,班级='GZ02计8' where 姓名='王玲俐' 4) 将“软件工程”这门课成绩在 60 分以下的学生的成绩统一修改为 59 分。
update 选课表 set 成绩 =59from 选课表,课程表 where 选课表•课程号=课程表•课程号and 课程名='软件工程' and 成绩<60 up date 选课表set 成绩=59 where 成绩<60 and 课程号=( select 课程号from 课程表where 课程名='软件工程'5)删除课程号为1号的所有的选课信息。
数据库之DML语句
数据库之DML语句DML语句(数据库操作语句)如果涉及到对表的数据进⾏了变动(新增数据,修改数据,删除数据)就需要进⾏保存(commit;)或者取消(rollback;)保存/提交commit;取消/回滚rollback;插⼊数据语法:insert into 表名(列1,列2,列3) values(值1,值2,值3);如果对整个表的所有列都需要增加数据insert into 表名 values(值1,值2,值3);⽇期格式to_date()to_date('2019-12-16','YYYY-MM-DD')to_date('20081115','YYYYMMDD')insert into stu values(7,'张⼆',to_date('20081115','YYYYMMDD'))删除数据delete from 表名 where 条件删除stu表中 id ⼩于5的数据delete from stu where id < 5;如果有多个条件记得使⽤ and 或者 or 来将条件进⾏连接删除 id⼩于3 或者 id ⼤于8的数据delete from stu where id < 3 or id >8;修改数据update 表名 set 列1=值1,列2=值2 where 条件将stu表中,id为12的学⽣的姓名修改为'王五'update stu set name='王五' where id=12;关于空值(null),在where中不能够使⽤ =null 或者 != null ,⽽是使⽤ is null 或者 is not null -- 将stu表中,所有name为空的信息,将其id修改为22update stu set id=22 where name is null;查询语句如⽆意外,接下来的教程,将以emp表和dept表为例⼦表介绍emp表(员⼯信息表)字段含义empno员⼯⼯号/编号ename员⼯姓名job员⼯⼯种/职位mgr员⼯的上级的⼯号hiredate⼊职⽇期sal⼯资/薪⽔comm奖⾦deptno部门编号JOB职位讲解:职位含义CLERK秘书SALESMAN销售MANAGER经理ANALYST分析员PRESIDENT董事长dept表(部门表)字段含义deptno部门编号dname部门名称loc部门地址基本的查询语句语法select * from 表名; * 表⽰所有列select 列名1,列名2 from 表名;查询出所有员⼯的姓名以及⼯资select ename,sal from emp;带条件的查询 where 条件查询出⼯资⼤于1500的所有的员⼯的姓名以及⼯种select ename,job from emp where sal > 1500;查询出⼯资⼤于2000,并且部门号为20 员⼯的所有信息select * from emp where sal>2000 and deptno=20;查找出奖⾦超过其⼯资的雇员的姓名、⼯资、奖⾦和⼯种的信息select ename,sal,comm,job from emp where comm > sal;每个⽉22个⼯作⽇算,查找出每个⼈的⽇薪select ename,sal,sal/22 from emp;去重 distinct查找出公司有多少种职位select distinct job from emp;模糊查询 like%表⽰任意长度的字符查询出姓名以A开头的员⼯的信息select * from emp where ename like 'A%';查询出姓名以K结尾的员⼯的信息select * from emp where ename like '%K';查询出姓名中包含了A的员⼯的所有信息select * from emp where ename like '%A%';_表⽰⼀个字符查找出姓名以W开头,以D结尾,长度为4的员⼯的信息select * from emp where ename like 'W__D';查找出姓名以A开头,长度为5的员⼯的信息select * from emp where ename like 'A____';查找出emp表中经理号(MGR)为空的职⼯的有关信息select * from emp where mgr is null;between and 表⽰⼀个范围between 1000 and 2000 表⽰在1000~2000之间not between 1000 and 2000 表⽰在1000~2000之外查找出⼯资在1000-2000之间的职⼯信息select * from emp where sal between 1000 and 2000;查找出⼯资在1000-2000之外的职⼯信息select * from emp where sal not between 1000 and 2000;in/not in 属于/不属于查找出⼯资是1500或者是2000或者是3000的职⼯的所有信息select * from emp where sal in (1500,2000,3000);查找出⼯资不是1500、2000、3000的职⼯的所有信息select * from emp where sal not in (1500,2000,3000);随堂练习11. 查找出全部经理和第10号部门秘书的有关信息2. 查找出不是30号部门中的所有经理的所有信息。
实验三 SQL语言的DDL及DML初步
实验三SQL语言的DDL及DML初步1.1 实验目的本实验的目的是使学生熟悉SQL Server的查询分析器的使用用法,熟悉SQL Server的常用数据类型,熟练掌握简单表的创建与修改。
此外,通过此次实验,了解DDL语言的CREATE、DROP和ALTER对表进行操作;了解DML语言的INSERT语句,学会SQL Server 2000的查询分析器中用DML语言对表中的数据进行插入。
1.2 实验内容1、启动数据库服务软件SQL Server 2000的查询分析器。
(1)在程序菜单中选择Microsoft SQL Server,如下图1所示。
图1(2)选中查询分析器,如图2所示。
图 2(3)点击查询分析器后,出现连接到SQL Server窗口,如图3所示。
图 3(4)点击确定,出现SQL查询分析器主界面,如图4所示。
(5) 选择查询菜单,点击“更改数据库”,如图5所示。
(6)出现选择数据库窗口,如图6所示。
图6(7) 选择要修改的数据库,点击确定,进行修改。
2、在查询分析器中建立表(1)在查询分析器的查询窗口中输入SQL语句,如图7所示。
图7(2) 点击按钮,执行该SQL语句,在查询窗口下部出现一个输出窗口,如图8所示。
图8提示命令成功完成,或者报告出错信息。
3、查询分析器中向表添加数据(1)在查询分析器的查询窗口中输入SQL语句,如图9所示。
图9(2) 点击按钮,执行该SQL语句,在查询窗口下部出现一个输出窗口,如图10所示。
图101.3 实验任务一、实验任务11、打开数据库SQL Server 2000的查询分析器,用Create Table建表aa,表结构如下所示:2、用Create Table建表bb,表结构如下所示:3、用Drop Table删除表aa。
4、用Alter Table修改表bb,添加一个字段Bb4,类型Varchar,长度20。
二、实验任务25、打开数据库SQL Server 2000的查询分析器,用Create Table建表cc,表6、用INSERT语句对表cc插入6条记录三、实验内容37、基本表的建立:a)建立一个“学生”表Student,它由学号xh、姓名xm、性别xb、年龄nl、所在系xi五个属性组成,其中学号属性为主键,姓名值是唯一的;b)建立“课程”表kc,包括课程号kch,课程名称kcmc,先修课程xxkc,学分xf,要求建立主键;c)建立“成绩登记”表cjdj,包括学号xh,程号kch,成绩cj,要求建立主键及与student及kc表连接的外码。
ch04-操作数据-DML语句
50 DEVELOPMENT DETROIT
INSERT语句
使用 INSERT 语句向表中增加新行.
INSERT INTO VALUES table [(column [, column...])] (value [, value...]);
使用这种方法只能一次插入一行数据.
插入新行
插入包含每一个列值的新行. 按缺省顺序列出表中所有的列值. 列出 INSERT 子句中所有的列.
(SELECT FROM WHERE (SELECT FROM WHERE deptno emp empno = 7788) job emp empno = 7788);
修改行: 完整性约束错误
SQL> UPDATE 2 SET 3 WHERE
emp deptno = 55 deptno = 10;
VALUES
插入特殊的日期值
增加一个新的员工.
SQL> INSERT INTO 2 VALUES 3 4 1 row created. emp (2296,'AROMANO','SALESMAN',7782, TO_DATE('FEB 3, 1997', 'MON DD, YYYY'), 1300, NULL, 10);
UPDATE SET [WHERE table column = value [, column = value, ...] condition];
如果需要,可以一次更改多行.
更改表中的行
使用 WHERE 子句来指定要修改的行.
SQL> UPDATE emp 2 SET deptno = 20 3 WHERE empno = 7782; 1 row updated.
数据库-DML语句详解
插入数据的时候需要满足表的完整性约束(主键、外键、不能为空、check、unique等),另外还要符合列的类型和长度的定义INSERTINTO <表名> [(<属性列1>[,<属性列2 >…)]VALUES (<常量1> [,<常量2>] …)例:插入学生信息--只写表名,注意插入值的个数、顺序、数据类型与建表时列的个数、顺序、数据类型一致insert into student values('08009','李倩','女','CS',20);--指定列名,注意插入值的个数、顺序、数据类型与前面列的个数、顺序、数据类型一致insert into student(sno,sname,ssex,sdept,sage) values('08010','李倩倩','女','CS',20);insert into student(sno,ssex,sname) values('08011','女','王倩');例:插入成绩信息insert into sc values('08001','003',85);insert into sc(sno,cno) values('08001','004');insert into sc values('08002','001',null);例:MySQL插入多条语句insert into sc values('08007','001',85),('08007','002',85),('08007','003',95);insert into..select..注意select查询的列的个数、顺序、数据类型insert into后面的一致例:利用子查询插入数据insert into..select..建立在表存在的基础上create table dept_age(sdept char(15),avg_age smallint);insert into dept_ageselect sdept,avg(sage) from student where sdept is not null group by sdept;insert into dept_age(sdept)select distinct(sdept) from student where sdept is not null ;insert into dept_age(avg_age,sdept)select avg(sage),sdept from student where sdept is not null group by sdept;还有一种利用子查询填充数据是create table .. as select ..这个语句代表建表并将查询的数据插入表中create table s_avggrade as select sno,avg(grade) from sc group by sno;create table newstudent as select * from student where 1>2; --where条件为假,只是复制表,并没有填充数据,一些约束会丢失更新数据的时候需要满足表的完整性约束(主键、外键、不能为空、check、unique等),另外还要符合列的类型和长度的定义UPDATE <表名>SET <列名>=<表达式>[,<列名>=<表达式>]…[WHERE <条件>]例:修改学生信息update student set sage=22 where sno='08001';update student set sdept='IS',sage=18 where sname='王倩';例:修改成绩信息update sc set grade=60 where grade is null;update sc set grade=grade+10; --没有where条件修改所有数据例:利用子查询修改数据update sc set grade=0 where sno in(select sno from student where sdept='CS');update sc set grade=0 where 'CS'=(select sdept from student where sno=sc.sno);update sc set grade=0 where exists(select * from student where sno=sc.sno and sdept='CS');更新选修高等数学且成绩小于60的选修成绩为60分update sc set grade=60 where cno in (select cno from course where cname='高等数学') and grade<60;update sc set grade=60 where '高等数学'=(select cname from course where cno=o) and grade<60;update sc set grade=60 where exists (select * from course where cno=o and cname='高等数学') and grade<60;删除数据注意如果有外键关系的时候,删除数据可能会受到影响,删除数据的顺序需要注意下DELETEFROM <表名>[WHERE <条件>]例:删除数据delete from sc where grade<60;delete from sc where cno=’004’;delete from sc where sno='08007' and grade<60;delete from s_avggrade;例:利用子查询删除数据delete from sc where sno in(select sno from student where sdept='CS');delete from sc where 'CS'=(select sdept from student where sno=sc.sno);delete from sc where exists(select * from student where sno=sc.sno and sdept='CS');删除选修高等数学的学生成绩小于60的记录delete from sc where cno in(select cno from course where cname='高等数学') and grade<60; delete from sc where '高等数学'=(select cname from course where cno=o) and grade<60; delete from sc where exists(select cname from course where cno=o and cname='高等数学') and grade<60;truncate table tablename;TRUNCATE TABLE 在功能上与不带WHERE子句的DELETE语句相同,二者均删除表中的全部行。
数据库实验SQL语言数据操纵语言DML
Name Varchar(20) not null,
Age Integer not null,
Score Numeric(10,2) not null,
Address Varchar(60) not null
);
2.用insert插入test代码及结果:
代码:inser、实验实习设备(环境)及要求(软硬件条件)
硬件:PC
软件:Navicat for mysql 6.0
三、实验实习内容与步骤
1).实验内容:
1.启动Navicat for MySQL,用INSERT语句对表进行单条数据插入操作,语法格式如下:
Insert Into <表名> [(<属性列1>[,<属性列2>]„)] Values (<常量1>[,<常量2>]„);其中,INSERT INTO指明要插入的表以及表中的属性列(字段),VALUES指要插入相应属性列(字段)的值。
INSERT语句的批量插入,把从其他表中查询出来数据插入到当前表中。
例如:
Insert into test (name,age,score,address) Select
name,age,score,address from test_temp;
2.在Navicat for MySQL中,用UPDATE语句对表中已有的数据进行修改,语法格式如下:
9.用UPDATE语句将test表中居住在南福苑所有学生的年龄减少1,岁。
10.用DELETE语句将test表中年龄大于等于21并且成绩大于等于500的学生数据删除掉。
11.用D,ELETE语句将test表中成绩小于550并且居住在重邮宿舍的学生数据删除掉。
MySQL中的DML语句执行技巧
MySQL中的DML语句执行技巧MySQL是一种常用的关系型数据库管理系统,它具有良好的性能和可靠性,被广泛用于各种应用场景。
在MySQL中,数据操作语言(Data Manipulation Language,简称DML)语句用于执行对数据库表中数据的增、删、改操作。
本文将介绍一些MySQL中DML语句的执行技巧,旨在帮助读者快速、有效地操作数据库。
一、插入数据插入数据是使用MySQL的DML语句最常见的操作之一。
在插入数据时,可以使用"INSERT INTO"语句指定要插入数据的表名和要插入的数据值。
例如:```INSERT INTO students(name, age, gender, grade) VALUES('Tom', 18, 'male', 'A');```上述语句将在名为"students"的表中插入一条数据,该数据包括姓名、年龄、性别和年级。
在实际操作中,可以使用占位符的方式插入变量值,以提高代码重用性和安全性。
另外,MySQL还提供了"INSERT INTO ... SELECT"语句,可以实现从一个表中选择部分数据并插入到另一个表中。
这在数据迁移和数据分析等场景中非常有用。
二、更新数据更新数据是在MySQL中执行DML操作的另一个重要方面。
更新数据使用"UPDATE"语句,该语句可以指定要更新的表名、列名以及更新后的值。
例如:```UPDATE students SET grade = 'A+' WHERE name = 'Tom';```上述语句将名为"students"的表中姓名为"Tom"的学生的年级更新为"A+"。
在实际应用中,可以使用"WHERE"子句指定更新条件,以准确、高效地更新数据。
DML数据操作语言
添加多条语句:insert into 表名(字段名....) select 内容 [nuion select 值[union]];
将A表列插入到B表(已知):insert into BM(B)(列名) select [列名 ...] from BM(A);
(一)、DML(数据操作语言)用于操作数据库对象中所包含的数据
包括 :INSERT(添加数据语言)
UPDATE(更新数据语言)
DELETE(删除数据语言)
一、添加数据
INSERT命令 语法:
INSERT INTO 表名[(字段1,字段2,...)] VALUES(“值1”,“值2”...);
START TRANSACTION:开始一个事务,标记事务的起始点
COMMIT:提交一个事务给数据库
ROLLBACK:(如有问题)将事务回滚(之前做的作废),数据回到本次事务的初始状态
SET AUTOCOMMIT =1:还原数据库的自动提交
将A表列插入到B表(未知):select 列名 into BM(B) from BM(A);
二、修改数据
UPDATE 命令语法:
UPDATE 表名 SET column_name=valve[,coumn_name2=value,...]
[where condition];
持久性(Durable)数据永久
二、事务的实现方法
改变自动提交模式:
SET AUTOCOMMIT =0;#关闭自动提交模式
SET AUTOCOMMIT =1;#开启自动提交模式
DML 数据操作语言
1 DML数据库操作语言DML 可以在下列条件下执行:•向表中插入数据•修改现存数据•删除现存数据在cmd中输入DESC EMP 表输出信息使用INSERT 语句向表中插入数据INSERT INTO 表名[(column1 [, column...])] //括号可以为0 列名V ALUES (value [, value...]); //值1,值2 …..使用这种语法一次只能向表中插入一条数据。
为每一列添加一个新值。
按列的默认顺序列出各个列的值。
在INSERT 子句中随意列出列名和他们的值。
字符和日期型数据应包含在单引号中插入数据的时候应该values 值和字段的类型和数量保持一致INSERT INTO departments(department_id, department_name, manager_id, location_id) VALUES (70, 'Public Relations', 100, 1700); select * from departments第一种方法:insert into departments(DEPARTMENT_ID,DEPARTMENT_NAME,MANAGER_ID,LOCATION_ID) values (120,'eee',206,1700)select * from departments第二种方法:insert into departmentsvalues (121,'eee',206,1700)列可以省略隐式方式: 在列名表中省略该列的值select * from departmentsINSERT INTO departments (department_id,department_name )VALUES(30, 'Purchasing');显示方式: 在VALUES 子句中指定空值。
数据库原理及应用实验教案
攀枝花学院
Panzhihua University 教案
2011 ~2012 学年度第2 学期
课程名称数据库原理
学时(学分)14
适用班级09网络、09信本授课教师刘继光
教师职务
教学单位计算机学院
教务处制
实验教案编写说明
1、实验教案的编写要求参照《攀枝花学院教案编写规范》(攀院教[2007]04号)执行。
2、实验教案格式可按附后“实验教案”格式采用手写或打印。
3、实验教案的基本内容可包括:教学目的与要求、教学重点与难点、仪器设备及用具、教学过程(含①实验预习检查②实验原理及方法③仪器设备介绍④实验内容及注意事项⑤实验指导要点⑥检查实验结果)、实验预做记录(含①原始实验数据记录②数据处理及结果分析)、实验预习要求、实验报告要求、参考书目、后记等相关内容。
4、实验教案编写应在坚持教案编写基本要求的基础上,充分考虑教师自身条件和学科的差异,针对教师、学科、学生以及教学情景的不同,编写出形式多样,能体现教学风格、具有特色的教案,促进教案的创新。
5、教案编写水平的高低,很大程度上取决于教师钻研教材与实验方法,研究学生实际状况和设计教学方法的水平,取决于教师对本学科知识掌握的深度和广度以及教师教育思想的端正更新。
因此,教师应努力提高自身素质,提高教师教案编写水平。
实验教案
第页
第页
第页
第页
第页
第页
第页
第页
第页
第页
第页
第页。
实验三数据库dml语句操作实验(1)
实验三数据库dml语句操作实验(1)实验三数据库DML语句操作实验实验学时:2一、实验目的:数据库更新操作是SQL语句的重要组成部分,通过试验,加深学生对数据更新操作基本概念的理解与掌握,学会使用SQL数据操纵语言插入、修改和删除表中记录,体会数据完整性约束的作用,加深对数据完整性约束的理解,从而达到灵活应用的目的。
二、实验内容及要求:试验所使用的数据库表结构如下:(一 )插入记录(Insert into)1、单记录插入操作:为每个表设计一组记录(包括满足完整性约束和不满足完整性约束的),用insert命令插入表中,观察命令执行结果。
例如:向dept表插入下面5单条记录jsj 计算机系 3370001 励志楼dx 电信系 3370002 励志楼jsjxy 计算机系 Null Null (不满足系名称唯一约束)null 机电系 3370005 Null(不满足主码非空约束)jsjxy Null ‘a2334’ Null(不满足电话为数字约束)向class表插入下面3单条记录班级编号班级名称所在系编号12计本1班 jsj13计本1班 jsj2013软本 13软本1班 jsj向Student表插入下面5单条记录01 张三男 1702 李四男 1801 王武男 1802 郑艳女 1603 刘莉女 1804张国男 2010JS1 1705李强男 2010JS1 182013JS2108003李刚男 2010JS2 18(学号超长)03王丽女 2010JS2 18(学号重复)向Course插入4门课程信息C001 数据库原理 NULLC002 自动控制原理 3C003 专业英语 2C004 数字电路 32、多条记录的插入操作(1)将Student表的数据批量插入##Student中(2)向Student表插入一条记录学号:06 姓名:李新性别:男班级:与在同一班年龄:与05的年龄相同(3)学号为05的学生,选修了所有的课程,每门功课都还没有成绩,请将该同学的选课记录插入到选课表中。
实验3数据操纵语言DML-2015
实验3数据操纵语⾔DML-2015实验3 数据操纵语⾔DML实验⽬的1.熟悉SQL语⾔中DML的功能。
2.初步了解如何进⾏查询优化。
3.初步了解SQL语句的查询计划。
实验平台1.OS:Windows XP/72.DBMS:SQL Server 2008实验⽤时两次上机(4⽉21号之前提交实验报告)预备知识⼀、数据操纵语⾔数据库数据操纵语⾔DML (Data Manipulation Language),它使⽤户能够查询数据库以及操作已有数据库中的数据的计算机语⾔。
DML具体包含查询,删除,更新,插⼊四种操作。
⼆、SQLSQL(Structured Query Language)结构化查询语⾔,是⼀种数据库查询和程序设计语⾔,⽤于存取数据以及查询、更新和管理关系数据库系统。
SQL语⾔包括三种主要程序设计语⾔类别的语句:数据定义语⾔(DDL),数据操作语⾔(DML)及数据控制语⾔(DCL)。
三、SQL Server 临时表SQL Server包含⼀个⾃带的系统数据库——tempdb。
它⽤来存放⽤户创建的临时对象。
临时对象分为全局临时对象和区域临时对象。
全局临时对象所有⽤户可见,区域临时对象仅当前连接对象可见。
每当SQL Server重启后,tempdb数据库会被重新创建。
临时表的创建:临时表的创建与表的创建⽅法⼀样,只不过本地临时表的名称前⾯有⼀个编号符 (#table_name),⽽全局临时表的名称前⾯有两个编号符 (##table_name)。
如:CREATE TABLE #Temp (cola INT PRIMARY KEY)将创建⼀个名为Temp的临时表。
临时表的其他数据操作和表的⼀致。
实验活动注:请各位同学⽤SQL语句完成今天实验的所有步骤(系统视图的查看除外),并在实验报告中记录每条语句。
每个操作完成之后,观察相关系统表的改变并分析原因。
⼀、熟悉SQL语句的DML功能步骤⼀:创建数据库,建⽴第⼆章习题5中的4个表,并插⼊数据。
msql学习三:DML语言
msql学习三:DML语⾔⼀、数据库意义数据存储、数据管理⼆、管理数据库数据的⽅法通过sqlyog等管理⼯具管理数据库数据通过DML语句管理数据库数据DML语⾔:数据操作语⾔⽤于操作数据库对象中的所包含的数据包括:insert(添加数据语句)、update(更新数据语句)、delete(删除数据语句)三、添加数据insert命令1. 语法insert into `表名` [(字段1,字段2,字段3,...)] values ('值1','值2','值3',...);2. 注意:字段或值之间⽤英⽂逗号隔开 .' 字段1,字段2...' 该部分可省略 , 但添加的值务必与表结构,数据列,顺序相对应,且数量⼀致 .可同时插⼊多条数据 , values 后⽤英⽂逗号隔开 .-- 语法 : INSERT INTO 表名[(字段1,字段2,字段3,...)] VALUES('值1','值2','值3')INSERT INTO `grade` (gradename) VALUES ('⼤⼀');-- 主键⾃增,那能否省略呢?INSERT INTO `grade` VALUES ('⼤⼆'); -- 错误代码: 1136 Column count doesn't match value count at row 1-- 结论:'字段1,字段2...'该部分可省略 , 但添加的值务必与表结构,数据列,顺序相对应,且数量⼀致.-- ⼀次插⼊多条数据INSERT INTO `grade` (gradename) VALUES ('⼤⼆'),('⼤三'),('⼤四');四、修改数据update命令1. 语法update `表名` set 字段1='值1'[, 字段2='值2', ...] [where 条件];2. where条件⼦句可以理解为有条件的从表中筛选数据-- 修改年级信息UPDATE `grade` SET gradename='⾼中' WHERE gradeid='1';五、删除数据delete命令1. 语法delete from `表名` [where 条件];注意:condition为筛选条件 , 如不指定则删除该表的所有列数据-- 删除⼀条数据DELETE FROM `grade` WHERE gradeid='1';truncate作⽤:⽤于完全清空表数据,但表结构,索引,约束等不变1. 语法TRUNCATE [TABLE] `表名`;-- 清空年级表TRUNCATE `grade`;注意:区别于delete命令相同:都能删除数据,不删除表结构,但truncate速度更快不同:使⽤TRUNCATE TABLE 重新设置AUTO_INCREMENT计数器、使⽤TRUNCATE TABLE不会对事务有影响(事务后⾯会说)举例-- 创建⼀个测试表CREATE TABLE `test` (`id` INT(4) NOT NULL AUTO_INCREMENT,`coll` VARCHAR(20) NOT NULL,PRIMARY KEY (`id`)) ENGINE=INNODB DEFAULT CHARSET=utf8-- 插⼊⼏个测试数据INSERT INTO test(coll) VALUES('row1'),('row2'),('row3');-- 删除表数据(不带where条件的delete)DELETE FROM test;-- 结论:如不指定Where则删除该表的所有列数据,⾃增当前值依然从原来基础上进⾏,会记录⽇志.-- 删除表数据(truncate)TRUNCATE TABLE test;-- 结论:truncate删除数据,⾃增当前值会恢复到初始值重新开始;不会记录⽇志.-- 同样使⽤DELETE清空不同引擎的数据库表数据.重启数据库服务后-- InnoDB : ⾃增列从初始值重新开始 (因为是存储在内存中,断电即失)-- MyISAM : ⾃增列依然从上⼀个⾃增数据基础上开始 (存在⽂件中,不会丢失)。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验三数据库DML语句操作实验实验学时:2一、实验目的:数据库更新操作是SQL语句的重要组成部分,通过试验,加深学生对数据更新操作基本概念的理解与掌握,学会使用SQL数据操纵语言插入、修改和删除表中记录,体会数据完整性约束的作用,加深对数据完整性约束的理解,从而达到灵活应用的目的。
二、实验内容及要求:试验所使用的数据库表结构如下:(一 )插入记录(Insert into)1、单记录插入操作:为每个表设计一组记录(包括满足完整性约束和不满足完整性约束的),用insert命令插入表中,观察命令执行结果。
例如:向dept表插入下面5单条记录jsj 计算机系 3370001 励志楼dx 电信系 3370002 励志楼jsjxy 计算机系 Null Null (不满足系名称唯一约束)null 机电系 3370005 Null(不满足主码非空约束)jsjxy Null ‘a2334’ Null(不满足电话为数字约束)向class表插入下面3单条记录班级编号班级名称所在系编号12计本1班 jsj13计本1班 jsj2013软本 13软本1班 jsj向Student表插入下面5单条记录01 张三男 1702 李四男 1801 王武男 1802 郑艳女 1603 刘莉女 1804张国男 2010JS1 1705李强男 2010JS1 182013JS2108003李刚男 2010JS2 18(学号超长)03王丽女 2010JS2 18(学号重复)向Course插入4门课程信息C001 数据库原理 NULLC002 自动控制原理 3C003 专业英语 2C004 数字电路 32、多条记录的插入操作(1)将Student表的数据批量插入##Student中(2)向Student表插入一条记录学号:06 姓名:李新性别:男班级:与在同一班年龄:与05的年龄相同(3)学号为05的学生,选修了所有的课程,每门功课都还没有成绩,请将该同学的选课记录插入到选课表中。
(4)为所有学生选修数据库原理课程,其成绩为NULL,(二)修改记录Update1、将student表中学号为02的记录年龄更新29,班级编码更新为2013软本2、将student表中学号为03的记录年龄更新为学号为04的年龄减1,性别更新成与05的性别相同3、批量更新:将student表中,所有年龄大于18岁的男同学的班级编号更改成2013软本,年龄更新成20岁4、带子查询的更新:将SC表中,学号在Student中出现过并且考试成绩为空的考试成绩更新为60。
(三)删除记录Delete1、单条记录删除: 删除student中,学号为02的记录(想想应该如何删除)2、批量删除: 删除SC中,学号为04的记录3、带子查询的删除:删除Student表中存在,但是在SC表中不存在选课记录的学生。
三、思考与练习1.临时表分为哪两种有什么区别实验报告要求:1.实验目的2.实验内容及步骤3.实验习题的源程序清单4.写出在实验过程中遇到的问题及解决方法5.要求字迹端正、条理清晰、概念正确附1:表创建语句Create database jxglUse jxglCreate table dept(Deptno CHAR(8)primary key,Deptname varCHAR(20)unique,Dpho varCHAR(15),Deptadd CHAR(40))Create table class(classno char(8)primary key,classname varchar(10)unique,deptno char(8)foreign key references dept)create table Student(SNO CHAR(10)PRIMARY KEY check (left (sno,2)=’20’),SNAME VARCHAR(20)NOT NULL,SEX VARCHAR(2)check (sex in('男','女')),Classno VARCHAR(8)NOT NULL,AGE SMALLINT)Create table Course(CNO CHAR(4)PRIMARY KEY,CNAME VARCHAR(32)NOT NULL UNIQUE,SCORE SMALLINT NOT NULL DEFAULT 4 check (score in(1,2,3,4,5)))Create table SC(SNO CHAR(10)FOREIGN KEY references student,CNO CHAR(4)FOREIGN KEY references course,GRADE INT CHECK (Grade>= 0 and Grade<= 100)PRIMARY KEY(sno,cno))insert into dept(Deptno,Deptname,Dpho,Deptadd) values('jsj','计算机系','3370001','励志楼')insert into dept(Deptno,Deptname,Dpho,Deptadd) values('dx','电信系','3370002','励志楼')insert into dept(Deptno,Deptname,Dpho,Deptadd) values('jsjxy','计算机系',null,null)insert into dept(Deptno,Deptname,Dpho,Deptadd) values('dxy','机电系','3370005',null)insert into dept(Deptno,Deptname,Dpho,Deptadd) values('jsjxy',null,'a2334',null)向class表插入下面单条记录班级编号班级名称所在系编号insert into class (classno,classname,deptno) values('','12计本班','jsj')insert into class (classno,classname,deptno) values('','13计本班','jsj')insert into class (classno,classname,deptno) values('2013软本','13软本班','jsj')向Student表插入下面单条记录insert into Student (sno,sname,sex,classno,age) values('01','张三','男','','17') insert into Student (sno,sname,sex,classno,age) values('02','李四','男','','18') insert into Student (sno,sname,sex,classno,age) values('01','王武','男','','18') insert into Student (sno,sname,sex,classno,age) values('02','郑艳','女','','16')insert into Student (sno,sname,sex,classno,age) values('03','刘莉','女','','18') insert into Student (sno,sname,sex,classno,age) values('04','张国','男','2010JS1','17')insert into Student (sno,sname,sex,classno,age) values('05','李强','男','2010JS1','18')insert into Student (sno,sname,sex,classno,age) values('2013JS2108003','李刚','男','2010JS2','18')insert into Student (sno,sname,sex,classno,age) values('03','王丽','女','2010JS2','18')向Course插入门课程信息insert into Course(cno,cname,score) values('C001','数据库原理',NULL)insert into Course(cno,cname,score) values('C002','自动控制原理','3')insert into Course(cno,cname,score) values('C003','专业英语','2')insert into Course(cno,cname,score) values('C004','数字电路','3')。