MySQL笔记整理

null | not null 是否可以为空 null 表⽰可以为空 not null表⽰不能为空(必须要有数据) default 默认值。1. 主键(primary key):用于保证该字段的值具有唯一性并且不能为空,也起到标识列的作用 2. 唯一(unique):用于保证该字段的值具有唯一性,可以为空。6. 外键(foreign key):用于限制两张表的关系,用于保证该字段的值必须来自于主表的关联列的值, 在从表添加外键约束,用于引用主表中某些值。
摘要由CSDN通过智能技术生成

第一章:数据库基本操作

一. 数据库的基本概念

        1. 数据库: 数据库中存放的⼀般是多张表

        2. 表: 表是⽤来存放数据

        3. 关系: 两个表单公共字段         

        4. ⾏ : 也称为叫记录 , 也叫实体

        5. 列 : 也称为叫字段 , 也叫属性.

注意: 就表结构⽽⾔ , ⼀张表 就分为⾏和列     就数据⽽⾔:记录和字段

二. 创建数据库(掌握)


# 创建数据库
create database student;
# [Err] 1007 - Can't create database 'student'; database exists (数据库存在了,就不能
# 创建数据库 (会进⾏检测 此数据库是否存在)
create database if not exists tencher;
# 特殊字符.关键字做数据库的名字 , 使⽤反引号将数据库的名字括起来 ``
create database `CREATE`;
create database if not exists `$%`;
# 在创建数据库的时候指定存储的字符编码(了解即可 )
# 如果不指定 编码 数据库默认使⽤安装数据库时的指定编码
create database if not exists user emp charset = gbk

注意:

1.如果创建的数据库已经存在, 就会报错

2.解决办法: 创建数据库的时候判断⼀下数据库是否存在 , 如果不存在在创建(CREATE table if      not  EXISTS 数据表名)

3.如果数据库名字特殊的字符或者关键字会报错  解决: 在特殊字符关键字上添加反引号

4.创建数据库的时候可以指定字符   如果不指定 编码 数据库默认使⽤安装数据库时的指定编码

三. 显示数据库

 显⽰所有的数据库
 show DATABASES;

四. 删除数据库(掌握)

# 删除数据库
drop database `$%`;

# 如果存在 就删除
drop database if exists `create`;

#如果删除的数据库不存在就会报错
drop database [if exists] create;

五. 切换数据库

      语法:USE 数据库名;

第二章:数据表操作

一.创建数据库

     语法:create table [if not exists] student1(

                        `字段名` 数据类型 [null | not null] [default][primary key] [comment],

                        `字段名` 数据类型

                )[engine = 引擎的名称 ] [charset = 字符编码 ]

      解释:

                数据类型  int 数字型 char(3) 字符型

                null | not null 是否可以为空 null 表⽰可以为空 not null表⽰不能为空(必须要有数据)                  default 默认值

                primary key 主键 : 主键的值不能重复 , 不能为空 , 每张表必须只能有⼀个主键(其⽬的是                                           为了标识

                auto_increment : ⾃动增⻓, 默认从1开始 每次递增 1         

                comment :备注

                engine : 引擎 数据库存储的引擎 引擎决定了数据的查找和存储   (myisam   innodb)

       注意:

        ◦ 不指定引擎 默认是innodb

        ◦ 如果不指定字符编码 , 默认和数据库的编码是⼀致的

        ◦ char 必须要给⼀个定⻓的⻓度(例如⼿机号: 11位 )

二. 查看数据库中已存在的表

语法:SHOW TABLES;       SHOW TABLES 数据表名;

三. 删除数据表

语法:DROP TABLE 数据表名;

四. 数据表结构操作

     a. 查看数据表结构

        语法:desc 数据表名称;

     b. 添加字段

        语法:ALTER TABLE 数据表名 ADD COLUMN 新字段名称 数据类型 约束 FIRST | AFTER             字段名称

     c. 修改字段名称

        语法:ALTER TABLE 数据表名 CHANGE 旧字段名 新字段名 数据类型;

     d. 修改字段的数据类型

        语法: ALTER TABLE 数据表名称 MODIFY 字段名 新数据类型;

     e. 删除字段名称         

        语法: ALTER TABLE 数据表名称 DROP COLUMN 字段名称

     f. 数据表重命名

        语法:RENAME TABLE 原来表名称 TO 新表名称;

五. 约束 

概念:一种限制 用于限制数据表中的数据,为了保证数据表中数据的准确性和可靠性。

(一)六大约束

        1. 主键(primary key):用于保证该字段的值具有唯一性并且不能为空,也起到标识列的作用         2. 唯一(unique):用于保证该字段的值具有唯一性,可以为空

        3. 非空(not null): 用于保证该字段的值不能为空

        4. 默认值(default):用于保证该字段有默认值。

        5. 检查(check):mysql中不支持,用于检查字段中是否为指定值。

        6. 外键(foreign key):用于限制两张表的关系,用于保证该字段的值必须来自于主表的关联列的值, 在从表添加外键约束,用于引用主表中某些值。

(二)外键

1.修改表结构语法:alter table 表名称 ADD CONSTRAINT 外键名称 FOREIGN KEY(外键字段) REFERENCES 主表名称(主键字段)[on UPDATE 级联操作设置] [ON delete 级联操作设置]

例如:

ALTER TABLE stuInfo ADD CONSTRAINT fk_cid FOREIGN KEY (cid) REFERENCES classInfo(cid)

2.查看当前表中的索引约束 : show index from 表名称
     例如:SHOW INDEX from stuinfo;

3. 删除外键 语法:alter table 表名称 drop 外键名称

4. 外键创建

语法:CONSTRAINT 外键名称 FOREIGN KEY(外键字段) REFERENCES 主表名称(主键字段)

create table bookinfo(
	bookId int not null PRIMARY key,
	bookname VARCHAR(50),
	cid int not null, 
	CONSTRAINT fk_cid1 FOREIGN KEY (cid) REFERENCES channel (channId)
)ENGINE = INNODB charset = utf8 COLLATE utf8_general_ci;

create table channel(
	channId int not null PRIMARY key,
	cname VARCHAR(50)
)ENGINE = INNODB charset = utf8 COLLATE utf8_general_ci;
 

FOREIGN KEY 用于从表中的某偶一个字段
1.设计两表之间的关联 拥有外键字段的表是从表 外键字段的值得来源那张表叫做主表
2.主表中的字段必须是主键
3.主表和从表的存储引擎必须是innodb
4.一张报表中可以设置多个外键字段

外键的级联操作
1.casecade 级联
2.no action 不做任何操作 不允许级联操作
3.set null 设置为空

六. 数据类型

1. 数值类型

类型 大小 范围(有符号)
  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值