一、数据库简介

  什么是数据库?

  *数据库就是一个文件系统,但是访问的时候需要使用标准的SQL语句来访问数据。

 关系型数据库

  *存储的都是实体与实体之间的关系。

  常见的数据库

  *Oracle:甲骨文公司的数据库产品,大型的收费数据库。

  *SQLServer:微软公司的数据库产品,中型的收费的数据库。

  *MySQL:是开源的,免费的数据库产品,在5.x版本是免费的,6.x是收费的。

  *DB2:IBM公司的数据库产品,大型的收费的数据库。

  *SyBASE:已经退出历史舞台,Powerdesigner(数据库建模工具)。


二、MySQL的卸载和安装

  MySQL的卸载:

  1.先到MySQL的安装路径,找到my.ini的配置文件,找到两个路径,basedir和datadir。

  2.然后卸载数据库,再找到以上两个路径删除文件夹。


  MySQL的安装:

  下一步,下一步即可。


三、root密码的重置

3.1停止mysql服务

wKiom1jEz4WDmppKAAGsEqS5IBE985.png

wKiom1jEz8PCOy_NAAGV8jUWdHY073.png3.2在cmd输入一个命令,用来开启一个MySQL服务,用于登录的时候不需要验证

wKioL1jE0EfSwl7fAABuoUifvdI907.png

此时出现上面的窗口,表示已经启动了那个MySQL的服务,这个时候千万不能关闭这个窗口。不然服务就失效了。


3.3新打开一个cmd窗口,然后输入mysql -u root -p ,在上面的服务中,是不要密码就可以直接进入的。

wKiom1jE0UzykVahAAC81Ls0b5E991.png

3.4输入命令show databases;可以用来查看数据库。

wKiom1jE0bOAtOVHAAAbr7YIChM576.png


输入命令use mysql;使用mysql数据库。

wKiom1jE0ezgwJm4AAA5GePXTzk480.png3.5修改密码的语句

update user set password = password('root') where user= 'root';

wKioL1jE0ofjAALXAAAaevF3Wik074.png

3.6将两个窗口关闭

3.7任务管理器中结束mysqld的进程

wKioL1jE0saRrTIMAACqdUH9_aA494.png

wKiom1jE0ujwb8QgAACsMw6tceM788.png

3.8重启MySQL服务

wKioL1jE00qQRBhnAAKoliSzAKM435.gif


四、MySQL服务器与数据、表之间的关系

wKiom1jE28ezXoF8AAEIIDHxpGk663.png

五、SQL简介

*SQL:Structured Query Language,结构化查询语言。

*特点:非过程性语言

  *过程性语言:当前的这条语句执行需要依赖于上一条或几条语句。

  *非过程性语言:可一条语句,就会执行一个结果。

*为加强SQL的语言能力,各厂商增强了过程性语言的特征

  *如Oracle的PL/SQL过程性处理能力。

  *SQL Server、Sybase的T-SQL。

*SQL是用来存取关系数据库的语言,具有查询、操纵、定义和控制关系型数据的四方面功能


六、SQL分类

*DDL(数据定义语言)

  *数据定义语言  Data Definition Language

  *用来定义数据库的对象,如数据表、视图和索引等等。

*DML(数据操纵语言)

  *数据操纵语言 Data Manipulation Language

  *在数据库表中更新、增加和删除记录

  *如update、insert、delete。

*DCL(数据控制语言)

  *数据控制语言 Data Control Language

  *用于设置用户权限和控制事务语言

  *grant、revoke、if...else、while、begin...transaction

*DQL(数据查询语言)

  *数据查询语言 Data Query Language

  *select


七、数据库之--创建数据库

create database 数据库名字 character set utf8;

wKiom1jRFczCO_6PAAAhVdNIy7o010.png

案例:创建一个名称为mydb1的数据库。

create database mydb1;

 wKiom1jRFiCTssFfAAAfZo3ZAOs812.png

案例:创建一个使用utf8字符集的mydb2的数据库。

create database mydb2 character set utf8;

wKioL1jRFn-AZxC2AAArd11quOQ337.png

八、数据库之--查看数据库

-- 显示数据库语句;
show databases;

wKioL1jRFtuSxy1sAAAgyii43Qo606.png


九、数据库之--显示数据库定义信息

-- 显示数据库定义信息
show create database 数据库名字;

wKiom1jRF1qR_40_AABBU0d9WeA906.png

wKiom1jRF33jX5tUAAAk8de4N1w652.png


十、数据库之--数据库删除

drop database 数据库名称;

wKiom1jRF-HgUh58AABCTMu5QUU361.png

十一、数据库之--修改数据库

alter database if not exists 数据库名称 [default] character set utf8;

wKioL1jRGK-g1uKmAABFzycv710084.png

十二、数据库之--切换数据库

use 数据库名称;

wKiom1jRGRGyKm0TAAARnhavF4w327.png

十三、数据库之--查看当前使用的数据库

select database();

wKioL1jRGVqTA9znAAAXyJ85BkQ904.png

十四、数据表之--创建数据表

craete table 表名(
    字段1 类型(长度) 约束,
    字段2 类型(长度) 约束,
    字段3 类型(长度) 约束
);

