开篇
老一套,开篇我们先来闲聊一番?问你们个问题,有人不知道数据库是干嘛用的么?如果你不知道,请自行 google, 如果你不能翻墙,请自行百度。如果不会百度,那我去自杀了。
数据库自然是 hin 重要的啦,所以就不说那么多废话了。直接甩出几个名词,恶心恶心你们,反正不能只恶心我一个,要恶心就一起恶心。这些个概念并不是那么重要,大概了解一下就好。
1. 什么是数据库
往简单了说,数据库就是一个文件系统,需要通过标准 SQL 语句才能访问。那么常见的数据库有哪些呢?
2. 常见的数据库
MySQL :开源免费的数据库,小型的数据库。已经被 Oracle 收购了,并且从 MySQL6.x 版本开始收费。
Oracle :收费的大型数据库。Oracle 公司的产品。Oracle收购SUN公司,收购MySQL。一个成语来形容,财大气粗。
DB2 :IBM公司的数据库产品,同样也是收费的。并且应用场景大部分都是在银行系统中运用。
SQLServer:这个就是微软爸爸的产品咯。收费的中型的数据库。
SyBase :已经淡出历史舞台。提供了一个非常专业数据建模的工具PowerDesigner。不用去过多关注了解。
SQLite : 嵌入式的小型数据库,应用在手机端。做 android 开发的没有不知道这个东西的吧?如果不知道,请自行面壁思过。
以上就是一些市面上常见的数据库,虽然有那么多,但是我们现阶段重点需要掌握的也就只有 MySql 以及 Oracle,同样和 Java 有关系的也只有这两个。
3. 关系型数据库
见名知意吧,数据库中存的实体和实体之间的关系。
4. 关于 MySQL数据库
- 数据库是表的集合,具有相关数据。
- 表是数据矩阵,类似于一个简单的电子表格。
- 列是包含一组相同类型的数据。
- 行是一组相关的数据。
- 主键是唯一的,不能在一个表中出现两次或者多次,使用主键可以快速找到一行数据。
- 外键是两个表之间的连接值。
- 复合键是由多列组成,主要用于某些时候单列不能唯一标识该数据。
- 索引类似于书的目录。
准备工作
1. MySQL 的卸载和安装
这个就没什么可讲的了。不会的去百度,一搜一大把。
2. MySQL的 SQL 语句
Q:什么是 SQL 语句?
W:结构化查询语言。
3. SQL 的分类
DDL: 数据定义语言
create,alter,drop…
DML: 数据操纵语言
insert,delete,update
DCL: 数据控制语言
if,grant
DQL: 数据查询语言
select
MySQL 实操
1. 数据库登录退出
1.1 登录
mysql -uroot -pxxx //xxx表示数据库的密码
1.2 退出
exit
2. 数据库的增删改
2.1 创建数据库
create database xxx; //xxx表示数据库名称
2.2 删除数据库
drop database xxx; //xxx表示数据库名称
2.3 显示全部数据库
show databases;
2.4 选择数据库
use xxx; //xxx表示数据库名称
select database(); //查看正在使用的数据库
show create database 数据库名称; //查看某个数据库的定义信息
3. 数据库表的相关操作
3.1 创建数据库表
create table user( //这里我取名表名为 user
int id not null auto_increment,
name varchar(20) not null,
sex varchar(2) not null,
age int not null,
primary key(id)
);
3.2 删除数据库表
drop table user; //user 为表名
3.3 查看表结构
desc user; //user 为表名
3.4 显示全部表
show tables;
4. 数据库表的数据操作
4.1 插入数据
//这里以表 user 为例
insert into user (id, name, sex, age) values(1, "幼儿园长", "M", 20);
4.2 查询数据
//查询全部数据
select * from user;//查询表中的全部数据
//条件查询
select field1, field2,... from table_name where condition1, condition2,... limit n;
注意:
可以使用逗号分隔查询多个表
可以在 select 关键字后面指定查询多个字段,如果用 * 代替,则表示查询全部
可以在 where 关键字后面指定多个查询条件
可以用 limit 关键字后面加上数字,表示查询满足条件的前 n 条数据
可以使用 and 或者 or 关键词连接条件
//使用 where 执行单个条件查询
select * from user where name = "荆小六";
//使用where指定多个条件查询
select * from user where name = "荆小八" and sex = "M" and age > 10;
//使用limit关键字限制查询结果条数
select * from user where sex = "M" and age > 10 limit 3;
//查询单个字段
select name from user where age > 15;
//查询多个字段
select name, sex from user where sex = "M";
4.3 更改表中数据
update table_name set field1 = new_value1, field2 = new_value2,...where condition1, condition2,...
//将 name 属性为“宇文席”更改成“老贱人”
update user set name = "老贱人" where name = "宇文席";
更新多个值的方式和查询一样,这里就不在赘述。
4.4 删除表中数据
delete from table_name where condition1, condition2,...;
注意:
如果不指定条件则会删除整个表中的数据
可以一次删除以个表中多条数据
可以指定多个删除条件
//删除 name 属性为 “老贱人”这条数据
delete from user where name = "老贱人";
//根据多个条件删除数据
delete from user where sex = "M" or age > 20;
5 其他关键字
5.1 like 关键字(模糊查询)
select field1, field2,...from table_name where field like condition and/or field = "value";
根据属性值为 name = “x小x” 进行模糊查询数据
select * from user where name like "%小%";
//查询多条属性
select name, sex from user where name like "%小%";
//和 and/ or 关键字结合使用
select name, sex from user where name like "宇文%" and age > 18 and sex = "F";
5.2 Order By 关键字(排序)
select field1, field2,... from table_name where condition1, condition2,...order by field ASC;
注意:
可以使用关键字 ASC 或 DESC 来执行升序或降序排序。默认情况下,按升序排列
可以使用 where … like 子句以通用的方式放置条件
可以在多个字段排序结果
//先来个最简单的
select * from user order by age asc; //按年龄升序排列
//多种条件结合查询
select name, sex from user where name like "宇文%" and age > 20 order by age;
结语
好了,这篇文章的笔记就做到这里,还有一些关键字没有讲,比如 join in,alter 等,再讲下去篇幅就比较大了,所以这本文章就到这里收尾了。能力有限,写出来的东西难免会有错误,如果出现了错误,还劳烦各位大神不吝赐教,也欢迎各位与我留言讨论。