一、MySQL数据库基础
1.数据库系统组成
1.1数据库
1.2数据库管理系统DBMS
创建Create
读取Read
更新Update
删除Delete
1.3数据库应用程序
2.关系型数据库
数据库按数据保存方式以及构造:
层次性数据库
网络型数据库
对象型数据库
关系型数据库
关系型数据库中表的每一列都有唯一的列名,且该列所有的数据均为同一种数据类型,列在表中的次序无关紧要;表中每一行代表一条记录,表中的任意两行记录不能完全相同,行在表中的顺序也不关紧要
3.MySQL
开放源码的小型关系型数据库管理系统
4.启动和停止MySQL服务
5.1通过Windows服务窗口启动MySQL服务
单击开始——运行——输入services.msc——确定——找到MySQL
win+r——输入services.msc——确定——找到MySQL
5.2使用MySQL命令启动和停止MySQL服务
单击开始——运行——输入cmd——确定——输入net start mysql(启动)net stop mysql(停止)
win+r——输入cmd——确定——输入net start mysql(启动)net stop mysql(停止)
5.客户端连接MySQL服务
5.1自带客户端连接MySQL服务器
点击所有程序——MySQL Server5.6——MySQL5.6——Command Line Client——输入密码——弹出mysql>正确
5.2通过命令连接
在Windows环境变量的Path系统变量中添加MySQL的bin路径
右键单击计算机——属性——高级系统设置——环境变量——在系统变量区域找到Path变量双击——在变量值处添加,最后输入;
win+r——cmd——输入mysql.--help——验证是否成功
win+r——cmd——mysql -h 127.0.0.1 -P3306 -u root -p密码
二、表结构管理
1.数据表
每一行代表一条唯一的记录,每一列代表记录中的一个域
2.MySQL常见数据类型
数据类型分类 | 类型 | 取值范围 |
整数 | tingint smallint int |
0——255 -32768——23767 -2147483648——2147483648 |
小数 | decimal | decimal(5,2)表-999.99——999.99 |
定长字符串 | char | char(10)存储10个字符 |
变长字符串 | varchar | varchar(20) |
日期 | date time datetime |
年月日 时分秒 年月日时分秒 |
3.实体完整性约束
实体完整性规定表的每一行记录在表中是唯一的,其主要包含主键约束和唯一约束
3.1主键约束
用于唯一识别每一条记录,数据表中具有唯一值的字段可设定为主键字段
新增一个无业务含义的字段作为主键,整数类型,自动增长
3.2唯一约束
与主键约束相比,唯一约束用于确保列中不存在重复值,但其列值可以是null
4.域完整性 ——列
4.1非空约束
4.2默认值约束 company
5.参照完整性
通过定义一张表外键与另一张表中主键之间的引用规则来约束这两张表之间的联系
5.1从表
含有外键且参照其他表的表,被称子表或参照表
5.2主表
被其他表参照的表,被称为父表或被参照表
5.3外键
从表中的参照列称为外键,外键名与被参照的主表中的主键数据类型应完全一致,但可以不同名
5.4被参照列
主表中的被参照列通常为主表的主键
三、DDL和DML
1.使用DDL定义数据库表结构
1.1创建数据库
CREATE DATABASE database-name
CREATE DATABASE demo
1.2删除数据库
DROP DATABASE database-name
DROP DATABASE demo
1.3查看数据库
SHOW DATABASES
1.4创建数据表
CREATE TABLE table-name(
column-name data-type [NOT NULL] [DEFAULT default-value] [AUTO-INCREMENT] [],...
[PRIMARY KEY (pk-name),]
[FOREIGN KEY (fk-name) REFERENCES referenced-table-name(ref-pk-name)]
)
column-name 字段名
data-type 数据类型
default-value 默认值
AUTO-INCREMENT 自动增长
pk-name 当前表中的主键名
fk-name 当前表中的外键名
referenced-table-name 被引用表名(主表名)
ref-pk-name 被引用表主键名
use bus2;
CREATE TABLE dirver(
dirverID int PRIMARY KEY AUTO-INCREMENT,
linceseNo VARCHAR(20),
birth date
)
1.5修改表结构
ALTER TABLE 表名 修改子句
修改多个,逗号隔开
1.5.1新增字段
ADD column_name data_type [NOT NULL] [DEFAULT default-value]
1.5.2变更字段
CHANGE column_name new_column data_type [NOT NULL] [DEFAULT default-value]
1.5.3添加唯一索引
ADD UNIQUE uk_liceseNo(liceseNo)
1.5.4更新字段
MODIFY column_name new_data_type [NOT NULL] [DEFAULT default-value]
1.5.5删除字段
DROP COLUMN column_name
说明:删除字段 column_name</