一、SQL语言
1.1概述
SQL(Structured Query Language 即结构化查询语言),SQL语言主要用于存取数据、查询数据、更新数据和管理关系数据库系统,SQL语言由IBM开发。
1.2分类
DDL语句 数据库定义语言: 数据库、表、视图、索引、存储过程,例如CREATE DROP ALTER
DML语句 数据库操纵语言: 插入数据INSERT、删除数据DELETE、更新数据UPDATE
DQL语句 数据库查询语言: 查询数据SELECT
DCL语句 数据库控制语言: 例如控制用户的访问权限GRANT、REVOKE
二、DDL语句
2.1名词解释
数据库: 虚拟库,主要存储了系统中的一些数据库对象的信息,例如用户表信息、列信息、权限信息、字符信息等,表的管理单元
表:记录的管理单元
记录:字段的管理单元
字段:数据库中记录信息的最小单元,由三部分组成 :字段名 ; 字段类型;字段约束
字段类型:分为数值型,字符型,日期型三种
1.数值型:
整数类型 int
浮点数类型 float
定点数类型 DEC
位类型 BIT
2.字符类型:
char 系列 char varchar
枚举类型: ENUM
集合类型: SET
3.时间和日期类型:
年 YEAR
日期 DATE
时间 TIME
日期和时间 DATETIME
字段约束 由于生活中需要避免重名的情况,所以数据库中某列使用完整性约束来限定此类要求。 用于保证数据的完整性和一致性
PRIMARY KEY (PK) 标识该字段为该表的主键,可以唯一的标识记录,不可以为空
FOREIGN KEY (FK) 标识该字段为该表的外键,实现表与表(父表主键/子表1外键/子表2外键)之间的关联
UNIQUE KEY (UK) 标识该字段的值是唯一的,可以为空,一个表中可以有多个UNIQUE KEY
AUTO_INCREMENT 标识该字段的值自动增长(整数类型,而且为主键)
DEFAULT 为该字段设置默认值
NOT NULL 标识该字段不能为空 是否允许为空,默认NULL,可设置NOT NULL,字段不允许为空,必须赋值
2.2DDL库
创建库
create dabatase 数据库名;
查看所有库
show databases;
进入某个库
use 库名;
查看当前所在库
select database ();
删除库
drop database 库名;
2.3DDL表
创建表
create table 表名 (字段名1 字段类型1 字段约束1 ,字段名2 字段类型2 字段约束2,…);
查看表
show table 表名 注意:此命令查看的是当前数据库下的所有创建的表名,如果在其他库中是查不到的。
给表插入数据
insert into 表名 values (字段1对应信息,字段2对应信息,字段3对应信息);
insert into 表名 字段类型 value (字段信息);
查询表中内容
select * form 表名 ;
查看表结构
desc 表名;
删除表
drop table 表名;
三、字段类型详解
3.1数值类型
整数类型
有int,tinyint两种
其中 TINYINT有符号型最大127;INT有符号型最大2147483647
接下来通过例子介绍一下
1.创建一个表
2.查询表结构
3.插入数值
正确示范:
错误示范:
同理,int类型的字段插入数值时不能超过2147483647。
小数类型
浮点数float 精准小数decimal 这两种
浮点数float 浮点数和定点数都可以用类型名称后加(M,D)的方式来表示,(M,D)表示一共显示M位数字,D表示小数位占几位。
接下来通过例子解释
1.创建一个表
2.插入数据
正确示范:
错误示范:
精准小数decimal 定点数在MySQL内部以字符串形式存储,比浮点数更精确,适合用来表示货币等精度高的数据。decimal在不指定精度时,默认的整数位为10,默认的小数位为0
接下来通过例子解释
1.创建一个表
2.插入数据
正确示范:
3.2字符类型
char varchar
CHAR 列的长度固定为创建表时声明的长度: 0 ~ 255
VARCHAR 列中的值为可变长字符串,长度: 0 ~ 65535
CHAR的长度是固定的
VARCHAR长度是可以变化的
CHAR和VARCHAR的默认长度都设为10,两个字段都分别写入“abc”
CHAR 损耗了硬盘10字节 = “abc”长度 + 7个空字符
VARCHAR损耗了硬盘 3字节 = “abc”长度
枚举类型
ENUM类型 enum 单选 只能在给定的范围内选一个值,如性别 sex 男male/女female
1.创建表
2.插入数据
集合类型
SET类型 set 多选 在给定的范围内可以选择一个或一个以上的值(爱好1,爱好2,爱好3…)
1.创建表
2.插入数据
3.3时间和日期类型
四、字段约束详解
4.1default 默认值
1.创建表
2.插入数据
4.2notnull 不能为空
1.创建表
2.插入数据
4.3PRIMARY KEY主键约束
主键约束包含连个功能,不能为空,和自动增加,不能为空可以在创建表时单独设置,但是自动增加不能,必须先写主键,再写自增,不写会创建失败,写了相当于打开了主键的这个功能.
这里以主键的自动增加功能为例进行说明
1.创建表
2.插入数据