MySQL操作(4)数据库及表的修改和删除
我是一名来自帝都985高校的机械研究生
本号专注于分享工科专业学习考试攻略、程序员学习求职经验、教师求职考试经验等相关内容,同时还会兼顾生活向,欢迎大家的关注和转发!
目录
数据库及表的修改和删除
准备
新建两个数据库,分别名为 test_01 和mysql_shiyan ,并在 mysql_shiyan 数据库中建 4 个表(department,employee,project,table_1),然后向其中插入数据。
具体操作如下,首先输入命令进入 /home/shiyanlou/Desktop 目录:
cd /home/shiyanlou/Desktop
然后再输入命令,下载代码:
wget https://labfile.oss.aliyuncs.com/courses/9/MySQL-05.sql
下载完成后,输入命令开启 MySQL 服务并使用 root 用户登录:
#打开 MySQL 服务
sudo service mysql start
#使用 root 用户登录
mysql -u root
可以在桌面看到下载的 MySQL-05.sql 文件(你可以用 gedit 查看、编辑里面的内容。)
如果你是接着上一个实验操作的话,首先删除 mysql_shiyan 数据库:
drop database mysql_shiyan;
加载文件中的数据,需要在 MySQL 控制台中输入命令,完成实验准备:
source /home/shiyanlou/Desktop/MySQL-05.sql;
删除数据库
使用命令 SHOW DATABASES;
可以看到刚才运行MySQL-05.sql 文件生成的两个数据库:
现在我们运行命令删除名为 test_01 的数据库:
DROP DATABASE test_01;
现在再次使用命令 SHOW DATABASES; 可以发现,test_01 数据库已经被成功删除:
关于修改数据库目前 Mysql 没有提供修改数据库名称的方法,因为这曾导致一系列安全问题。
在老版本中 RENAME DATABASE 可以修改数据库名称,这条命令在 MySQL 5.1.7 中被加入,但官方很快就发现这条命令所带来的危险,于是在 MySQL 5.1.23 中把这条命令移除。
事实上,数据库名几乎不会遇到必须修改的情况,如果你一定要这么做,比较安全的做法是重新建一个新库,然后将旧库中的数据转移到新库中,并且暂时不要删除旧的数据库,以防数据遗失。
对一张表的修改
重命名一张表
重命名一张表的语句有多种形式,以下 3 种格式效果是一样的:
RENAME TABLE 原名 TO 新名字;
ALTER TABLE 原名 RENAME 新名;
ALTER TABLE 原名 RENAME TO 新名;
进入数据库 mysql_shiyan :
use mysql_shiyan
使用命令尝试修改 table_1 的名字为 table_2 :
RENAME TABLE table_1 TO table_2;
删除一张表
删除一张表的语句,类似于刚才用过的删除数据库的语句,格式是这样的:
DROP TABLE 表名字;
比如我们把 table_2 表删除:
DROP TABLE table_2;
对一列的修改
对表结构的修改,即对表结构的修改,是本节实验的难点,有时候一些小的错误会造成不可挽回的后果,所以请细心操作。另外需要注意,非必要情况不要修改表结构。
增加一列
在表中增加一列的语句格式为:
ALTER TABLE 表名字 ADD COLUMN 列名字 数据类型 约束;
或:
ALTER TABLE 表名字 ADD 列名字 数据类型 约束;
现在 employee 表中有 id、name、age、salary、phone、in_dpt 这 6 个列,我们尝试加入 height (身高)一个列并指定 DEFAULT 约束:
ALTER TABLE employee ADD height INT(4) DEFAULT 170;
可以发现:新增加的列,被默认放置在这张表的最右边。如果要把增加的列插入在指定位置,则需要在语句的最后使用 AFTER
关键词,“AFTER 列 1” 表示新增的列被放置在 “列 1” 的后面。
提醒:语句中的
INT(4)
不是表示整数的字节数,而是表示该值的显示宽度,如果设置填充字符为 0,则 170 显示为 0170
比如我们新增一列 weight(体重) 放置在 age(年龄) 的后面:
ALTER TABLE employee ADD weight INT(4) DEFAULT 120 AFTER age;
上面的效果是把新增的列加在某位置的后面,如果想放在第一列的位置,则使用 FIRST
关键词,如语句:
ALTER TABLE employee ADD test INT(10) DEFAULT 11 FIRST;
效果如下:
删除一列
删除表中的一列和刚才使用的新增一列的语句格式十分相似,只是把关键词 ADD
改为 DROP
,语句后面不需要有数据类型、约束或位置信息。具体语句格式:
ALTER TABLE 表名字 DROP COLUMN 列名字;
或:ALTER TABLE 表名字 DROP 列名字;
我们把刚才新增的 test 删除:
ALTER TABLE employee DROP test;
重命名一列
这条语句其实不只可用于重命名一列,准确地说,它是对一个列做修改(CHANGE) :
ALTER TABLE 表名字 CHANGE 原列名 新列名 数据类型 约束;
注意:这条重命名语句后面的 “数据类型” 不能省略,否则重命名失败。
当原列名和新列名相同的时候,指定新的数据类型或约束,就可以用于修改数据类型或约束。需要注意的是,修改数据类型可能会导致数据丢失,所以要慎重使用。
我们用这条语句将 “height” 一列重命名为汉语拼音 “shengao” ,效果如下:
ALTER TABLE employee CHANGE height shengao INT(4) DEFAULT 170;
改变数据类型
要修改一列的数据类型,除了使用刚才的 CHANGE
语句外,还可以用这样的 MODIFY
语句:
ALTER TABLE 表名字 MODIFY 列名字 新数据类型;
再次提醒,修改数据类型必须小心,因为这可能会导致数据丢失。在尝试修改数据类型之前,请慎重考虑。
对表的内容修改
修改表中某个值
大多数时候我们需要做修改的不会是整个数据库或整张表,而是表中的某一个或几个数据,这就需要我们用下面这条命令达到精确的修改:
UPDATE 表名字 SET 列1=值1,列2=值2 WHERE 条件;
比如,我们要把 Tom 的 age 改为 21,salary 改为 3000:
UPDATE employee SET age=21,salary=3000 WHERE name='Tom';
注意:一定要有
WHERE
条件,否则会出现你不想看到的后果。
删除一行记录
删除表中的一行数据,也必须加上 WHERE
条件,否则整列的数据都会被删除。删除语句:
DELETE FROM 表名字 WHERE 条件;
我们尝试把 Tom 的数据删除:
DELETE FROM employee WHERE name='Tom';
我是一名来自帝都985高校的机械研究生
本号专注于分享工科专业学习考试攻略、程序员学习求职经验、教师求职考试经验等相关内容,同时还会兼顾生活向,欢迎大家的关注和转发!
万里长城是古代中国在不同时期为抵御塞北游牧部落联盟侵袭而修筑的规模浩大的军事工程的统称。
长城(5张)长城东西绵延上万华里,因此又称作万里长城。现存的长城遗迹主要为始建于14世纪的明长城,西起嘉峪关,东至辽东虎山,全长8851.8公里,平均高6至7米、宽4至5米。长城是我国古代劳动人民创造的伟大的奇迹,是中国悠久历史的见证。它与天安门,兵马俑一起被世人视为中国的象征。同时,长城于1987年12月被列为世界文化遗产。
万里长城,是中国伟大的军事建筑,它规模浩大,被誉为古代人类建筑史上的一大奇迹。以雄峙中国北方大地的万里长城为中介的南北广大地域所构成的长城带,横贯今辽宁、内蒙古、宁夏、甘肃、陕西、山西、河南、河北、北京、天津、山东和吉林、黑龙江、青海、新疆等省(市、自治区)的相当一部分地区,也包括历史时期处于今蒙古人民共和国和朝鲜半岛的若干地区。其范围南北宽约数百公里乃至上干公里,东西长约数干公里。长城带自远古至今居住着众多的民族,各民族及其相互关系的发展,是观察和理解长城带一切事物的关键所在。在历史发展过程中,长城带的古代民族,有些消失了,一些新的民族又融合生成,它们都与分布在长城带的20多个民族有着密切的渊源关系。无论已经消失的还是继续发展的各民族,都对中国的历史发展做出过重要的'贡献。
万里长城是中国古代民族关系发展的产物,但对于长城南北民族关系内在发展规律的研究尚不充分。总结已有的研究成果,拓宽研究领域,揭示长城与中国民族关系发展的内在联系,对于长城学、民族学及中国民族关系史等学科研究的发展,对于促进民族团结都有重大的现实意义和重要的理论研究价值。