1.数据表(TABLE)操作:
(1)表结构
行:记录
列:字段(field)、空值(null)、主键(Primary Key)、外键(Foreign Key)
(2)数据类型
整数型(int)、定点数型(decimal(m,d))、浮点型(float)、
字符串型(char(n),varchar(n))、日期和时间型(datetime、year)
(3)创建表
a.新表:
【例4.6】在基本数据库stusys中创建student表,student表是基本表之一。
mysql> USE stusys;
Database changed
mysql> CREATE TABLE student
->(
->sno char(6) NOT NULL PRIMARY KEY,
->sname char(8) NOT NULL,
->ssex char(2) NOT NULL DEFAULT '男',
->sbirthday date NOT NULL,
->speciality char(12) NULL,
->tc tinyint NULL
->);
b.复制表:
【例4.7】在stusys数据库中,使用复制方式创建student1表,表结构取自student表。
mysql> USE stusys;
Database changed
mysql> CREATE TABLE student1 like student;
(5)查看表
a.表的名称:
【例4.8】查看数据库stusys中所有表名。
mysql> USE stusys;
Database changed
mysql> SHOW TABLES;
b.表的基本结构
【例4.9】查看数据库stusys中student表的基本结构。
mysql> SHOW COLUMNS FROM student;
或者
mysql> DESC student;
c.表的详细结构
【例4.10】查看数据库stusys中student表的详细结构。
mysql> SHOW CREATE TABLE student;
(6)修改表
a.添加列
【例4.11】在数据库stusys的student表中增加一列sid,添加到表的第1列,不为空,取值唯一并自动增加。
mysql> ALTER TABLE stusys.student
-> ADD COLUMN sid int NOT NULL UNIQUE AUTO_INCREMENT FIRST;
b.修改列
【例4.12】将stusys数据库的student1表的列sbirthday修改为sage,将数据类型改为tinyint,可空,默认值为18。
mysql> ALTER TABLE stusys.student1
-> CHANGE COLUMN sbirthday sage tinyint DEFAULT 18;
c.删除列
【例4.13】删除数据库stusys的表student中的列sid。
mysql> ALTER TABLE stusys.student
-> DROP COLUMN sid;
d.修改名称
【例4.14】在stusys数据库中,将 student1表重命名为student2表。
mysql> ALTER TABLE stusys.student1
-> RENAME TO stusys.student2;
【例4.15】在stusys数据库中,将 student2表重命名为student3表。
mysql> RENAME TABLE stusys.student2 TO stusys.student3;
e.删除表
【例4.16】删除stusys数据库中的student3表。
mysql> DROP TABLE stusys.student3;
(7)查看存储引擎
【例4.17】查看存储引擎。
mysql> SHOW ENGINES;
第五章 表数据操作
2.表数据操作
(1)插入数据
a.插入值的顺序和表定义的列的顺序相同
#【例5.1】向student1表插入一条记录('196001','董明霞','女','1999-05-02','通信’,50)。
INSERT INTO student1
VALUES
('196001','董明霞','女','1999-05-02','通信',50);
select * from student1;
b.插入值的顺序和表定义的列的顺序不同
#【例5.2】向student1表插入一条记录,学号为“196002”,姓名为“李茜”,专业为“通信”,总学分48,性别为“女”,出生日期为“1998-07-25”。
INSERT INTO student1 (sno, sname, speciality, tc, ssex, sbirthday)
VALUES
('196002','李茜','通信',48,'女','1998-07-25');
select * from student1;
c.给出了部分列的值,其它列的值为表定义时的默认值,或允许该列取空值
#【例5.3】向student1表插入一条记录,学号为“196004”,姓名为“周俊文”,性别为“男”、取默认值,出生日期为“1998-03-10”,专业为空值,总学分为52。
INSERT INTO student1 (sno, sname, sbirthday, tc)
VALUES
('196004','周俊文', '1998-03-10', 52);
select * from student1;
d.插入多条记录,在插入语句中,插入值列表之间用逗号隔开。
#【例5.4】向student表插入样本数据,共6条记录,参见附录B。
INSERT INTO student
VALUES
('191001','刘清泉','男','1998-06-21','计算机',52),
('191002','张慧玲','女','1999-11-07','计算机',50),
('191003','冯涛','男','1999-08-12','计算机',52),
('196001','董明霞','女','1999-05-02','通信',50),
('196002','李茜','女','1998-07-25','通信',48),
('196004','周俊文','男','1998-03-10','通信',52);
select * from student1;
e.REPLACE语句可以在插入数据之前将与新记录冲突的旧记录删除,使新记录能够正常插入。
#【例5.5】对student1表,重新插入记录('196002','李茜','女','1998-07-25','通信’,48)。
REPLACE INTO student1
VALUES
('196002','李茜','女','1998-07-25','通信',48);
select * from student1;
f.将已有表的记录快速插入当前表中
#【例5.6】向student2表插入student表的记录。
create table student2 like student;
select * from student2;
INSERT INTO student2
SELECT * FROM student;
select * from student2;
(2)修改数据
a.修改指定记录需要通过WHERE子句指定要修改的记录满足的条件。
#【例5.7】在student1表中,将学生周俊文的出生日期改为“1999-03-10”。
select * from student1;
SET SQL_SAFE_UPDATES = 0;
UPDATE student1
SET sbirthday='1999-03-03'
WHERE sname ='周俊文';
select * from student1;
b.修改全部记录不需要指定WHERE子句。
#【例5.8】在student1表中,将所有学生的学分增加2分。
UPDATE student1
SET tc=tc+2;
select * from student1;
(3)删除数据
a.删除指定记录需要通过WHERE子句指定表中要删除的行所满足的条件。
#【例5.9】在student1表中,删除学号为196004的行。
DELETE FROM student1
WHERE sno='196004';
select * from student1;
b.删除全部记录有两种方式:
一种方式是通过DELETE语句并省略WHERE子句,则删除表中所有行,仍保留表的定义在数据库中。
#【例5.10】在student1表中,删除所有行。
DELETE FROM student1;
select * from student1;
另一种方式是通过TRUNCATE语句,则删除原来的表并重新创建一个表。
#【例5.11】在student表中,删除所有行。
TRUNCATE student2;
select * from student2;
3.第十三章 备份和恢复
(1)备份数据
#【例13.1】备份stusys数据库中的course表中数据,要求字段值如果是字符就用双引号标注,字段值之间用逗号隔开,每行以问号为结束标志。
(2)恢复数据
————————————————
版权声明:本文为CSDN博主「真别吃鱼」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/m0_69263303/article/details/129694742