Mysql-day01pm(Mysql的创建)

三建(建库建表建约束)

(1)建库

创建数据库 语法: create database 数据库名(mysql中不区分大小写)

(2)创建表

Create table 表名(

列名  数据类型 约束,

列名  数据类型 约束,

列名  数据类型 约束

)

(每列之间有,号,最后一列无)

例如:

CREATE TABLE `courses` (

`id` INT(11) UNSIGNED NOT NULL ,

`student` VARCHAR(255) ,

`class` VARCHAR(255)

) ;

  • 列中常见的数据类型

#表示数字

int

decimal(5,2) #5代表总长度  2代表小数点的位数 120.0 对的  1000.5 不可以 105.056可以

#字符串

char(4)#以字节为单位 固定长度为4个字节  存放ab 占了4个字节 'ab  '  可以存放4个字母 2个汉字

varchar(4)#以字符为单位 长度可变  存放ab 占了2个字节  可以存放4个汉字 4个字母

#日期

date

TIMESTAMP #如果列添加默认约束 不赋值 默认为当前时间 类型必须为TIMESTAMP

其余数据类型参照:https://www.runoob.com/mysql/mysql-data-types.html

(3)建约束

约束的作用:保证数据库中数据的完整性(正确性和准确性)

常见的约束:主键约束,外键约束,默认约束,唯一约束,check约束(mysql中check约束非强制check,所以无效)

  • 创建约束的语法

a。主键约束

  • 主键的作用

一个表只能有一个主键(主键一般由一个列组成,但是也可以有多个列组成,称为联合主键)

保证数据行的唯一性

主键是不能重复的

一般表的主键针对该表是没有任何意义

  • 添加主键

  • 将两个字段一起设为主键

即联合主键,两个字段组合到一起不重复,联合主键里的任何一个字段都不能为空;

b、唯一约束

alter table 表名  add CONSTRAINT unique(列名);

#将科目表中的科目名称设置唯一约束

 alter table `subject`  add CONSTRAINT unique(subjectname);

面试题:主键约束和唯一约束的区别

                  相同点: 保证数据的唯一性

                  不同点:   一个表中只能有一个主键 但是可以有多个 唯一约束

                            主键不能为空    唯一约束是可以为空

外键约束

直接创建外键约束

额外添加外键

       alter table 从表表名 add constraint 约束名(形如:FK_XX) foreign key 从表(外键字段)  references 主表(主键字段);

     注意:建立外键约束时主表所关联的列必须是主键,从表和主表关联对应的列的数据类型相符

alter table   result

add CONSTRAINT fk_stuno FOREIGN key result(stuno) references student(stuno)

默认约束

a、一般的默认约束

     alter table 表名

     alter 列名 set default 默认值;

#向学生表插入数据 如果没有添加地址 默认为 光谷

alter table student

ALTER  address set default '光谷'#字符串为单引号

  • 设置默认时间

    时间默认为当前时间:

     alter table 表名

     change 列名    列名 timestamp  not null default now();

    #时间默认为当前时间:

    alter table student

     change borndate    borndate  timestamp  not null default now();

2、操作数据库的工具:Navicat Premium

发布了45 篇原创文章 · 获赞 0 · 访问量 1910

猜你喜欢

转载自blog.csdn.net/weixin_41804367/article/details/105338193
今日推荐