1.数据库概述
1.1两种类型
关系型数据库
MySQL、sqlServer等,通过表和表之间、行和行之间的关系进行数据库连接
非关系型数据库
Redi、MongDB等,对象存储、通过对象自身的属性来决定
1.2DB/DBS/DBMS三者关系
- DBS包括DB和DBMS。数据库系统是一个通称,包括数据库、数据库管理系统、数据库管理人员等的统称,是最大的范畴。
- DBMS和DB:DBMS是一种操纵和管理数据库的大型软件,是用于建立、使用和维护数据库(DB)。它对数据库进行统一的管理和控制,以保证数据库的安全性和完整性。用户通过DBMS访问数据库(DB)中的数据。
- DBS和DB:数据库系统DBS是一个实际可运行的存储、维护和应用系统提供数据的软件系统,是存储介质、处理对象和管理系统的集合体。它通常由软件、数据库(DB)和数据管理员组成。
1.3基本语句
1 2 3 4 5 6 7 8 9 10 11
| 刷新权限 flush privileges; 查询数据库 show databases; 查询表 show tables; 切换数据库 Use 数据库名称; 显示数据库表中所有表信息 describe 表名称; 创建数据库 creat database 数据库名称; 退出数据库 exit; 单行注释 多行注释 更改密码 update mysql.user set authentication_string=password('123456') where user='root'and Host = 'localhost';
|
1.4字段属性
- Unsigned:无符号的整数,声明了该列不可声明为负数
- Zerofill:不足的位数用0来补充 int(3) 5-005
- 自增:自动在上一条记录上+1,通常用于设置唯一的主键 index,必须是整数类型,可在高级选项中自定义设置主键自增和起始步长
- 非空:设置为非空,若不赋值就会报错,不设置不写的情况下,默认显示(NULL)
1.5数据类型
1.6表类型
- MYISAM 节约空间,速度更快
- INNODB 主流类型,安全性高,事务的处理,多表用户操作
- 在物理空间的位置,数据库文件都存在在data目录下,一个文件对应一个数据库
- 两者在物理上的区别
- INNODB生产为frm结尾的文件,及上级目录ibdata1文件
- MYISAM生产三个文件
- .frm表结构定义文件
- .MYD 数据文件(data)
- .MYI 索引文件(index)
2.操作数据库
2.1创建数据库
1 2 3 4 5 6 7
| CREATE DATABASE IF NOT EXISTS 数据库名称
DROP DATABASE 数据库名称
USE `school`
|
2.2创建表
1 2 3 4 5 6
| CREATE TABLE IF NOT EXISTS `表名`( `字段名` 列类型(位数) [属性] [索引] [注释] , ............ `字段名` 列类型(位数) [属性] [索引] [注释] )ENGINE=数据表类型 DEFAULT CHARSET=字符集
|
1 2 3 4 5 6 7
| CREATE TABLE IF NOT EXISTS `student`( `id` INT(10) NOT NULL AUTO_INCREMENT COMMENT 'jsei_id', `name` VARCHAR(30) NOT NULL COMMENT 'name', PRIMARY KEY(`id`) )ENGINE=INNODB DEFAULT CHARSET=utf8
|
2.3查询指令
1 2 3 4 5
| SHOW CREATE TABLE jsei_info SHOW CREATE DATABASE school
DESC `表名称`
|
2.4修改删除表
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| ALTER TABLE 表名称 RENAME AS 新名称
ALTER TABLE 表名称 ADD `字段名称` 数据类型(100)
ALTER TABLE 表名称 MODIFY `字段名称` 数据类型(3)
ALTER TABLE 表名称 CHANGE `旧的字段名` `新的字段名` CHAR(3)
ALTER TABLE 表名称 DROP `字段名称`
DROP TABLE IF EXISTS 表名称
TRUNCATE TABLE `表名称`
|
- MODIFY只能修改字段的数据类型
- CHANGE能修改字段名和数据类型
3.外键理解
3.1概述
- 两种方式都为物理外键,看懂即可基本不用
- 数据库作为单纯的表,存储数据只有行和列
- 阿里开发手册:不得使用外键与级联,一切外键概念必须在应用层解决
3.2注意事项
- 删除有外键关系的表的时候
- 必须要删除引用别人的表(从表)
- 再删除被引用的表(主表)
3.3创表时增加
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
| CREATE TABLE `表名称` ( `id` INT(10) NOT NULL AUTO_INCREMENT COMMENT 'jsei_id', `gradeid` VARCHAR(10) NOT NULL COMMENT '年纪代号', PRIMARY KEY (`id`), KEY `FK_gradeid` (`gradeid`), CONSTRAINT `FK_gradeid` FOREIGN KEY (`gradeid`) REFERENCES `grade` (`gradeid`) ) ENGINE=INNODB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8
CREATE TABLE `grade`( `gradeid` VARCHAR(10) COMMENT '年纪代号', `gradename` VARCHAR(10) NOT NULL COMMENT '名字', PRIMARY KEY (`gradeid`) )ENGINE=INNODB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8
|
3.2使用ALTER
1 2
| ALTER TABLE `表名称` ADD CONSTRAIN `FK_字段名` FOREIGN KEY (`字段名`) REFERENCES `被引用表名称`(`被引用表字段`)
|