【MYSQL的概述】
-
- 什么是数据库:
数据库就是一个文件系统,需要通过标准SQL语句才能访问.
-
- 常见的数据库:
MYSQL :开源免费的数据库,小型的数据库.已经被Oracle收购了.MySQL6.x版本也开始收费.
Oracle :收费的大型数据库.Oracle公司的产品.Oracle收购SUN公司,收购MYSQL.
DB2 :IBM公司的数据库产品,收费的.银行系统中.
SQLServer:MS公司.收费的中型的数据库.
SyBase :已经淡出历史舞台.提供了一个非常专业数据建模的工具PowerDesigner.
SQLite : 嵌入式的小型数据库,应用在手机端.
Java相关的数据库:MYSQL,Oracle.
-
- 关系型数据库:
数据库中存的实体和实体之间的关系.
-
- MYSQL数据库服务器
【MYSQL的安装和卸载】
安装和卸载的过程记录下服务器安装的路径和数据文件存放的路径.卸载的时候将这个两个路径下的文件一并都删除掉.
【MYSQL的SQL语句】
-
- 什么是SQL
SQL:结构化查询语言.
-
- SQL的分类:
DDL:数据定义语言.
create,alter,drop...
DML:数据操纵语言
insert,delete,update
DCL:数据控制语言
if,grant
DQL:数据查询语言.
Select
使用SQL完成对数据库的CRUD的操作:
【创建数据库】
语法:
* create database 数据库名;
* create database 数据库名 character set 字符集;
* create database 数据库名 character set 字符集 collate 校对规则;
【查看数据库】
* 查看数据库服务器中的所有的数据库:show databases;
* 查看某个数据库的定义的信息:show create database 数据库名;
【删除数据库】
* drop database 数据库名称;
【修改数据库】
* alter database 数据库名 character set 字符集 collate 校对规则;
【其他的数据库操作命令】
* 切换数据库:use 数据库名;
* 查看正在使用的数据库:select database();
CRUD操作同其他数据库一样,这里就不介绍了
【外键约束】
多个表之间是有关系的,那么关系靠谁来维护?
多表约束:外键约束.
alter table product add foreign key (cno) references category(cid);
【多表的关系】
-
- 一对多关系:
客户和订单,分类和商品,部门和员工.
一对多建表原则:在多的一方创建一个字段,字段作为外键指向一的一方的主键.
-
- 多对多关系:
学生和课程:
多对多关系建表原则:需要创建第三张表,中间表中至少两个字段,这两个字段分别作为外键指向各自一方的主键.
-
- 一对一关系:
在实际的开发中应用不多.因为一对一可以创建成一张表.
两种建表原则:
唯一外键对应:假设一对一是一个一对多的关系,在多的一方创建一个外键指向一的一方的主键,将外键设置为unique.
主键对应:让一对一的双方的主键进行建立关系.
-----------------------------------------------------------------华丽的分割线-------------------------------------------------------------------------
操作表:
创建表
格式:
create table 表名(字段描述,字段描述);
字段描述:
字段名称 字段类型 [约束]
例如:
create table user(
id int primary key auto_increment,
username varchar(20)
);
create table user1(
id int primary key auto_increment,
username varchar(20)
);
修改表
格式:
alter table 表名 ....
修改表名:
alter table 旧表名 rename to 新表名;
例如:
alter table user1 rename to user10;
添加字段:
alter table 表名 add [column] 字段描述;
例如:
alter table user add password varchar(20);
修改字段名:
alter table 表名 change 字段名称 新字段描述;
例如:
alter table user change password pwd varchar(20);
修改字段描述:
alter table 表名 modify 字段名称 字段类型 [约束];
例如:
alter table user modify pwd int;
删除字段:
alter table 表名 drop 字段名;
例如:
alter table user drop pwd;
删除表:
格式:
drop table 表名;
常用命令:
切换或者进入数据库: use 数据库名称;
查看当前数据库下所有表: show tables;
查看表结构:desc 表名;
查看建表语句:show create table 表名;
mysql数据库密码重置
- 停止mysql服务器 运行输入services.msc 停止mysql服务
- 在cmd下,输入mysqld --console --skip-grant-tables 启动服务器,出现一下页面,不要关闭该窗口
- 新打开cmd,输入mysql -uroot 不需要密码
- use mysql;
-
update user set password=password('abc') WHERE User='root';
-
关闭两个cmd窗口