“ [MySQL]数据库原理5——喵喵期末不挂科 ”

发布时间:2024-03-07
今日阅读:0
来源:CSDN
作者:猫佛佛
...

img > 希望你开心,希望你健康,希望你幸福,希望你点赞! 最后的最后,关注喵,关注喵,关注喵,佬佬会看到更多有趣的博客哦!!! 喵喵喵,你对我真的很重要! 目录 前言 删除表 表数据操作 1使用INSERT INTO| REPLACE语句 2用LOAD DATA语句将数据装入数据库表中 3图片数据的插入 修改数据 删除数据 同步练习 总结

前言

冲冲冲!!!

删除表

如果表不合适或不需要了,可以用命令删除已存在的表。 语法格式 mysql> DROP [TEMPORARY] TABLE [IF EXISTS] tbl_name [, tbl_name] … 删除表STUDENTS1 mysql> DROP TABLE STUDENTS1;

表数据操作

插入数据 INSERT INTO ,将以主键判断数据是否重复,如果重复,则整行插入不成功。 REPLACE INTO ,同样以主键判断数据是否重复,如果重复,将替换原数据行。 LOAD DATA INFILE ,可以将外部文件的数据导入指定表。 一次可以插入一行或插入多行数据。

1使用INSERT INTO| REPLACE语句

语法格式
          INSERTREPLACE   [INTO] tbl_name [(col_name,...)]
          VALUES ({expr | DEFAULT},...),(...),...
          | SET col_name ={expr | DEFAULT}, ...

举个例子 同时向表 STUDENTS 中插入两行数据 (‘132001’ ,’李平’,男, 1992-02-01’ ,D001’ ,上海市南京路1234号’ ,’021-345478’ , NULL) , (‘132002’ ,’张三峰’ ,’男’ ,’1992-04-01’ ,’D001’ ,’广州市沿江路58号’ ,’020-345498’, NULL)。 mysql> INSERT INTO STUDENTS VALUES (‘132001’, ‘李平’, ‘男’, ‘1992-02-01’, ‘D001’, ‘上海市南京路1234号’, ‘021-345478’, NULL), (132002, 张三峰, 男, 1992-04-01, D001, 广州市沿江路58号, 020-345498, NULL) 再次用 INSERT INTO 语句向 STUDENTS 表中插入数据。 mysql> INSERT INTO students (s_no, s_name, sex)VALUES(‘132001’, ‘李小平’, ‘男’); 改用 REPLACE INTO 语句。 mysql> REPLACE INTO STUDENTS(s_no, s_name, sex) VALUES(‘132001’, ‘李小平’, ‘男’); 假设有一课程表与 COURSE 的结构相同,现将 COURSE 的数据插入到课程表中。 mysql> INSERT INTO 课程表 SELECT * FROM COURSE; 注 1VALUES子句包含各列需要插入的数据清单,数据的顺序要与列的顺序相对应。若表名后不给出列名,则在VALUES子句中要给出每一列除IDENTITY和 timestamp类型的列的值,如果列值为空,则值必须置为NULL,否则会出错。 2使用INSERT语句可以向表中插入一行数据,也可以插入多行数据,最好一次插入多行数据,各行数据之间用“,”分隔。 3可使用SET子句插入数据,用SET子句直接赋值时可以不按列顺序插入数据,对允许空值的列可以不插入。 4 REPLACE INTO向表中插入数据时,首先尝试插入数据到表中, 如果发现表中已经有此行数据根据主键或者唯一索引判断,则先删除此行数据,然后插入新的数据,否则,直接插入新数据。 5还可以向表中插入其他表的数据,但要求两个表要有相同的结构。

2用LOAD DATA语句将数据装入数据库表中

LOAD DATA INFILE 语句 是SELECT … INTO OUTFILE的逆操作 ,用来导入、导出数据。 举个例子 将course表的数据导出到course.txt中。 SELECT * from jxgl.course into OUTFILE ’d:/course2.txt’; 创建一个名为“课程表”的表,将course.txt的数据插入到课程表中。 LOAD DATA LOCAL INFILE D:\course2.txt INTO TABLE 课程表 character set utf8;???? 注 1MySQL Server默认的字符集是UTF8,在插入数据时,为避免中文字符乱码,要加上character set utf8。 2course.txt各行文本之间要用制表符分隔。

3图片数据的插入

