授课笔记
一.上次授课知识回顾
#实训报告三讲解:
--使用数据库
USE db_sp02;
/*创建数据库表*/
--创建tb_s表
CREATE TABLE IF NOT EXISTS tb_s(
sno INT(6)PRIMARY KEY AUTO_INCREMENT,--供应商编号
sname VARCHAR(20)UNIQUE,--供应商名
STATUS INT,
city VARCHAR(20)NOT NULL
);
显示表的结构:
DESC tb_s;
--创建tb_p表
CREATE TABLE IF NOT EXISTS tb_p(
pno INT(8)PRIMARY KEY AUTO_INCREMENT,--零件编号
pname VARCHAR(20)UNIQUE,--零件名
color CHAR(10)DEFAULT'红',
weight FLOAT,--重量
sno INT(6),--供应商编号
CONSTRAINT sp00013FOREIGN KEY(sno)REFERENCES tb_s(sno)
);
显示表的结构:
DESC tb_p;
二.本次授课内容
1.插入记录
语法:
Insert into表名(字段1,字段2,....字段n)values(值1,值2,....值n);
其中:insert和values两者是必须要有的,表名后面的字段名要根据实际情况来看是否要添加。
(1)插入一条完整的记录
语法:
Insert into表名(字段1,字段2,....字段n)values(值1,值2,....值n);
Insert into表名values(值1,值2,....值n);
例子1:向供应商表s中插入一条完整的记录。
INSERT INTO s VALUES('s01','中兴',0,'南昌');
#或
INSERT INTO s(sno,sname,STATUS,city)VALUES('s02','华为',1,"深圳");
说明:在插入记录的时候,values后面的值的顺序、类型要和前面的字段保持一致。
(2)插入部分字段的值
语法:
Insert into表名(字段1,字段2,....字段n)values(值1,值2,....值n);
说明:此时必须要指定字段的名称。
例子2:向供应商表s中插入一条不完整的记录。(sno,sname,city)
INSERT INTO s(sno,sname,city)VALUES('s03','华为1',"南昌");
(3)一次性插入多条记录
语法:
Insert into表名(字段1,字段2,....字段n)values
(值1,值2,....值n),
(值11,值21,....值n1),
(值12,值22,....值n2);
说明:在进行批量添加记录的时候,values后面的多个括号之间要用逗号分隔。
例子3:给供应商表s中一次性插入三条完整的记录。
/
*如:给供应商表s中一次性插入三条完整的记录。*/
INSERT INTO s(sno,sname,STATUS,city)VALUES
('s04','华为2',1,"深圳"),('s05','华为3',1,"广州"),('s06','华为4',0,"北京");
2.修改记录
语法:
Update表名set字段1=值1,字段2=值2,....[where子句];
提示:语法中的where可以省略,在修改表中的记录时,若未指定条件,则表示对所有记录进行修改。
例子4:将供应商表s中的status值为0的所有记录中的city字段值改为”上海”。
UPDATE s SET city='上海'WHERE STATUS=0;
例子5:将供应商表s中编号为s02的记录中sname的值改为'腾讯',city的值改为'抚州'.
UPDATE s SET sname='腾讯',city='抚州'WHERE sno='s02';
3.删除记录
有两种方式:
(1)使用delete语句:
特点:删除记录之后,会在日志中有记录;对于自增长的字段无影响,添加的值会在前面的值基础上递
增。
语法:
Delete from表名[where子句];
提示:若无条件,则表示删除表中的所有记录。
mysql操作官方文档例子6:对供应商表s中的status值为null的所有记录。
Delete from s where status is null;
(2)使用truncate语句:
特点:删除记录之后,不会在日志中有记录,对于自增长的字段有影响,若添加的值则重新从1开始。语法:
Truncate[table]表名;
例子7:对供应商表s中的status值为null的所有记录。
DELETE FROM s WHERE STATUS IS NULL;
例子8:将s5中的所有记录删除掉
TRUNCATE TABLE s5;
例子9:将s5中的所有记录删除掉
DELETE FROM s5;
4.复制表的结构及记录
例子10:创建一张新表s6,复制s表的结构
CREATE TABLE s6SELECT*FROM s WHERE1=3;
说明:若该语句后面的where条件成立,则表示在创建新表的时候,既可以复制旧表的结构,也可以复制旧表的所有记录。
例子11:将s表中的记录复制到s6中
INSERT INTO s6SELECT*FROM s;
例子12:创建一张新表s7,复制s表的结构及记录
CREATE TABLE s7SELECT*FROM s WHERE1=1;
三.预习任务
单表查询
四.作业
完成实训报告四。