数据库的基本概念

数据库,DataBase,DB,就是用于存储和管理数据的仓库

数据库的特点: 1. 数据库就是一个文件系统,用于持久化存储数据 2. 使用了统一的方式操作数据库 – SQL,方便存储和管理数据

MySQL数据库软件

安装过程就略了,往上教程很多,一路 next,最后配一下环境变量,MySQL 默认端口号 3306

MySQL 配置

  • 启动 MySQL 服务
1
2
3
4
# 启动mysql的服务
net start mysql
# 关闭mysql服务
net stop mysql
  • MySQL登录
1
2
3
4
5
# 登录本地 MySQL
mysql -uroot -p密码
# 登录远程 MySQL
mysql -hip -uroot -p连接目标的密码
mysql --host=ip --user=root --password=连接目标的密码
  • MySQL退出
1
2
3
exit
# 或者
quit
  • MySQL目录结构
  1. MySQL安装目录下:basedir="C:/Program Files/MySQL/MySQL Server 5.7/”
  2. MySQL数据目录:datadir="C:/ProgramData/MySQL/MySQL Server 5.7/Data”
  • 几个概念,分别对应
    • 数据库:文件夹
    • 表:文件
    • 数据:数据

注意:安装新版本 MySQL 之前要卸载旧版本,并删除 C:/ProgramData (Windows系统)目录下的 MySQL 文件夹

SQL

什么是SQL

Structured Query Language,结构化查询语言,定义了操作所有关系型数据库的规则,每一种具体的数据库软件操作的方式会存在不一样的地方

SQL通用语法

  1. SQL 语句可以单行或多行书写,以分号结尾
  2. 可使用空格和缩进来增强语句的可读性
  3. MySQL 数据库的 SQL 语句不区分大小写,关键字建议使用大写
  4. 3 种注释
    • 单行注释: – 注释内容(注意 – 后有空格) 或 # 注释内容(MySQL 特有)
    • 多行注释: /* 注释 */

SQL分类

  1. DDL(Data Definition Language)数据定义语言 用来定义数据库对象:数据库,表,列等。关键字:create, drop,alter 等

  2. DML(Data Manipulation Language)数据操作语言 用来对数据库中表的数据进行增删改。关键字:insert, delete, update 等

  3. DQL(Data Query Language)数据查询语言 用来查询数据库中表的记录(数据)。关键字:select, where 等

  4. DCL(Data Control Language)数据控制语言 用来定义数据库的访问权限安全级别,及创建用户。关键字:GRANT, REVOKE 等

DDL:操作数据库、表

操作数据库:CRUD

  1. C(Create):创建
1
2
3
4
5
create database db_name; -- 创建数据库

create database if not exists db_name; -- 创建数据库创建数据库

create database db_name character set char_set; -- 创建数据库,并指定字符集为char_set
  1. R(Retrieve):查询
1
2
3
show databases; -- 查询所有数据库的名称

show create database db_name; -- 查询某个数据库的创建语句,并查询该数据库的字符集
  1. U(Update):修改
1
alter database db_name character set char_set; -- 修改数据库的字符集为char_set
  1. D(Delete):删除
1
2
3
drop database db_name; -- 删除数据库

drop database if exists db_name; -- 判断数据库存在,存在再删除
  1. 使用数据库
1
2
3
select database(); -- 查询当前正在使用的数据库名称

use db_name; -- 使用数据库

操作表

  1. C(Create):创建
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
-- 建表
create table tbl_name(
			field1 type1,
			field2 type2,
			...
			fieldn typen -- 最后一列,不需要加逗号
);

-- 复制表
create table tbl like tbl_name;

常用数据类型: |数据类型|说明| |—|—| |int|整数类型,int age| |double|小数类型(总位数,小数点后位数),score double(5,2)| |date|日期,yyyy-MM-dd| |datetime|日期时间,yyyy-MM-dd HH:mm:ss| |timestamp|时间戳,包含年月日时分秒,如果将来不给这个字段赋值,或赋值为null,则默认使用当前的系统时间,来自动赋值,常用于记录添加时间| |varcahr|字符串,name varchar(20):姓名最大20个字符|

  1. R(Retrieve):查询
1
2
3
4
5
show tables; --查询某个数据库中所有的表名称

desc tbl_name; -- 查询表结构

show create table tbl_name; -- -- 查询表的创建语句,并查询该表的字符集
  1. U(Update):修改
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
alter table tbl_name rename to new_tbl_name; -- 修改表名

alter table tbl_name character set char_set; -- 修改表的字符集

alter table tbl_name add new_field new_type; -- 添加字段

alter table tbl_name change old_field new_field new_type; --修改字段名称和数据类型

alter table tbl_name modify field new_type; -- 修改字段的数据类型

alter table tbl_name drop field; -- 删除字段
  1. D(Delete):删除
1
2
drop table tbl_name; -- 删除表
drop table if exists tbl_name; -- 如果表存在再删除

DML:增删改表中数据

  1. 添加数据
1
2
3
insert into tbl_name(field1,field2,...,fieldn) values (val1,vale,...,valn); -- 给指定字段添加值

insert into tbl_name values (val1,val2,...,valn) -- 给所有字段添加值
1. 字段和值要一一对应。
2. 除了数字类型,其他类型需要使用引号(单双都可以)引起来
  1. 删除数据
1
2
3
delete from tbl_name where conditions; -- 删除满足条件的数据

truncate table tbl_name; -- 先删除表,然后再创建一张一样的表
1. 如果不加条件,则删除表中所有记录。
2. 如果要删除所有记录
    1. delete from 表名; -- 不推荐使用,有多少条记录就会执行多少次删除操作,效率低
    2. TRUNCATE TABLE 表名; -- 推荐使用,效率更高 
  1. 修改数据
1
update tbl_name set field1=val1,field2=val2,... where conditions; -- 修改满足条件的数据

注意:如果不加任何条件,则会将表中所有记录全部修改

参考

黑马 JavaWeb

数据库笔记