老一套,开篇我们先来闲聊一番?问你们个问题,有人不知道数据库是干嘛用的么?如果你不知道,请自行 google, 如果你不能,请自行百度。如果不会百度,那我去自杀了。
数据库自然是 hin 重要的啦,所以就不说那么多废话了。直接甩出几个名词,恶心恶心你们,反正不能只恶心我一个,要恶心就一起恶心。这些个概念并不是那么重要,大概了解一下就好。
往简单了说,数据库就是一个文件系统,需要通过标准 SQL 语句才能访问。那么常见的数据库有哪些呢?
MySQL :开源免费的数据库,小型的数据库。已经被 Oracle 收购了,并且从 MySQL6.x 版本开始收费。
Oracle :收费的大型数据库。Oracle 公司的产品。Oracle收购SUN公司,收购MySQL。一个成语来形容,财大气粗。
DB2 :IBM公司的数据库产品,同样也是收费的。并且应用场景大部分都是在银行系统中运用。
SQLServer:这个就是微软爸爸的产品咯。收费的中型的数据库。
SyBase :已经淡出历史舞台。提供了一个非常专业数据建模的工具PowerDesigner。不用去过多关注了解。
SQLite : 嵌入式的小型数据库,应用在手机端。做 android 开发的没有不知道这个东西的吧?如果不知道,请自行面壁思过。
以上就是一些市面上常见的数据库,虽然有那么多,但是我们现阶段重点需要掌握的也就只有 MySql 以及 Oracle,同样和 Java 有关系的也只有这两个。
见名知意吧,数据库中存的实体和实体之间的关系。
这个就没什么可讲的了。不会的去百度,一搜一大把。
Q:什么是 SQL 语句?
W:结构化查询语言。
DDL: 数据定义语言
create,alter,drop…
DML: 数据操纵语言
insert,delete,update
DCL: 数据控制语言
if,grant
DQL: 数据查询语言
select
mysql -uroot -pxxx //xxx表示数据库的密码
exit
create database xxx; //xxx表示数据库名称
drop database xxx; //xxx表示数据库名称
show databases;
use xxx; //xxx表示数据库名称
select database(); //查看正在使用的数据库
show create database 数据库名称; //查看某个数据库的定义信息
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)
);
drop table user; //user 为表名
desc user; //user 为表名
show tables;
//这里以表 user 为例
insert into user (id, name, sex, age) values(1, "幼儿园长", "M", 20);
//查询全部数据
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";
update table_name set field1 = new_value1, field2 = new_value2,...where condition1, condition2,...
//将 name 属性为“宇文席”更改成“老贱人”
update user set name = "老贱人" where name = "宇文席";
更新多个值的方式和查询一样,这里就不在赘述。
delete from table_name where condition1, condition2,...;
注意:
如果不指定条件则会删除整个表中的数据
可以一次删除以个表中多条数据
可以指定多个删除条件
//删除 name 属性为 “老贱人”这条数据
delete from user where name = "老贱人";
//根据多个条件删除数据
delete from user where sex = "M" or age > 20;
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";
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 等,再讲下去篇幅就比较大了,所以这本文章就到这里收尾了。能力有限,写出来的东西难免会有错误,如果出现了错误,还劳烦各位大神不吝赐教,也欢迎各位与我留言讨论。