一、数据库设计理论
范式理论
定义了规范化的三个级别,范式是具有最小冗余的表结构。这些范式是:
(1)第一范式
第一范式:
第一范式的目标是确保每列的原子性
如果每列都是不可再分的最小数据单元(也称为最小的原子单元),则满足第一范式(1NF)
(2)第二范式
第二范式要求每个表只描述一件事情
(3)第三范式
式(3NF)
该如何设计如下信息的数据库表??
学号,姓名,性别,年龄,出生日期,地址,电话,邮箱,课程号,课程名,成绩
Stu
:学号,姓名,性别,年龄,出生日期,地址,电话,邮箱
Course
:课程号,课程名
score
:学号,课程号,成绩
二、创建数据库
1
、大小写敏感
~~~~~~~
规定:一律用小写
lower_case_file_system
ON
大小写不敏感
OFF
大小写敏感
lower_case_table_names
。
原因:底层操作系统是否区分大小写,底层
windows
不区分大小写,
linux
区分大小写,所
(1)单行注释可以用
"#"
select 1 as xx #zheshizhuhsi
(2)单行注释的第二种写法用
"-- "
注意这个风格下"--【空格】" 也就是说“--" 与注释之间是有空格的
。
select 123 --
这是注释
(3)多行注释可以用
/* */
的,当没有接版本号时,是会执行里面的内容的。
3
、库操作语句
create database tt
:建立数据库
show create database tt
:查看数据库
create database if not exists ddd 防报错
三、创建数据表
create table if not exists `stu`(
`sid` int(11) UNSIGNED PRIMARY key auto_increment,
`name` varchar(20) not null,
`age` int,
`sex` enum('m','f','mid') default 'mid',
`birth` datetime not null default Now(),
`email` varchar(50),
`addr` varchar(50) default '
北京
',
`tel` varchar(11)
)
--2
、 创建课程表
create table course(
cid int(11) UNSIGNED primary key auto_increment,
cname varchar(20) not null
)
drop table course;
desc course;
--
创建成绩表
create table score(
sid int(11) UNSIGNED not null,
cid int(11) UNSIGNED not null,
cj int(11) UNSIGNED not null,
PRIMARY key(sid,cid),
FOREIGN key(sid) REFERENCES stu(sid) on delete CASCADE on UPDATE CASCADE,
FOREIGN key(cid) REFERENCES course(cid) on DELETE CASCADE on UPDATE CASCADE
)ENGINE=INNODB DEFAULT CHARSET=utf8
--3
、 删除数据表
drop table stu;
-- 4
、看数据表结构
desc stu
show tables;
四、修改表结构
--
末尾增加字段
alter table stu add beizhu varchar(250) comment '
备注
';
desc stu
alter table stu add xxx varchar(20) FirsT;
alter table stu add mr varchar(1) not null DEFAULT '
否
' AFTER birth;
alter table stu drop xxx
alter table stu CHANGE telphone tel
varchar(11);
alter table stu MODIFY mr bit(1) not null default 0;
select * from stu
五、记录增删改
insert into stu(name,age,sex,birth,email,addr,tel,beizhu)values(' 李 四 ',27,'m','1994-1-1','lisi@def.com','武汉
','1393342222','
学渗透
');
没有加 not noll的可不用添加
insert into stu values(4,'
李四
2',22,'f','1999-1-1',1,'lisi@def.com','
杭州
','1393342422','
学开发
');
--
添加 课程表
select * from course;
--
添加 成绩表
select * from score;
desc score;
insert into score values(1,1,89),(1,2,56),(2,3,66),(2,2,34),(2,5,56),(4,1,90),(4,4,67),(4,2,56)
insert into score values (8,8,90);
select * from stu
update stu set mr=0 where name='
李四
';
update stu set name='
李四
1' where sid=2;
-- delete
删除指定记录
delete from stu where sid=5
-- delete
删除全部记录
delete from ss
delete from stu
truncate table ss
truncate table stu
--
别名 表设别名 字段设值别名
--
表别名
select * from stu where sid=1;
select * from stu as tt where tt.sid=1;
--
字段别名
select sid as
学号
,name as
姓名
from stu;
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。