微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

MySQL 数据库及表实战操作、

一、数据库设计理论
范式理论
定义了规范化的三个级别,范式是具有最小冗余的表结构。这些范式是:
第一范式 (1st NF First normal Formate)
第二范式 (2nd NF Second normal Formate)
第三范式 (3rd NF Third normal Formate)
(1)第一范式
第一范式:

 

第一范式的目标是确保每列的原子性
如果每列都是不可再分的最小数据单元(也称为最小的原子单元),则满足第一范式(1NF)
(2)第二范式
如果一个关系满足 1NF ,并且除了主键以外的其他列,都依赖与该主键,则满足第二范式(2NF)
第二范式要求每个表只描述一件事情

 

(3)第三范式
如果一个关系满足 2NF ,并且除了主键以外的其他列都不传递依赖于主键列,则满足第三范
式(3NF)

 

该如何设计如下信息的数据库表??
学号,姓名,性别,年龄,出生日期,地址,电话,邮箱,课程号,课程名,成绩
Stu :学号,姓名,性别,年龄,出生日期,地址,电话,邮箱
Course :课程号,课程名
score :学号,课程号,成绩
二、创建数据库
1 、大小写敏感
~~~~~~~ 规定:一律用小写
lower_case_file_system
ON 大小写不敏感
OFF 大小写敏感
lower_case_table_names
lower_case_table_names = 0 时, MysqL 会根据表名直接操作,大小写敏感。
lower_case_table_names = 1 时, MysqL 会先把表名转为小写,再执行操作。
原因:底层操作系统是否区分大小写,底层 windows 不区分大小写, linux 区分大小写,所
以我们建立 test 数据库 TEST 数据库都是存在的
2 MysqL 的注释
(1)单行注释可以用 "#"
select 1 as xx #zheshizhuhsi
(2)单行注释的第二种写法用 "-- "
注意这个风格下"--【空格】" 也就是说“--" 与注释之间是有空格的
select 123 -- 这是注释
(3)多行注释可以用 /* */
这种注释在 MysqL 中叫做内联注释,当!后面所接的数据库版本号时,当实际的版本等于或
是高于那个字符串,应用程序就会将注释内容解释为 sql ,否则就会当做注释来处理。
的,当没有接版本号时,是会执行里面的内容的。
3 、库操作语句
create database tt :建立数据库
show create database tt :查看数据库
drop database tt  :删除数据库
create database if not exists ddd    防报错
alter database tt default character set 'utf8'  中文字符不报错
三、创建数据表
-- 1 、创建学生信息表 int(11): 显示宽度 11
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;
-- 删除字段 xxx
alter table stu drop xxx
-- 修改字段 change MODIFY
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;
insert into course(cname) values(' 数据库 '),(' 数据结构 ')
-- 添加 成绩表
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 TruncATE
-- delete 删除指定记录
delete from stu where sid=5
-- delete 删除全部记录
delete from ss
delete from stu
-- truncate 删除
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 举报,一经查实,本站将立刻删除。

相关推荐