前言
在大学期间竟然没有学好数据库是我的一大遗憾,这次学ajax时,想要体验一下完整的从前端到后端的工作,就看视频学习了一下数据库。由于MYSQL对PHP有很好的支持,所以选择学习数据库MYSQL。
一、了解MYSQL
在WEB应用方面,MYSQL是最好的关系型数据库。由于其社区版的性能卓越,搭配PHP 和 Apache可组成良好的开发环境。我在开发过程中,没有单独下载MYSQL数据库,而是使用了集成工具phpStudy。
什么是phpStudy?
phpStudy集成最新的Apache+PHP+MySQL+phpMyAdmin+ZendOptimizer,一次性安装,无须配置即可使用,是非常方便、好用的PHP调试环境。该程序不仅包括PHP调试环境,还包括了开发工具、开发手册等.总之学习PHP只需一个包。
MySQL 是开源的,所以你不需要支付额外的费用。
MySQL 使用标准的SQL数据语言形式。
相关参数:
MYSQL默认端口号:3306
MYSQL超级用户:root
MYSQL初始密码: root
二、MYSQL语句
注意:语句结束后必须加上;
,否则不会结束这句语句。
1.创建数据库
1 | CREATE DATABASE test; |
2.查看当前服务器下的数据库
1 | SHOW DATABASES; |
3.删除数据库
1 | DROP DATABASE test; |
4.查看表的结构
1 | DESC tb1; |
5.使用某个数据库
1 | USE test; |
6.创建数据表
1 | CREATE TABLE tb1 ( |
7.查看数据表
1 | SHOW TABLES; |
8.查看数据表结构
1 | SHOW COLUMNS FROM tb1; |
9.向表中插入记录
1 | INSERT tb1 VALUES("tom",24,4000); |
10.查看表的记录
1 | SELECT * FROM tb1; |
11.向数据表中添加列
1).添加单列
(1)在指定列后添加
1 | ALTER TABLE users1 ADD password VARCHAR(20) NOT NULL AFTER username; |
注:没有写AFTER,直接在尾部添加。
(2)添加在第一列
1 | ALTER TABLE users1 ADD truename VARCHAR(20) NOT NULL FIRST; |
2).添加多列
1 | ALTER TABLE users1 ADD salary VARCHAR(10) AFTER pid,ADD oldname VARCHAR(20); |
12.从数据表中删除列
(1)删除单列
1 | ALTER TABLE users1 DROP oldname; |
(2)删除多列
1 | ALTER TABLE users1 DROP truename,DROP age; |
三、约束
1.主键约束 PRIMARY KEY
主键约束: 一张表只能有一个主键,主键自动为 NOT NULL。
AUTO_INCREMENT 自动编号,但必须和主键组合使用,起始值为1。
设置空值与非空:空值 NULL(默认) 非空 NOT NULL
1 | CREATE TABLE tb3( |
2.唯一约束 UNIQUE KEY
唯一约束:一张表可以有多个唯一约束,唯一约束的字段可以是空值。
1 | CREATE TABLE tb5( |
username设置了唯一约束,所以当一张表中创建两个username相同的记录会报错。
3.默认约束 DEFAULT
当插入记录时,如果没有明确为字段赋值,则自动赋予默认值。
1 | > CREATE TABLE tb6( |
当创建一条记录时,性别默认是“3”
4.外键约束 FOREIGN KEY
外键约束:保持数据一致性,完整性。实现一对一和一对多的关系。
1 | > CREATE TABLE users( |
必须现在父表中插入信息之后,再在子表中插入信息。
外键约束的参数
1.CASCADE: 从父表删除或更新且自动删除或更新子表中匹配的行;
2.SET NULL:从父表删除或更新行,并设置子表中的外键列为NULL;
3.RESTRICT: 拒绝对父表删除或更新;
4.NO ACTION:标准SQL的关键字,在MYSQL中与RESTRICT相同。
四、MYSQL图形管理工具 Navicat
之前使用MYSQL语句创建数据库和数据表实在过于繁琐,虽然在phpStudy中也有类似的工具,但是不是很好用。后面同事推荐了这款MYSQL图形管理工具,我觉得创建数据库和数据表方便多了。