转自:https://blog.csdn.net/qq_38741971/article/details/80575835
一、数据库概念
数据库(Database:DB):数据库是按照数据结构啦组织、存储和管理数据的仓库--->数据库其实就是磁盘中的文件+管理系统
数据库管理系统(Database Management System:DBMS)是专门用于管理数据库的计算机系统
软件。数据库管理系统能够为数据库提供数据的定义、建立、维护、查询和统计等操作功能。并完成
对数据完整性、安全性进行控制的功能
=======================================================
二、SQL:结构化查询语言(Structured Query Language)
关系型数据库标准语言,特点:简单,灵活,功能强大
SQL包含6个部分(*号表示常用):
1.数据查询语言(DQL query)*
其语句也称为“数据检索语言”,用以从表中获取数据,确定数据怎样在应用程序中输出,关键字 SELECT(查询)是DQL(也是所有SQL)用的最多的动词,其他DQL常用的关键字有WHERE(用来限制字 段),ORDER BY(排序),
GROUP BY(分组)和HAVING(分组后排序)。这些DQL关键字常与其他类型的SQL语句一起使用。
2.数据操作语言(DML manipulation)*
其语句包括动词INSERT,UPDATE和DELETE,它们分别用于添加,修改和删除表中的行,
也称为动作查询语言(SELECT查询和INSERT查询有什么区别?)
3.事务处理语言(TCL)
它的语句能够确保被DML语句影响的表所有行及时得到更新,TPL语句包括BEGIN TRANSACTION,
COMMIT(事务提交)和ROLLBACK(事务回滚)
4.数据控制语言(DCL)
它的语句通过GRANT和REVOKE获得许可,确定单个用户和用户组对数据库对象的访问,某些RDBMS
可用GRANT和REVOKE控制对表单个列的访问
5.数据定义语言(DDL definition)*
其语句包括动词CREATE(创建)和DROP(删除),在数据库中创建新表和删除表,为表加入索引等。
DDL包括许多与人数据库目录中获得数据有关的关键字,它也是动作查询的一部分
6.指针控制语言(CCL)
它的语句,像DECLARE CURSOR,FETCH INTO 和UPDATE WHERE CURRENT用于对一个
或多个表单独进行的操作
======================================================
三、SQL编写规则:
1.在数据库中,SQL语句不区分大小写
2.SQL语句可以单行也可以多行写
3.在SQL语句中,关键字不能多行或缩写
4.为了提高可读性,关键字一般大写,其他小写
5.空格和缩进使程序易读
6.SQL不需要加分号,但是程序员在语句后加分号是一个好习惯
四、什么是表?
我们说MySQL是一种关系型数据库,关系型数据库最重要的概念就是表,表具有固定的列数和任意的行数,在数学上称为“关系”二维表是同类实体的各种属性的集合,每个实体对应于表中的一行,在关系中称为元组,相当于通常的一条记录,表中的列属性,称为Field,相当于通常记录中的一个数据项,也叫做列、字段。
面向对象的类,类似于关系型数据库中表的概念
ORM思想:对象-关系映射
类 | 表 |
---|---|
属性 | 列 |
对象 | 一行数据 |
五、数据库操作和存储引擎
数据库对象:存储、管理和使用数据的不同结构形式,如:表、视图、存储过程、函数、
触发器、事件等。数据库:存储数据库对象的容器
数据库分为两种:系统自带的,和用户自定义数据库
常用数据库命令:
show databases; 查看数据库
use dName; 使用数据库
show tables; 查看表
create database dName 创建数据库
drop database dName 删除数据库
六、Mysql数据常用类型
MySQL以一个可选的显示宽度指示器的形式对SQL标准进行扩展,这样当数据库检索一个值时,可以把这个值加长到指定长度需要注意,使用一个宽度指示器不会影响字段的大小和它可以存储的值的范围,一般不用指定位宽
整数类型
INT | int/Integer |
BIGINT | long/Long |
int(2),在检索时,长度会加长到2,不代表最大存储99,仅仅是查询时,使用两个0占位
小数类型
FLOAT | float/Float |
DOUBLE | double/Double |
money(5,2):整数和小数一共5位,其中小数占两位,最大999.99最小-999.99
字符类型
CHAR | 定长字符型,0-255字节 | String/StringBuid |
VARCHAR | 变长字符型 | StringBuffer |
TEXT | 纯文本 |
定长和变长:字节数的占用问题CHAR(5),VARCHAR(5),存‘1’,CHAR五个字节,VARCHAR1个字节
日期类型
DATE | 0000:00:00 | Date/Calender |
TIME | 00:00:00 | |
DATETIME | 0000:00:00 00:00:00 | |
TIMESTAMP | 时间戳(1970-01-01 00:00:00差) |
二进制类型 (用的很少)
BINARY\VARBINARY\TINYBLOB\BLOB\MEDIUMBLOB\LONGBLOB 存放图形、声音、影响、二进制对象 *:一般将二进制的文件保存路径存储在数据中
BIT | boolean |
七、表的操作
创建表
CREATE TABLE 表名(
colName1 type1 [约束]
colName2 type2,
colName3 type3
);
ex:创建一张学生信息表
create table t_student(
id int;
name varchar(20);
age int;
);
为了避免使用到关键字,我们还可以将名字用` `圈起来
create table `t_student`(
`id` int;
`name` varchar(20);
`age` int;
);
查看表的结构
desc tName;
查看表的详细定义(查看表的定义SQL语句)
show create table tName;
删除表
drop table tName;
表的约束(针对某列而言)
1.非空约束:NOT NULL,不允许字段的内容为空
2.设置列的默认值:DEFAULT
3.唯一约束:UNIQUE,在该表中,该列的内容必须唯一
4.主键约束:PRIMARY KEY,非空且唯一
主键设计,唯一标识某一行数据
5.主键自增长:AUTO_INCREMENT,从1开始,步长为1
6.外键约束:FOREIGNKEY,A表中的外键列,A表中的外键列的值必须参照于B表中的某一列(B表的主键)
*注意:主键的设计
1.单字段主键:单列作为主键,建议使用
复合主键:使用多列字段当主键,不建议
2.主键的种类:
1).自然主键:使用有业务含义的列作为主键(不建议使用),例如身份证号码
2).代理主键:使用没有业务含义的列作为主键
CREATE TABLE `t_student`(
`id` INT PRIMARY KEY; //主键,非空且唯一
` name` VARCHAR(20) UNIQUE NOT NULL; //非空且值唯一
`age` INT DEFAULT 100; //默认值100
);