[My SQL] 创建表和操纵表

本文介绍了MySQL中表的基本操作,包括创建、更新、删除和重命名表的方法。详细讲解了使用SQL语句创建表的语法,并解释了列定义、主键、外键及不同存储引擎的特点。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一般创建表有两种方法:

1.使用MySQL Query Browser等交互式工具;

2.使用MySQL命令行语句;


在创建表时,至少要包括表的名字列的细节

以下是创建一个test_table的栗子:



1.表名紧跟在CREATE TABLE关键字之后,在创建新表时,指定的表名在现在的database中应该是不存在的,否则将出错,如果需要覆盖一张表,应该先把原表删掉;

2.列的定义包含在圆括号中,用逗号分隔。首先定义列名,紧跟着列的数据类型;

3.在列的定义中,数据类型中可以定义NULL和NOT NULL,定义NULL允许在插入行时不给出该列的值,定义NOT NULL后在插入行时不允许该列为空。NULL为默认值,如果不指定NOT NULL,那么默认指定为NOT NULL;

4.AUTO_INCREMENT的设置使得本列每增加一行的时候自动增量。每个表只允许一个AUTO_INCREMENT列,而且它必须被索引。可以使用SELECT last_insert_i()获取最后一个AUTO_INCREMENT的值;

5.DEFAULT的定义允许在插入行且没有给出值的时候给定该列一个默认值;

6.表的主键可以在创建表的时候,由PRIMARY KEY定义,如果创建多个列组成的主键,应该以逗号分隔。例如PRIMARY KEY(column_A,column_B)。主键只能使用不允许NULL值的列,且如果主键使用单个列,那么这一列值必须唯一,如果使用多个列,那么这几列的组合值必须唯一;

7.在定义完列之后,圆括号紧跟着定义引擎类型。MySQL有多种引擎在内部处理用户的请求,以下是几个常用的引擎:

        InnoDB是一个可靠的事务处理引擎,它不支持全文本搜索;

        MEMORY在功能上等同于MyISAM,但由于数据存储在内存中,速度很快;

        MyISAM是一个性能极高的引擎,它支持全文本搜索,但不支持事务处理;


对表的操纵


1.可以使用ALTER TABLE来更新表的定义。

增加列和删除列


定义表的外键



2.使用DROP TABLE来删除表


3.使用RENAME TABLE来重命名表



交互式SQL的使用 环境:WINDOWS,Microsoft SQL Server 实验要求: 1,创建Student数据库,包括Students,Courses,SC结构如下: Students(SNO,SNAME,SEX,BDATE,HEIGHT,DEPARTMENT) Courses(CNO,CNAME,LHOUR,CREDIT,SEMESTER) SC(SNO,CNO,GRADE) (注:下划线示主键,斜体示外键),并插入一定数据。 2.完成如下的查询要求及更新的要求。 (1)查询身高大于1.80m的男生的学号姓名; (2)查询计算机系秋季所开课程的课程号学分数; (3)查询选修计算机系秋季所开课程的男生的姓名、课程号、学分数、成绩; (4)查询至少选修一门电机系课程的女生的姓名(假设电机系课程的课程号以EE开头); (5)查询每位学生已选修课程的门数总平均成绩; (6)查询每门课程选课的学生人数,最高成绩,最低成绩平均成绩; (7)查询所有课程的成绩都在80分以上的学生的姓名、学号、且按学号升序排列; (8)查询缺成绩的学生的姓名,缺成绩的课程号及其学分数; (9)查询有一门以上(含一门)三个学分以上课程的成绩低于70分的学生的姓名; (10)查询1984年~1986年出生的学生的姓名,总平均成绩及已修学分数。 (11) 在STUDENTSC关系中,删去SNO以’01’开关的所有记录。 (12)在STUDENT关系中增加以下记录: (13)将课程CS-221的学分数增为3,讲课时数增为60 3.补充题: (1) 统计各系的男生女生的人数。 (2) 列出学习过‘编译原理’,‘数据库’或‘体系结构’课程,且这些课程的成绩之一在90分以上的学生的名字。 (3) 列出未修选‘电子技术’课程,但选修了‘数字电路’或‘数字逻辑’课程的学生数。 (4) 按课程排序列出所有学生的成绩,尚无学生选修的课程,也需要列出,相关的学生成绩用NULL示。 (5) 列出平均成绩最高的学生名字成绩。(SELECT句中不得使用TOP n子句) 4.选做题:对每门课增加“先修课程”的属性,用来示某一门课程的先修课程,每门课程应可记录多于一门的先修课程。要求: 1) 修改结构的定义,应尽量避免数据冗余,建立必要的主键,外键。 2) 设计并插入必要的测试数据,完成以下查询: 列出有资格选修数据库课程的所有学生。(该学生已经选修过数据库课程的所有先修课,并达到合格成绩。) 注意:须设计每个查询的测试数据,并在查询之前用INSERT语句插入中。 提交作业形式: 1) 建立Student数据库的SQL脚本,插入所有数据项的SQL脚本(包括所有的测试数据)。 2) 完成查询要求的SQL语句脚本。 3) 选做题:须提交修改数据库定义的SQL脚本,插入测试数据的SQL脚本以及用于查询的SQL语句。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值