MySQL 笔记一 20160809

MySQL基础操作

1 登录:Mysql -u userName -p

    password ******

2 建库:create database databaseName character set 'utf8';  --建表时指定字符编码方式为utf8
    create database SMS character set 'utf8';

3 建表:create table tableName (字段名称,数据结构)

-- 学生信息表
create table StudentInfo (
  stuId int,-- 主键
  stuName varchar(20),-- 姓名
  stuNumber char(20),-- 学号
  stuSex bit,-- 性别
  stuBirthday datetime,-- 生日
  majorId int,-- 专业(外键)
  phone char(12),-- 电话
  address varchar(200),-- 地址
  primary key (stuId),
  foreign key (majorId) references MajorInfo(majorId)
);

4 删表   drop table tableName;

    drop table StudentInfo;

5 删库   drop database databeseName;

    drop database SMS;

6 修改表

alter table Score
add constraint fk_stuId
foreign key (stuId)
references StudentInfo(stuId)
;

 

7 主键 外键

 

附上一道例题:

-- 需要完成一个学生信息管理系统的数据库设计
-- 主要要求如下:
-- 需要保存学生的姓名,学号,性别,年龄,专业,电话,地址,各科成绩
-- 请设计数据库。

drop database SMS;
create database SMS character set 'utf8';

use SMS;

drop table Score;
drop table StudentInfo;
drop table SubjectInfo;
drop table MajorInfo;

-- 专业信息表
create table MajorInfo (
  majorId int primary key,
  majorName varchar(20)
);

-- insert into MajorInfo values (主键,专业名);
insert into MajorInfo values (1,'软件工程');
insert into MajorInfo values (2,'计算机科学技术');
insert into MajorInfo values (3,'通讯工程');
insert into MajorInfo values (4,'网络安全');
select * from MajorInfo;

-- 学生信息表
create table StudentInfo (
  stuId int,-- 主键
  stuName varchar(20),-- 姓名
  stuNumber char(20),-- 学号
  stuSex bit,-- 性别
  stuBirthday datetime,-- 生日
  majorId int,-- 专业(外键)
  phone char(12),-- 电话
  address varchar(200),-- 地址
  primary key (stuId),
  foreign key (majorId) references MajorInfo(majorId)
);

-- insert into StudentInfo values(主键,姓名,学号,性别,生日,专业id,电话,地址);
insert into StudentInfo values(1,'明明','S20160801001',1,'1992-05-04',1,'15846895412','湖南省长沙市雨花区芙蓉南路189号');
insert into StudentInfo values(2,'静静','S20160801002',0,'1993/09/12',1,'13843800544','广西壮族自治区南宁市西乡');
insert into StudentInfo values(3,'小王','S20150727001',1,'1991-07-05',2,'13843844944','广东省深圳市南山区深南大道附1路1893号');
insert into StudentInfo values(4,'老王','S20150727002',1,'1990-03-15',2,'18965485478','海南省三沙市西沙群岛黄岩岛中国海军南海舰队');
select * from StudentInfo;

-- 科目信息表
create table SubjectInfo (
  subjectId int primary key,
  subjectName varchar(20)
);

-- insert into SubjectInfo values (主键,科目名称);
insert into SubjectInfo values (1,'Java基础');
insert into SubjectInfo values (2,'MySQL应用');
insert into SubjectInfo values (3,'HTML语言');
insert into SubjectInfo values (4,'汇编语言');
select * from SubjectInfo;

-- 成绩表
create table Score (
  pkId int primary key,
  stuId int,
  subjectId int,
  score double
);

alter table Score
add constraint fk_stuId
foreign key (stuId)
references StudentInfo(stuId)
;

alter table Score
add constraint fk_subjectId
foreign key (subjectId)
references SubjectInfo(subjectId)
;

-- delete from Score;
-- insert into Score values (主键,学生id,科目id,成绩);
insert into Score values (1,3,2,89);
insert into Score values (2,2,1,88.5);
insert into Score values (3,3,3,59.5);
insert into Score values (4,1,3,93);
insert into Score values (5,1,1,91);
insert into Score values (6,2,2,89);
select * from Score;

/*
delete from StudentInfo
where stuId=3;
*/

select * from StudentInfo;

-- 查询所有学生的年龄
select stuName as 名字,
YEAR(NOW())-YEAR(stuBirthday) as 年龄
from StudentInfo
;

-- 根据学生名字查询学生所有参加的考试成绩
select SubjectInfo.subjectName as 课程,
Score.score as 成绩,
StudentInfo.stuName as 姓名
-- select *
from Score
inner join StudentInfo
on Score.stuId = StudentInfo.stuId
inner join SubjectInfo
on Score.subjectId = SubjectInfo.subjectId
where StudentInfo.stuName='静静'
;

-- 查询某一门功课,有哪些学生参加了考试,未参加考试,需要查询出学生的联系电话,用于联系学生本人或其家长

-- 查询开设的课程

 

posted @ 2016-08-09 22:59  GaryHostPublic  阅读(149)  评论(0编辑  收藏  举报