码迷,mamicode.com
首页 > 数据库 > 详细

MySQL一些简单的操作题

时间:2019-09-18 12:55:16      阅读:304      评论:0      收藏:0      [点我收藏+]

标签:alter   col   ble   属性   ref   空值   取值   between   hone   

1.学校想做一个选课系统,其中涉及到课程表,学生表,请分别创建这两个表,自己思考表中应有的列及数据类型。

create table course

( course_name varchar(10) primary key,

course_amount int,

course_class char(5)

)

create table student(

stuid varchar(10) stuname varchar(10),

stuphone char(11),

sex nume(‘男‘,’‘女‘)

)

2.学校有一个选课系统,其中包括如下关系模式: 系(系编号: 主键,    系名称:  唯一键,    系主任: 非空约束,    系所在校去:取值范围只能在南湖校区和浑南校区) 班级(班级编号: 主键,      班级名称: 唯一键,      所属系:  外键)

create table system( sys_id int primary key,

sys_name varchar(10) unique,

sys_head varchar(10) not null,

sys_school char(2) check(sys_school in(‘南湖校区‘,‘浑南校区‘))

)

create table class(

classid varchar(10) primary key,

classname varchar(10) unique,

classsys varchar(10)

)

alter table calss add constraint fk_classsys foreign key(classsys) references system(sys_name)

3.创建学生表,包含如下属性: 学号 定长字符型 10位 主键 姓名 变长字符型 20位 非空 性别 定长字符型 2位 取值范围只能为男或女 出生日期 日期型 所在班级

create table student(

stu_id char(10) primary key,

stu_name varchar(20) not null,

stu_sex cahr(2) check(sex in(‘男‘,‘女‘);

stu_date date,

stu_class varcahr(10)

constraint fk_classname foreign key(class_name) references class(class_name)

)

4.通过子查询的方式创建一个表dept10,该表保存10号部门的员工数据。 create table dept10 like select * from dept where deptno=10 5 a.在员工表中添加一个性别列,列名为gender,类型为char(2),默认值为“男” b.修改员工表中性别列的数据类型为char(4) c.修改员工表中性别列的默认值为“女” d.删除员工表中的性别列

a.alter table dept add gender char(2) default ‘男‘;

b.alter table dept modify gender char(4);

c.alter table dept alter column gender drop default; alter table dept add  gender char(2) default ‘女‘;

d.alter table dept drop gender;

1.创建表date_test,包含列d,类型为date型。试向date_test表中插入两条记录,一条当前系统日期记录,一条记录为“1998-08-18”。

.create table date_test(

d date

insert into date_test values(sysdata)

insert into data_test values(to_date(‘1998-8-18‘)

2.创建与dept表相同表结构的表dtest,将dept表中部门编号在40之前的信息插入该表。 .

create table dtest  as select * from dept where deptno<40;

3.创建与emp表结构相同的表empl,并将其部门编号为前30号的员工信息复制到empl表。

.create table empl as select *from emp where deptno<30;

4.试为学生表student增加一列学生性别gender 默认值 “女”。

.alter table student add gender char(2) default‘女‘;

5.试修改学生姓名列数据类型为定长字符型10位。

.alter table student modify stu_name cahr(10);

 

1.简述5种约束的含义。

2.创建学生关系sc,包括属性名: 选课流水号 数值型 主键; 学生编号 非空 外键 课程编号 非空 外键; 成绩     0-100之间;

3.创建copy_emp,要求格式同emp表完全一样,不包含数据。

4.创建copy_dept,要求格式同dept表完全一样,不包含数据。

5.设置copy_emp 表中外键deptno,参照copy_dept中deptno,语句能否成功,为什么?

6.追加copy_dept表中主键deptno

1.主键约束(Primay Key Coustraint) 唯一性,非空性  

.唯一约束 (Unique Counstraint)唯一性,可以空,但只能有一个  

.检查约束 (Check Counstraint) 对该列数据的范围、格式的限制(如:年龄、性别等)  

.非空约束 (not null)指定某列的所有数据不能包含空值  

.外键约束 (Foreign Key Counstraint) 需要建立两表间的关系并引用主表的列

2.create table cs(

cs_id varshar(10) primary key,

student_id varchar(10) not null, course_id varchar(10) not null,

grad char(100) check(sorce between 0 and 100)

)

alter table cs

add constraint fk_student_id foreign key(student_id)references class(class_code);

add constraint fk_course_id foreign key(course_id)references xibu(xibu_part);

 

3.create table copy_emp like emp;

4.create table copy_dept like dept;

5.alter table copy_emp add consrtaint pk_deptno foreign key(deptno) references copy_dept(deptno); 不能

6.alter table copy_dept add constraint pk_depno primary key(deptno);

 

MySQL一些简单的操作题

标签:alter   col   ble   属性   ref   空值   取值   between   hone   

原文地址:https://www.cnblogs.com/tw9751/p/11541267.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!