导图社区 MySQL基础教程1-2章
MySQL基础教程1-2章,整理了数据库、数据表的知识,慢慢学习不着急,希望这份脑图会对你有所帮助。
编辑于2023-07-04 18:25:20MySQL基础教程 1-2章
数据库
概要
二战后,美军在基地集中管理资料
数据库database
具有某种规则的数据集合
添加、查询、提取
关系型数据库
RDB relational database
一条数据用多个项目表示
一条数据称为一个记录row
相当于EXCEL的一行
各个项目称为列column
相当于EXCEL的一列
多个具有关联系的表
table
关系数据库管理系统
RDBMS
relational database management system
MySQL就是其中一种
瑞典MySQL AB公司→sun公司→Oracle公司
米卡埃尔。维德纽斯2010年创建了Maria DB
structured query language
结构化查询语言
关系型数据库不用把项目存入一个表,可以分拆到多个据有关联性的表中
Oracle、access(微软office)、Microsoft SQL server、PostgreSQL(日本)、MySQL开源
MySQL
版本
社区版
community edition
免费无技术支持
商业版
commercial edition
付费、服务包和技术支持
创建数据库
show databases;
查看当前所有存在的数据库
create database 数据库名;
创建数据库,该名称不能与已经存在的数据库重名
删除数据库
drop database 数据库名;
数据表
创建数据表
在创建数据表之前,应该使用语句“USE <数据库名>”指定操作在哪个数据库中进行。
使用“SHOW TABLES;”语句查看数据表是否创建成功
主键约束
(Primary Key ConstraINT)要求主键列的数据唯一,并且不允许为空
单字段主键
主键由一个字段组成
在定义列的同时指定主键
在定义完所有列之后指定主键
多字段联合主键
主键由多个字段联合组成
外键约束
外键用来在两个表的数据之间建立连接
创建一个部门表tb_dept1
定义数据表tb_emp5, 让它的字段deptId作为外键关联到tb_dept1的主键id
表tb_emp5上添加了名称为fk_emp_dept1的外键约束,外键名称为deptId,其依赖于表tb_dept1的主键id
非空约束
执行后,在tb_emp6中创建了一个name字段,其插入值不能为空(NOT NULL)
唯一性约束
唯一性约束可以确保一列或者几列不出现重复值
在定义完列之后直接指定唯一约束
在定义完所有列之后指定唯一约束
UNIQUE和PRIMARY KEY的区别:一个表中可以有多个字段声明为UNIQUE,但只能有一个PRIMARY KEY;声明为PRIMAY KEY的列不允许有空值,但是声明为UNIQUE的字段允许空值(NULL)的存在。
默认约束
默认约束(Default ConstraINT)指定某列的默认值。如男性同学较多,性别就可以默认为“男”。如果插入一条新的记录时没有为这个字段赋值,那么系统会自动为这个字段赋值为“男”。
以上语句执行成功之后,表tb_emp7上的字段deptId拥有了一个默认的值1111,新插入的记录如果没有指定部门编号,则默认都为1111
设置表的属性值自动增加
在数据库应用中,需要在每次插入新记录时,系统自动生成字段的主键值的话,可以通过为表主键添加AUTO_INCREMENT关键字来实现
在MySQL中AUTO_INCREMENT的初始值是1,每新增一条记录,字段值自动加1。一个表只能有一个字段使用AUTO_INCREMENT约束,且该字段必须为主键的一部分
这里使用INSERT语句向表中插入记录的方法,并不是SQL的标准语法,这种语法不一定被其他的数据库支持,只能在MySQL中使用
语句执行完后,tb_emp8表中增加3条记录,在这里并没有输入id的值,但系统已经自动添加该值
查看数据表结构
使用SQL语句创建好数据表之后,可以查看表结构的定义,以确认表的定义是否正确。在MySQL中,查看表结构可以使用DESCRIBE和SHOW CREATE TABLE语句
describe 表名;
desc 表名;
NULL:表示该列是否可以存储NULL值
Key:表示该列是否已编制索引。PRI表示该列是表主键的一部分;UNI表示该列是UNIQUE索引的一部分;MUL表示在列中某个给定值允许出现多次
Default:表示该列是否有默认值,若有的话指定值是多少。
Extra:表示可以获取的与给定列有关的附加信息,例如AUTO_INCREMENT等
SHOW CREATE TABLE语句可以用来显示创建 表时的CREATE TABLE语句
show create table 表名;
使用SHOW CREATE TABLE语句,不仅可以查看表创建时候的详细语句,还可以查看存储引擎和字符编码
如果不加“\G”参数,显示的结果可能非常混乱,加上参数“\G”之后,可使显示结果更加直观,易于查看
修改数据表
修改表指的是修改数据库中已经存在的数据表的结构
修改表名、修改字段数据类型或字段名、增加和删除字段、修改字段的排列位置、更改表的存储引擎、删除表的外键约束
TO为可选参数,使用与否均不影响语句执行结果
将数据表tb_dept3改名为tb_deptment3
DESC命令查看修改前后两个表的结构,修改表名并不修改表的结构
修改字段的数据类型
把字段的数据类型转换成另一种数据类型
modify:修改; 修饰; 调整; 缓和; 使温和; 使更适合;
rename:vt. 重新命名; 给…改名
修改字段名
新数据类型”指修改后的数据类型,数据类型不能为空,可以与原来一样。
CHANGE也可以只修改数据类型,实现和MODIFY同样的效果,“新字段名”=“旧字段名”,只改变“数据类型”
因此当数据库表中已经有数据时,不要轻易修改数据类型
添加字段
“FIRST”为可选参数,其作用是将新添加的字段设置为表的第一个字段;“AFTER”为可选参数,其作用是将新添加的字段添加到指定的“已存在字段名”的后面
如果SQL语句中没有这两个参数,则默认将新添加的字段设置为数据表的最后一列
没有完整性约束
添加有完整性约束条件
在表的第一列添加一个字段
在表的指定列之后添加一个字段
删除字段
修改字段的排列位置
第一列
某字段后
删除表的外键约束
一旦删除外键,就会解除主表和从表间的关联关系
删除数据表
表的定义和表中所有的数据均会被删除
使用DROP TABLE可以一次删除一个或多个没有被其他表关联的数据表
删除被其他表关联的主表
删除外键约束→删除对应表