存储数据的仓库,你一台电脑装有数据库软件,你可以对外提供数据的增删改查服务,你这台电脑,就是一台,数据库服务器
常见数据库:
SQLServer 微软的 中小型关系型数据库
MySQL 中小型的关系型数据库
Oracle 大型的关系型数据库
关系型数据库 :具有行和列的这种二维表结构的数据库
非关系型数据: NOSQL 用键值关系来存储数据 类似 json
数据库的安装
数据库的卸载
1.可以使用第三方的卸载软件来卸载
2.在控制面板里面常规卸载
1.停止后台服务 电脑–右键–管理—服务—mysql–右键停止掉
2.卸载
3.清除残留文件 C:\ProgramData\MySQL 把这个MySQL文件夹删除
操作数据库 增删改查
SQL:结构化查询语言,用来对关系型数据库进行操作,他是一套规范,关系型数据库,都会遵循此规范,但是
允许各家的数据库,有差异,这些差异,我们称之为 方言
SQL:语法
对SQL语句我们习惯分为以下四类
DDL:
创建数据库:create database 数据库名 例如: create database mydb;
查询所有库:show databases;
删除:drop database mydb;
修改数据库编码:alter database mydb character set=‘gbk’;
查看建库语句:show create database mydb;
我们要建表 删除表 对表头进行操作(增删改表头)
– 切换库 use mydb;
– 查看改库下所有的表 show tables;
– 查看表结构 desc 表名; 例如: desc student;
表头: id name age sal
创建表时,列名 是要有数据类型的
数据库中常见的列的数据类型
列的数据类型:
* int:整型 id int,
* double:浮点型,例如double(5,2)表示最多5位,其中必须有2位小数,即最大值为999.99;
money double(5,2)
char:固定长度字符串类型;
name char(10) “张三”
* varchar:可变长度字符串类型;
name varchar(10) “张三”
text:字符串类型;存大格式的文本 比如存个小说 一般不用
blob:字节类型;存字节类型的数据 比如电影字节 图片字节 但是一般不会把字节数据存到数据库当中
date:日期类型,格式为:yyyy-MM-dd;
time:时间类型,格式为:hh:mm:ss
datetime:日期时间类型 yyyy-MM-dd hh:mm:ss
* timestamp:时间戳类型 yyyy-MM-dd hh:mm:ss
* 如果该类型的字段不给赋值,则默认当前时间
– 创建表:create table 表名(列名1 数据类型,列名2 数据类型2(长度), …);
create table student(
id int,
name varchar(16),
age int,
sal double(5,2),
birthday timestamp
);
– 列名的命名的规范:遵循java中的命名规范,记住不要拿MySQL中的关键字来命名
– 修改表名:alter table 旧表名 rename to 新表名
alter table student rename to stu;
– 删除表 drop table 表名
drop table student;
– 表中 表头的操作 alter
– 添加一个列
alter table student add(phone varchar(11));
– 删除一个列
alter table student drop phone;
– 修改列名
alter table student change name username varchar(20);
–修改列的数据类型
alter table student modify username char(20);
alter table student change username username varchar(20);
– 查看建表语句
– show create table student;
DML:给表中 插入数据,删除数据,修改数据
– 插入数据 insert into 表名(字段名,字段名2,…) valuses(值1,值2,…);
insert into student(id,name,age,sal) values(1,‘zhangsan’,23,555.55);
– 字符串类型的类 值的话,用单引号引起来
insert into student(name) values(‘wangwu’);
– yyyy-MM-dd hh:mm:ss
– 日期类型的列 值的话 用单引号引起来
insert into student(name,birthday) values(‘wangwu2’,‘2010-10-10 16:20:20’);
insert into student(name,birthday) values(‘wangwu3’,null);
– 如果说,我要给表中所有的字段都插入值 可以简写
insert into student(id,name,age,sal,birthday) values(1,‘zhangsan2’,23,555.55,null);
– 我要给表中所有的字段都插入值 可以简写
insert into student values(10,‘zhangsan222’,23,555.55,null);
– 删除表中所有的数据
– 这种方式:逐行删除
delete from student; – 无条件的删除,删除表中所有数据
– 删除表中所有的数据 那么还有一种方式
truncate table 表名;-- 删除所有记录
– 条件删除 where = > < >= <= and 并且 or 或者
delete from student where name=‘zhangsan’;
delete from student where name=‘zhangsan’ and birthday=‘2019-08-21 15:44:12’
delete from student where name='zhangsan' or name='wangwu2' or name='wangwu3';
insert into student(id,name,age,sal) values(1,‘zhangsan’,23,555.55);
– 修改表中的数据 update student set 字段名=‘修改的值’ , set 字段名 … where 条件
update student set name=‘lisi’,age=30; – 不带有条件的修改
– 带有条件的修改
update student set name=‘wangwu’,age=25,sal=666.66 where name=‘zhangsan2’ and birthday=‘2019-08-21 15:52:59’;
DQL: select 查询表中的数据
* -- 统配符 统配表中所有字段
select * from student; -- 查询表中所有的数据
-- 查询个别字段
select id,name,sal from stdent;
-- 以上 就是不带有条件的查询
-- 条件查询 -- where
* 条件查询:where 子句
=、!=、<>(不等于)、<、<=、>、>=;
BETWEEN…AND; 在什么范围之间
IN(set);
IS NULL;为空
IS NOT NULL 不为空
AND; 并且
OR; 或者
NOT;非