数据库考点

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;

  

 

posted @ 2018-07-16 15:06  我要去流浪  阅读(597)  评论(0)    收藏  举报