注意:

  表名小括号,后面要有分号。

  每一行字段后面要有逗号,但是最后一行没有逗号。

  数据类型后面有长度,如果是字符串类型,长度必须加。如果其他类型可以不加。默认长度。


数据类型:

  字符串类型:

varchar长度是可变的。
char长度是不可变的。

  大数据类型:

bolb二进制文件
text字符

  数值型:

tinyintsmallintintbigintfloatdouble

  逻辑型:

bit

  日期型:

date只包含日期
time只包含时分秒
datetime包含日期和时分秒
timestap包含日期和时分秒,如果不传入数据,默认选择当前系统时间


案例:创建表

create table employee(
	id int,
	name varchar(20),
	gender varchar(10),
	birthday date,
	entry_date date,
	job varchar(100),
	salary double,
	resume text
);

wKiom1jRHA7zw506AAAk1DJ0LbI195.png

十五、数据表之--显示所有的数据表

show tables;

wKioL1jRHFvB_C1-AAAYXdUPOZs453.png


十六、数据表之--单表的约束

  主键约束:标识标记该条记录,通过primary 可以 声明主键。(默认唯一和非空)

  唯一约束:值是唯一的,使用unique声明。

  非空约束:值不能为空,not null


十七、数据表之--使用约束创建表

create table employee2(
	id int primary key auto_increment,
	name varchar(20) unique not null,
	gender varchar(10) not null,
	birthday date not null,
	entry_date date not null,
	job varchar(100) not null,
	salary double not null,
	resume text not null
);

wKiom1jRHWTBsqYyAAA7iYhQIMM478.png                

十八、数据表之--查看表的信息

desc 表名;

wKiom1jRHaHTRoPMAABC8ocH_HY561.png

十九、数据表之--查看建表语句和字符集

show create table 表名;

wKiom1jRHgygoqaNAABfYosDlKY602.png


二十、数据表之--删除表

drop table 数据表名称;

wKioL1jRHl2ywWAtAAAhF6spX6M061.png

二十一、数据表之--修改表

wKioL1jRHseR0Pi4AABAshqazc8259.png

添加字段:

alter table 表名 add 字段 类型(长度) 约束;

wKiom1jRHyLBWI47AABc1Nas5u8324.png

删除字段

alter table 表名 drop 字段;

wKioL1jRH5OCxPwLAABRHdYY1oo326.png

修改类型或者约束

alter table 表名 modify 字段 类型(长度) 约束;

wKioL1jRIAmgtvQwAABSN-i2TKA754.png

修改字段的名称

alter table 表名 change 旧字段 新字段 类型(长度) 约束

wKiom1jRIJqjzg_pAABR9y0sQqI779.png

修改表名

rename table 表名 to 新表名;

wKioL1jRIO_Dbtl7AABZygCDMww182.png

修改字符集

alter table 旧表名 character set utf8;


二十二、数据之增加

添加数据

insert into 表名 (字段,字段,字段) values(值1,值2,值3);
insert into 表名 values(值1,值2,值3);

注意:

  数据与字段的类型相同。

  字段长度需要控制。

  字符串或者日期类型需要使用''。


wKiom1jRI92DE2KgAAA-FmloNRo547.png

向user表中插入数据。

insert into user values (null,'xiaofeng','1994-10-10','2011-1-1','HR',19000,'abc');
insert into user values (null,'美美','1994-10-10','2011-1-1','HR',19000,'abc');
insert into user values (null,'小风','1994-10-10','2011-1-1','WORKER',21000,'abc');
insert into user values (null,'芙蓉','1994-10-10','2011-1-1','HR',1000,'abc');
insert into user values (null,'班长','1994-10-10','2011-1-1','HR',100,'abc');

wKioL1jRJDCSloh4AAA90rT7jpM334.png

二十三、数据之修改

update 表名 set 字段=值,字段=值 [where]

如果没有where条件,默认更新所有的记录。

有where的话,则更新一条或几条。


案例:将所有员工的薪水修改为5000元。

wKiom1jRJNKC2v3YAABOlgj2Kdk738.png

案例:将姓名为班长的员工的薪水修改为3000元。

wKioL1jRJZqykvBMAACGKXl47iI484.png

二十四、数据之删除

delete from 表名 [where]

案例:删除表中名称为'班长'的数据

wKioL1jRJgyBhsrkAAB402k45zQ343.png


二十五、数据之查询

select * from 表名;
select 字段1,字段2 from 表名 ;

案例:查询所有的用户信息

wKiom1jRJomxopgnAAA3_7YT43I507.png


案例:查询用户的姓名、生日信息

wKiom1jRJvWy1eNUAAAlaFalNh8239.png

使用where条件过滤

select * from 表名[where];
select 字段1,字段2 from 表名[where] ;

案例:查询芙蓉的信息

wKiom1jRJ2nCBnq2AAAmKONbhm4995.png

使用order by排序

案例:对用户的生日进行排序(降序)

wKiom1jRJ9OxUilCAAA54hmp4hU903.png

分组函数

count()、max()、min()、avg()、sum()

案例:求用户信息总共多少人,总工资是多少,最高工资和最低工资是多少,平均工资是多少。

wKioL1jRKa6ijUGMAAAhW_GhDCA388.png