一、数据库表练习(设有一数据库SJK) 1.按如下要求修改SJK中学生(XS)表的结构(用命令实现):

一、数据库表练习(设有一数据库SJK) 1.按如下要求修改SJK中学生(XS)表的结构(用命令实现):,第1张

添加字段:alter table XS add (新字段名称 数据类型(长度))

如:alter table XS add (aa varchar2(32))

修改字段:alter table XS modify (字段名 新的数据类型(长度))

删除字段:alter table XS drop column 字段名

---1)

创建一张学生表,包含以下信息,学号,姓名,年龄,性别,家庭住址,联系电话

CREATE

TABLE

student

(

[id]

[int]

IDENTITY(1,1)

NOT

NULL,

[student_id]

[nvarchar](50)

NULL,

[studen_name]

[nvarchar](50)

NULL,

[age]

[int]

NULL

,

[sex]

[nvarchar](5)

NULL,

[address]

[nvarchar](200)

NULL,

[tel]

[nvarchar](20)

NULL

)

--2)

修改学生表的结构,添加一列信息,学历

education

alter

table

student

add

education

nvarchar(10)

NULL

--3)

修改学生表的结构,删除一列信息,家庭住址

alter

table

student

drop

column

address

--5)

修改学生表的数据,将电话号码以11开头的学员的学历改为“大专”

update

student

set

education='大专'

where

tel

like

'11%'

--6)

删除学生表的数据,姓名以C开头,性别为‘男’的记录删除

delete

student

where

studen_name

like

'C%'

and

sex='男'

--7)

查询学生表的数据,将所有年龄小于22岁的,学历为“大专”的,学生的姓名和学号示出来

select

studen_name,student_id

from

student

where

age<12

and

education='大专'

--8)

查询学生表的数据,查询所有信息,列出前25%的记录

select

TOP

25

PERCENT

*

from

student

--9)

查询出所有学生的姓名,性别,年龄降序排列

select

studen_name,sex,age

from

studen

order

by

age

desc

--10)

按照性别分组查询所有的平均年龄

select

avg(age)

as

age

from

studen

group

by

sex

Online DDL 工具:pt-osc

对于 MySQL Online DDL 目前主流的有三种工具:

原生 Online DDL;

pt-osc(online-schema-change),

gh-ost

本文主要讲解 pt-online-schema-change 的使用以及三种工具的简单对比。

一、原理及限制

1.1 原理

1. 创建一个与原表结构相同的空表,表名是 _new 后缀;

2. 修改步骤 1 创建的空表的表结构;

3. 在原表上加三个触发器:delete/update/insert,用于 copy 数据过程中,将原表中要执行的语句在新表中执行;

4. 将原表数据以数据块(chunk)的形式 copy 到新表;

5. rename 原表为 old 表,并把新表 rename 为原表名,然后删除旧表;

6. 删除触发器。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9991950.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-04
下一篇 2023-05-04

发表评论

登录后才能评论

评论列表(0条)

保存