MySQL 还支持图片的存储,图片一般可以以路径的形式来存储,即插入图片采用直接插入图片的存储路径。 当然,也可以直接插入图片本身,只要用 LOAD_FILE( ) 函数即可。 122110,程明,男, 1991-02-01,D001,北京路123号,02066635425,picture.jpg 其中,照片路径为“D: \IMAGE\ picture.jpg”。 mysql> INSERT INTO STUDENTS VALUES(‘122111’, ‘程明3’, ‘男’, ‘1991-02-01’, ‘D001’, ‘北京路123号’,‘02066635425’, ’D:\IMAGE\picture.jpg’); 下面语句是直接存储图片本身。 mysql> INSERT INTO XS VALUES(‘122110’, ‘程明’, ‘男’, ‘1991-02-01’, ‘D001’, ‘北京路123’, ‘02066635425’, LOAD_FILE(’D:\IMAGE\picture.jpg’); 注 1存放图片的字段要使用BLOB类型。BLOB是专门存储二进制文件的类型,有大小之分,例如mediumblob、longblob等,以存储大小不同的二进制文件,一般的图形文件使用mediumblob就足够了。 2插入图片文件路径的办法要比插入图片本身好。图片如果很小的话,可以存入数据库,但是如果图片大的话,保存或读取操作会很慢,倒不如将图片存入指定的文件夹,然后把文件路径和文件名存入数据库。

修改数据

用 UPDATE…SET… 命令对表中的数据进行修改。可以修改一个表的数据,也可以修改多个表 关联表 的数据。

修改单个表,语法格式为
          UPDATE tbl_name
          SET col_name 1= [,col_name 2=expr2 ...] 
          [WHERE子句]
          [ORDER BY子句]
          [LIMIT子句]

举个例子 将学号为122001学生的A001成绩修改为80分。 mysql> UPDATE SCORE SET REPORT=80 WHERE S_NO=‘122001’; 将课程A202的类型修改为专业基础课程。 mysql> UPDATE COURSE SET TYPE=‘专业基础课’ WHERE C_NO=‘A202’; 将A001课程成绩*1.2转为120分制计。 mysql> UPDATE SCORE SET REPORT=REPORT*1.2 WHERE C_NO=‘A001; 注 SET子句根据WHERE子句中指定的条件,对符合条件的数据行进行修改。若语句中不设定WHERE子句,则更新所有行。 expr1、expr2可以是常量、变量或表达式。可以同时修改所在数据行的多个列值,中间用逗号隔开。

删除数据

从单个表中删除,语法格式
          DELETE [LOW_PRIORITY] [QUICK] [IGNORE] FROM tbl_name
         [WHERE子句]
          [ORDER BY子句]
          [LIMIT row_count]

举个例子 删除女生记录。 mysql> DELETE FROM STUDENTS WHERE SEX=‘女’; 删除 B001 课程不及格的成绩记录。 mysql> DELETE FROM SCORE WHERE C_NO=‘B001’ AND REPORT <60; 删除 SCORE 表的所有成绩记录。 mysql> DELETE FROM SCORE; 删除 SCORE 表中分数最低的 3 行记录。 mysql> DELETE FROM SCORE ORDER BY REPORT LIMIT 3; 注 1QUICK修饰符可加快部分种类的删除操作的速度。 2FROM子句用于指定从何处删除数据。 3WHERE子句指定的删除条件。如果省略WHERE子句则删除该表的所有行。 4ORDER BY子句各行按照子句中指定的顺序进行删除,此子句只在与LIMIT联用时才起作用。ORDER BY子句和LIMIT子句的具体定义将在任务10中介绍。 5LIMIT子句用于告知服务器在控制命令被返回到客户端前被删除的行的最大值。 6数据删除后将不能恢复,因此,在执行删除之前一定要对数据做好备份。 7关键词LOW_PRIORITY,低优先级,DELETE的执行被推迟到没有其他客户读取表后。

同步练习

–use jxgl; –1.复制表的结构 –create table if not exists new_ta_name like old_tab_name; –复制students表的结构,新表名为students_1 –create table if not exists students_1 like students; –2.复制表的结构和数据 –select * from students; –复制students表的结构和数据,新表名为students_2 –create table if not exists students_2 as select * from students; –创建一个表course的附表course1 –create table if not exists course1 as select * from course; –用命令查看course1的基本结构详细结构 –desc course1; /* show create table course1; CREATE TABLE course1 ( c_no char(4) NOT NULL, c_name char(10) DEFAULT NULL, hours int(11) DEFAULT NULL, credit int(11) DEFAULT NULL, type varchar(10) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=utf8; */ –复制表course的结构和数据,名为course_copy。 –create table if not exists course_copy as select * from course; –3.删除表 –drop table ta_name –删除表students_1 –drop table students_1; –总结:创建表 查看表 修改表 复制表 删除表 –数据表的操作增删改查 –1.插入数据 –1.1插入所有字段对应的值 –insert into 表名 VALUES(); –向course表插入一条记录(D001,数据库原理A,48,3,专业基础课) –insert into course values(‘D001’,‘数据库原理A’,48,3,‘专业基础课’); –向course表插入多条记录(D001,数据库原理A,48,3,专业基础课), – (D002,数据库原理B,48,3,专业基础课), – (D003,数据库原理C,48,3,专业基础课) /* insert into course values(‘D002’,‘数据库原理A’,48,3,‘专业基础课’), (‘D003’,‘数据库原理B’,48,3,‘专业基础课’), (‘D004’,‘数据库原理C’,48,3,‘专业基础课’); / / 同时向表STUDENTS中插入两行数据 (‘132001’ ,’李平’,男, 1992-02-01’ ,D001’ ,上海市南京路1234号’ ,’021-345478’ ,NULL) , (‘132002’ ,’张三峰’ ,’男’ ,’1992-04-01’ ,’D001’ ,’广州市沿江路58号’ ,’020-345498’, NULL)。 / / insert into students values(‘132001’ ,‘李平’,‘男’,‘1992-02-01’,‘D001’ ,‘上海市南京路1234号’,‘021-345478’,NULL), (‘132002’ ,‘张三峰’ ,‘男’ ,‘1992-04-01’ ,‘D001’,‘广州市沿江路58号’ ,‘020-345498’, NULL); */ –1.2插入部分字段的值 – 向表STUDENTS中插入(‘132001’ ,’李平’, 1992-02-01’ ,D001’ )数据 –insert into 表名(字段名) values() –insert into students(s_no,s_name,birthday,d_no) values(‘132003’ ,‘李xiao平’, ‘1992-02-01’ ,‘D001’ ); –向表STUDENTS中插入(‘132004’ ,’李平1’, D001’ ,‘沙坪坝区’) – (‘132005’ ,’李平2’, D001’ ‘巴南区’) – (‘132006’ ,’李平3’, D001’ ,‘九龙坡区’)数据 –1.3把一个表的数据复制到另一个表两个表的结构要一样 –create table if not exists student_3 like students; –把数据复制过来 –insert into student_3 select * from students; –1.4把数据表的数据导出到外部文件 –select * from students; –select * from students into outfile ‘c:\student.doc’; –1.5把外部文件的数据导入到数据表 –create table if not exists student_4 like students; –LOAD data local infile ‘c:\student.doc’ into table student_4 character set utf8; –1.6图片数据的插入 –(1)直接图片的路径 –insert into students(s_no,s_name,photo) values(‘132004’,‘ln’,’D:\Jellyfish.jpg’); –(2)直接存放图片 –insert into students(s_no,s_name,photo) values(‘132005’,‘lm’,load_file(’D:\Jellyfish.jpg’));

总结

数据库,get!!! 希望你开心,希望你健康,希望你幸福,希望你点赞! 最后的最后,关注喵,关注喵,关注喵,佬佬会看到更多有趣的博客哦!!! 喵喵喵,你对我真的很重要! img

每日一言

"<!doctype html> <html lang="Zh-cn"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <meta name="robots" content="noindex,nofollow"> <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no"/> <meta name="renderer" content="webkit"> <title>您请求的文件不存在!</title> <link type="text/css" rel="stylesheet" href="https://www.oick.cn/css/404.css" /> <link rel="shortcut icon" href="http://www.oick.cn/favicon.ico" type="image/x-icon" /> </head> <body> <div id="wrap"> <div> <img src="https://www.oick.cn/imgs/404.png" alt="404" /> </div> <div id="text"> <strong> <span></span> <a href="javascript:history.back()">返回上一页</a> </strong> </div> </div> <div class="animate below"></div> <div class="animate above"></div> </body> </html>"

...

站点统计

本周更新文章: 0 篇
文章总数: 59110 篇
今日访问量: 13364 次
访问总量: 202500 次