时间:2021-07-01 10:21:17 帮助过:17人阅读
创建表
create table
数据库的常见操作
三建四句
建表,建库,建约束(create table,database,constraint)
增删改查(insert,delete,update,select)
a) 如何来创建表的
i. 表的概念
a) 冗(rong)余:在数据库表中,出现重复的数据
i. 如何减少数据冗余:把一张表分解为几张表,然后进行关联
ii. 减少数据冗余的同时,增加了数据查找的复杂性。从而降低效率。
iii. 在数据库中,是允许有一定冗余
b) 数据的完整性
i. 不正确性(违反数据库的完整性)
ii. 不准确性(违反数据库的完整性)
iii. 数据完整性=正确性+准确性
iv. 可以通过约束来确保数据库的完整性
v. 完整性的分类
ii. 表的创建(table)
a) 连接数据库
b) 打开数据库
c) 右键
d) 新建表
a) 查看数据库中下所有的表格:show tables
b) 创建表
i. 语法:create table 表名(列名1 数据类型 约束条,列名2…)
c) 查看表结构
i. Desc 表名
d) 删除表(删除表结构)
i. Drop table 表名
e) 自动增长
i. Auto_increment
a) 使用代码创建表(用户表:users):
b) 列有:
i. Id
ii. Username
iii. Password
iv. Sex
v. Age
vi. birthday
二.数据类型
a) 数值类型
i. 整数
ii. 小数
a) float(4个字节: 正负3.402E+38)
b) double(8个字节: 正负 1.7E308)
a) decimal(M,D)
b) 范围与double类型一致
c) 精度更加精确
d) M:有效位数
e) D:小数点位数
b) 字符类型
i. char(M)
ii. varchar(M)
iii. Blob(lob:large object)
iv. text
v. enum类型(枚举类型)
vi. set类型(集合类型)
c) 日期时间类型
i. dateà日期:1000-01-01 9999-12-31
ii. timeà时间:-838:59:59 838:59:59
iii. datetimeà1000-01-01 00:00:00 9999-12-31 23:59:59
iv. timestampà19700101080001 2038
v. yearà
三.Mysql表结构的操作
四.Mysql约束
a) 非空约束 not null
b) 主键约束(primary key)
i. 一个表只允许有一个主键(可以没有主键)
ii. 主键的列,必须满足两个要求
iii. 主键的选择规则
a) 选择最少的列作为主键(一列或两列)
a) 这一列的值,一旦生成,就很少发生改变
i. 创建方式:
b) 唯一约束
i. 创建方式
c) 默认值约束
i. 关键字
MODIFY COLUMN `password` varchar(20) NOT NULL DEFAULT ‘123456‘
d) 外键约束
i. 外键引用(引用完整性)
ii. ALTER TABLE `orders` ADD FOREIGN KEY (`user_id`) REFERENCES `users` (`id`);
iii. 如何确定外键
iv. ER图
e) 检查约束:在mysql中,可以指定检查约束,但是没效果
f) 约束的常见的前缀的名称
i. PKà主键
ii. FKà外键
iii. CKà检查约束
iv. DFà默认值约束
v. UQà唯一约束
二.Mysql自动增长
三.总结:
a) 表的创建(重点)
i. 界面
ii. 代码
b) 数据类型(重点)
i. 数值类型
ii. 字符类型
iii. 日期时间类型
c) 完整性约束
i. 实体完整性
ii. 域完整性
iii. 引用完整性(难点)
create table Stu
(
StudentNo varchar(50) not null,
LoginPwd varchar(20) not null default‘123456‘,
StudentName varchar(50) not null,
Sex char(2) not null,
gradeld int not null,
Phone varchar(255) not null,
Adress varchar(255) not default‘学生宿舍‘,
Borndate datatime null,
Email varchar(50) null,
PRIMARY KEY (`StudentNo`)
);
#创建学生表
create table Stu
(
StudentNo varchar(50) not null,
LoginPwd varchar(20) not null default‘123456‘,
StudentName varchar(50) not null,
Sex char(2) not null,
gradeld int not null,
Phone varchar(255) not null,
Adress varchar(255) not NULL default‘学生宿舍‘,
Borndate datetime(5) null,
Email varchar(50) null,
PRIMARY KEY (`StudentNo`)
)
;
#创建科目表
CREATE TABLE SubList
(
SubjectId int NOT NULL,
SubjectName VARCHAR(20) NOT NULL,
ClassHour int NOT NULL,
GradeId int NOT NULL,
PRIMARY KEY (`SubjectId`)
);
#创建年级表
CREATE TABLE GradeClass
(
GradeIdm INT NOT NULL,
GradeName VARCHAR(50) not NULL,
PRIMARY KEY (`GradeIdm`)
);
#创建成绩表
CREATE TABLE GradeList
(
Id INT NOT NULL PRIMARY KEY,
StudentNo VARCHAR(50) NOT NULL,
SubjectId INT NOT NULL,
StudentResult int NULL,
ExampleDate DATE NOT NULL
);
创建学生表
create table Stu
(
StudentNo varchar(50) not null UNIQUE,
LoginPwd varchar(20) not null default‘123456‘,
StudentName varchar(50) not null,
Sex char(2) not null,
gradeld int not null,
Phone varchar(255) not null,
Adress varchar(255) not NULL default‘学生宿舍‘,
Borndate datetime(5) null,
Email varchar(50) null,
PRIMARY KEY (`StudentNo`)
)
;
#创建科目表
CREATE TABLE SubList
(
SubjectId int NOT NULL UNIQUE,
SubjectName VARCHAR(20) NOT NULL,
ClassHour int NOT NULL,
GradeId int NOT NULL,
PRIMARY KEY (`SubjectId`)
);
#创建年级表
CREATE TABLE GradeClass
(
GradeIdm INT NOT NULL UNIQUE,
GradeName VARCHAR(50) not NULL,
PRIMARY KEY (`GradeIdm`)
);
#创建成绩表
CREATE TABLE GradeList
(
Id INT NOT NULL PRIMARY KEY UNIQUE,
StudentNo VARCHAR(50) NOT NULL,
SubjectId INT NOT NULL,
StudentResult int NULL,
ExampleDate DATE NOT NULL
);
MySQL复习1
标签:自动增长 led 删除表 let amp idm 视图 引用 创建数据库