如何在创建教工表teacher (字段包括 tno, tname, tadd, telphone, tsex, id) 的SQL语句中设置tno为主键,并设置性别列tsex的默认值为男?
时间: 2024-12-08 20:14:36 浏览: 225
创建一个名为`teacher`的教师表,其中包含主键`tno`,`tname`为姓名,`tadd`为地址,`telphone`为电话号码,`tsex`为性别列,默认值设为男性,你可以使用如下的SQL语句:
```sql
CREATE TABLE teacher (
tno INT PRIMARY KEY,
tname VARCHAR(50),
tadd VARCHAR(100),
telphone VARCHAR(20),
tsex CHAR(4) DEFAULT '男'
);
```
在这个SQL命令中:
- `INT`表示`tno`字段是一个整数类型。
- `VARCHAR(50)`用于存储长度不超过50字符的字符串,比如`tname`和`tadd`。
- `VARCHAR(20)`用于存储长度不超过20字符的字符串,如电话号码。
- `CHAR(4)`用于存储固定长度的字符数据,这里假设性别用四个字符表示,例如'M'代表男,'女'代表女。
- `PRIMARY KEY`指定`tno`作为唯一标识符,不允许有重复值。
- `DEFAULT '男'`设定`tsex`列的默认值为'男'。如果插入记录时不指定该列的值,系统将自动赋予这个默认值。
相关问题
mysql1、创建一个教工表 teacher (tno, tname, tadd, telphone, tsex, id),将tno设为主键,性别默认为"男"。" 2、根据教工表完成以下任务:
在MySQL中,你可以使用CREATE TABLE语句来创建一个名为teacher的教工表,包括指定字段、主键以及设置默认值。以下是创建`teacher`表的SQL命令:
```sql
CREATE TABLE teacher (
tno INT PRIMARY KEY,
tname VARCHAR(50) NOT NULL,
tadd VARCHAR(100),
telphone VARCHAR(20),
tsex ENUM('男', '女') DEFAULT '男',
id INT AUTO_INCREMENT,
UNIQUE (id)
);
```
这里解释一下各个部分:
- `tno` 列设为主键,通常主键用于唯一标识每一行数据,`INT`表示整数类型。
- `tname` 和 `tadd` 分别是教师姓名和地址,都是可选字段。
- `telphone` 是电话号码字段。
- `tsex` 是性别列,使用了`ENUM`类型,枚举值限定为'男'和'女',并设置了默认值为'男'。
- `id` 是一个自动递增的整数列,作为次要键,如果tno不是唯一的,可以使用这个字段保证唯一性。
接下来是完成的任务:
1. 插入一条记录:`INSERT INTO teacher (tno, tname, tadd, telphone) VALUES (1, '张三', '北京市海淀区', '13812345678');`
2. 更新某个教师的信息:`UPDATE teacher SET tname='李四' WHERE tno = 1;`
3. 查询所有教师信息:`SELECT * FROM teacher;`
4. 删除一名教师:`DELETE FROM teacher WHERE tno = 2;`
5. 根据性别筛选教师:`SELECT * FROM teacher WHERE tsex = '女';`
己知教学任课管理系统的数据库RK,包含如下3个关系: Course (CNo, CName, Hours) Teacher (TNo, TName, FNo, Tsex) Lesson (TNo,CNo, Credit) 其中,课程表Course由 课程号CNo、课程名CName、课时数Hours组成;教师表Teacher 由工号TNo、姓名TName、系编号FNo和性别组成;任课表I esson由工号TNO、课程号CNo和学分Credit组成; 1.使用Transact-SQL语句在RK数据库中创建-一个 名为TeaPro 的存储过程。该存储过程能根据给定的系编号返回该系编号对应的Teacher表中的记录。并赋值查询系编号为37101和37102'的教师记录。
好的,根据您的要求,我来为您编写相应的Transact-SQL语句来创建一个名为TeaPro的存储过程,实现您所需的功能:
```
CREATE PROCEDURE TeaPro
@DeptId INT
AS
BEGIN
SELECT *
FROM Teacher
WHERE FNo = @DeptId
-- 赋值查询系编号为37101和37102的教师记录
SELECT *
FROM Teacher
WHERE FNo IN (37101, 37102)
END
```
上述代码创建了一个名为TeaPro的存储过程,该存储过程接受一个参数@DeptId,用于指定所查询的系编号。执行存储过程后,将根据所给定的系编号从Teacher表中查询出对应的记录,并返回结果。
同时,存储过程还会执行一条额外的查询语句,用于赋值查询系编号为37101和37102的教师记录。
希望以上代码能够满足您的需求,如有任何问题,欢迎随时提出。
阅读全文
相关推荐

















