数据库考点
1、创建一个表student,包含ID(学生学号),sname(学生姓名),gender(性别),credit(信用卡号),四个字段,
要求:ID是主键,且值自动递增,sname是可变长字符类型,gender是枚举类型, credit是可变长字符类型;
create database db9 charset utf8;
use db9
create table student(
ID int primary key auto_increment,
sname varchar(16) not null,
gender enum('male','female') not null default 'female',
credit varchar(32)
);
2、在上面的student表中增加一个名为class_id的外键,外键引用class表的cid字段;
create table class( cid int primary key auto_increment, cname varchar(16) not null ); alter table student add class_id int not null; alter table student add foreign key(class_id) references class(cid) on delete cascade on update cascade;
3、向该表新增一条数据,ID为1,学生姓名为alex,性别女,
修改ID为1的学生姓名为wupeiqi,删除该数据;
insert into class(cname) values
('一班'),
('二班');
insert into student values(1,'alex','female','12345',1);
update student set sname='wupeiqi' where id=1;
delete from student where id=1;
4、查询student表中,每个班级的学生数;
insert into student(sname,class_id) values
('alex',1),
('egon'2),
('wupeiqi',3);
select count(ID) from student;
insert into student(sname,class_id) values
('james',1),
('dulex',2),
('summer',3);
select count(ID) from student;
5、修改credit字段为unique属性;
alter table student modify credit varchar(32) not null unique;
6、请使用命令在你本地数据库中增加一个用户,并给该用户授予创建表的权限;
grant create on *.* to 'looks'@'localhost' identified by '123';
7、请使用pymsql模块连接你本地数据库,并向student表中插入一条数据;
import pymysql
conn = pymysql.connect(
host='192.168.0.103',
port=3306,
user='root',
password='123',
db='db9',
charset='utf8'
)
cursor = conn.cursor()
sql = "insert into student calues(15,'fall','male','123456',1)"
rows = cursor.execute(sql)
conn.commit()
cursor.close()
conn.close()
8、请使用mysqldump命令备份student表;
mysqldump -uroot -p123 db9 student > student1.sql
9、创建一张名为student_insert_log的表,要求每次插入一条新数据到student表时,
都向student_insert_log表中插入一条记录,记录student_id, insert_time;
create table student_update_log(
student_id int not null,
update_time datetime
);
#创建一个触发器:
delimiter //
create trigger tri_after_update_student after update on student for each row
begin
insert into student_update_log values(new.ID,now());
end //
delimiter ;
update student set sname = 'alex' where ID in (9,10);
insert into student(sname,credit,class_id) values ('alice','123',2);
insert into student(sname,credit,class_id) values
('egon1','1234',1),
('egon2','12345',2);
select * from student;
select * from student_update_log;

浙公网安备 33010602011771号