知识要点4

3.15-17

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)恢复数据


4.课堂内外作业:
    (1)课本P79--85例5.1--5.11,并做好知识要点摘录和CSDN文案。
    (2)课本P88--90实验5-2全部,将图文并茂的文案上传CSDN。
 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值