当前位置:Gxlcms > 数据库问题 > MySQL复习1

MySQL复习1

时间:2021-07-01 10:21:17 帮助过:17人阅读

创建表

 create table

数据库的常见操作

 三建四句

 建表,建库,建约束(create  table,database,constraint)

 增删改查(insert,delete,update,select)

 

a)         如何来创建表的

                         i.              表的概念

  1. 行(实体,记录)
  2. 列(域,字段)
  3. 单元格(数据)

a)         冗(rong)余:在数据库表中,出现重复的数据

                                                                   i.              如何减少数据冗余:把一张表分解为几张表,然后进行关联

                                                                  ii.              减少数据冗余的同时,增加了数据查找的复杂性。从而降低效率。

                                                                iii.              在数据库中,是允许有一定冗余

b)        数据的完整性

                                                                   i.              不正确性(违反数据库的完整性)

                                                                  ii.              不准确性(违反数据库的完整性)

                                                                iii.              数据完整性=正确性+准确性

                                                                iv.              可以通过约束来确保数据库的完整性

                                                                 v.              完整性的分类

  1. 实体完整性
  2. 域完整性
  3. 引用完整性
  4. 自定义完整性

                        ii.              表的创建(table)

  1. 界面

a)         连接数据库

b)        打开数据库

c)         右键

d)        新建表

  1. 代码

a)         查看数据库中下所有的表格:show tables

b)        创建表

                                                                   i.              语法:create table 表名(列名1 数据类型 约束条,列名2…)

c)         查看表结构

                                                                   i.              Desc 表名

d)        删除表(删除表结构)

                                                                   i.              Drop table 表名

e)         自动增长

                                                                   i.              Auto_increment

  1. 课堂小练习

a)         使用代码创建表(用户表:users):

b)        列有:

                                                                   i.              Id

                                                                  ii.              Username

                                                                iii.              Password

                                                                iv.              Sex

                                                                 v.              Age

                                                                vi.              birthday

二.数据类型

a)         数值类型

                         i.              整数

  1. tinyintà(byte:-128~127)
  2. smallintà(short: -32768~32767)
  3. mediumintà
  4. int(integer)à(int:正负20亿左右)
  5. bigintà(long:)

                        ii.              小数

  1. 浮点型

a)         float(4个字节:   正负3.402E+38)

b)        double(8个字节:     正负 1.7E308)

  1. 定点型

a)        decimal(M,D)

b)        范围与double类型一致

c)         精度更加精确

d)        M:有效位数

e)         D:小数点位数

b)        字符类型

                         i.              char(M)

  1. M的范围是0~255
  2. 定长
  3. 如果某一列的数据,长度是固定不变的,则使用char类型,比如:性别,身份证号码

                       ii.              varchar(M)

  1. M:0-65535
  2. 可变长度
  3. 对于某一列数据,如果长度可能会出现不一致,则使用varchar类型。

                      iii.              Blob(lob:large object)

                      iv.              text

                       v.              enum类型(枚举类型)

  1. 值必须是枚举中的值(只能是一个)
  2. Enum(‘男’,’女’)
  3. 最多允许有65535个枚举

                      vi.              set类型(集合类型)

  1. 值必须是集合中的值,但是可以有多个
  2. Set(‘a’,’b’,’c’,’d’)
  3. 最多允许64个成员

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.              一个表只允许有一个主键(可以没有主键)

  1. 主键可以分为:单个主键和组合主键

                        ii.              主键的列,必须满足两个要求

  1. 不能为空
  2. 唯一的(这一列,不允许出现相同的内容)

                      iii.              主键的选择规则

  1. 最少性

a)         选择最少的列作为主键(一列或两列)

  1. 稳定性

a)         这一列的值,一旦生成,就很少发生改变

                         i.              创建方式:

  1. 创建表的时候,通过列来指定

 技术分享

 

  1. 创建表的时候,使用primary key(列名)

 技术分享

 

  1. Constaint 约束名 primary key(列名)

 技术分享

 

 

  1. 表创建完成以后,使用修改表的方式来创建

 技术分享

 

 

b)        唯一约束

                         i.              创建方式

  1. 列的定义后面添加unique
  2. 在类定义完成以后,添加unique(列名)
  3. Constraint 约束名 unique(类名)
  4. Alter table 表名 add construction 约束名 unique(列名)

c)         默认值约束

                         i.              关键字

  1. Default
  2. ALTER TABLE `users`

MODIFY COLUMN `password`  varchar(20) NOT NULL DEFAULT ‘123456‘

d)        外键约束

                         i.              外键引用(引用完整性)

                        ii.              ALTER TABLE `orders` ADD FOREIGN KEY (`user_id`) REFERENCES `users` (`id`);

                      iii.              如何确定外键

  1. 先有:主表
  2. 后有:从表
  3. 外键是创建在从表中

                      iv.              ER图

  1. Entity:实体
  2. Relation:关系
  3. ER图:实体关系图

e)         检查约束:在mysql中,可以指定检查约束,但是没效果

f)          约束的常见的前缀的名称

                         i.              PKà主键

                        ii.              FKà外键

                      iii.              CKà检查约束

                      iv.              DFà默认值约束

                       v.              UQà唯一约束

二.Mysql自动增长

三.总结:

a)         表的创建(重点)

                         i.              界面

                        ii.              代码

b)        数据类型(重点)

                         i.              数值类型

  1. 整数:int
  2. 小数:decimal(M,D)

                        ii.              字符类型

  1. Char(n),varchar(n)区别
  2. Enum(),set()

                      iii.              日期时间类型

  1. Date,time,datetime

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   视图   引用   创建数据库   

人气教程排行