一.什么是数据库
1.什么是数据库
数据库(DataBase DB)
长期保存在计算机的存储设备上的文件
按照一定规则组织起来 被用户应用的集合
数据库管理系统
使用和维护数据库的软件
保证数据库的安全性和完整性
用户通过该系统范文数据库中的数据
数据库中一行记录与对象之间的关系。
列(column):字段
行(row):一条记录(实体)
数据库管理系统通过SQL结构化查询语言 来定义和操作数据
SQL:Structure Query Language。(结构化查询语言)
数据库厂商都支持SQL标准语言(普通话)
数据库厂商在标准的基础上做出的扩展部分(方言)
* 注意:sql语句以;结尾
二.数据库安装步骤与常见数据库
1.安装步骤
(1.保存安装中的 数据库初始密码
(2.配置环境变量
查看隐藏文件 open .bash_profile
创建隐藏文件 touch .bash_profile(没有这个文件 再创建新的)
添加环境变量 export PATH=$PATH:/usr/local/mysql/bin/
注意:要重启mysql服务
(3.打开终端
进去mysql数据库命令 mysql -uroot -p
输入保存好的初始密码(别截图 复制粘贴)
(4.进入数据库 修改密码
set password=password('新密码');
注意:sql语句中 只有单引号并且是 英文状态下的单引号
2.常见数据库
MYSQL :开源免费的数据库,小型的数据库.已经被Oracle收购了.MySQL6.x版本也开始收费。
Oracle :收费的大型数据库,Oracle公司的产品。Oracle收购SUN公司,收购MYSQL。
DB2 :IBM公司的数据库产品,收费的。常应用在银行系统中.
SQLServer:MicroSoft 公司收费的中型的数据库。C
SQLite : 嵌入式的小型数据库,应用在手机端。
三.DDL数据定义语言(用来定义数据库对象: 库、表、列等)
注意:sql语句不区分大小写
1.查看数据库: show databases;
2.查看数据库支持的编码格式: show character set;
3.创建数据库: create database 数据库名;
4.查看前面创建的数据库的定义信息:show create database 数据库名;
5.创建指定编码格式的数据库: create database 数据库名 character set 编码格式;
6.修改指定数据库的编码格式: alter database 数据库名 character set 编码格式;
7.删除数据库 drop database 数据库名;
8.查看当前使用的数据库: select database;
9.切换数据库: use 数据库名;
10.退出数据库: quit;
11.设置对应的校验规则:Create database 数据库名 character set GBK COLLATE GBK_chinese_ci;
12.数据库常用数据类型:
int:整型
double:浮点型,例如double(6,2)表示最多5位,其中必须有2位小数,即最大值为999.99;
char:固定长度字符串类型; char(10) 10个字节 (效率高)
varchar:可变长度字符串类型;varchar(10)(节省空间)
text:字符串类型; 大数据文本 最大4M
blob:字节类型;保存音频 保存图片
date:日期类型,格式为:yyyy-MM-dd;
Time: 时间类型 mm:hh:ss
13.创建表
creat table 表名(
字段1 字段类型,
字段2 字段类型,
字段3 字段类型,
字段4 字段类型
);
14.修改表
(1.添加一列: alter table 表名 add 字段名 字段类型;
(2.修改字段类型: alter table 表名 modify 字段名 字段类型;
(3.删除一列: alter table 表名 drop 字段名;
(4.修改表名: rename table 旧表名 to 新表名;
(5.查看表格创建细节: show create table 表名;
(6.修改字段名: alter table 表名 change 原字段名 新字段名 字段类型;
四.DML数据库操作语句(操作表数据)
1.insert(插入)
语法: insert into 表名 (列名1,列名2 ....) values (列值1,列值2....);
注意: 列名与列值的类型 个数 顺序要一一对应 值不要超出列定义的长度 插入空值 使用null;
插入的日期和字符一样 都使用引号括起来
批量插入
insert into 表名 (列名1,列名2,列名3) values
(列值1,列值2,列值3),
(列值1,列值2,列值3),
(列值1,列值2,列值3);
注意:批量插入省略列名时 表示每个列名都要插入列值
2.修改(update)
语法: update 表名 set 字段1=值1, 字段2=值2 ... where 修改条件(不写默认字段1下的值全部修改为值1)
3.删除操作(delete)
语法: delete from 表名 where 字段名=值;
五.DQL数据查询语言(简单的数据库查询语言)
数据库执行DQL语句不会对数据进行改变,而是让数据库结果集给客户端,查询返回的结果集是一张虚拟表
查询关键字: select
语法: select 字段1,字段2 ... from表名 (查询多个字段用逗号隔开)
查询所有列 使用 *(星号);
1.查询所有
select * from 表名;
2.查询指定列
select 列名1,列名2,列名3 from 表名;
3.条件查询
条件查询就是在查询时给出where子句,在where子句中可以使用如下运算符及关键字:
=,!=,<>,<,<=,>,>=; (!= 和 <> 一样)
between...and 范围查询 age between 18 and 30;
in 固定范围之内 用逗号隔开;
is null 是空;
is not null 不是空;
and 与;
or 或;
not 非;
语法: select * from 表名 where 查询条件;
4.字段控制查询
(1.去除重复记录
去除重复记录(两行或两行以上记录中系列的上的数据都相同),例如一张表中其中一个字段存在相同的记录。当只查询这张 表的该字段时,那么会出现重复记录,那么想去除重复记录,需要使用distinct:
select distinct 字段 from 表名;
(2.查看两个字段之和
只有两个字段的类型都是数值类型,才可以做加运算。如果两个字段中有一个字段不是数值类型,那么会出错。
select *,字段1+字段2 as 新字段名 from 表名;
注意: 查询的结果相当于增加了一个新的字段,不会对原表进行修改,
给字段起别名 用as关键字 该关键字可以省略 系统关键字不能当做字段名;
注意:任何数值和null值相加 都是null值