一、数据库基本概念
数据库:数据库(Database,简称DB),是可以长期存储在计算机的辅助存储器中,有组织的、可以共享的数据的集合。(简单点说就是存放数据的仓库。)
数据库管理系统:数据库管理系统(Database Management System)是一种操纵和管理数据库的大型软件,用于建立、使用和维护数据库,简称DBMS。
注意:现实中一般说的数据库指数据库管理系统。数据库是通过数据库管理系统创建和操作的。
二、数据库服务器、数据库和表的关系
1. 所谓数据库服务器指定是数据库管理软件,如图中的Mysql。这个管理软件可以管理多个数据库,一般开发人员会针对每一个应用创建一个数据库。
2. 为保存应用中实体的数据,一般会在数据库创建多个表,以保存程序中实体的数据。
三、数据库中数据的存储方式
数据库中的数据以表的形式来存储。表中的一行称之为一条记录,表中行和列没有固定的顺序。
四、SQL结构化查询语言
数据库管理系统可以通过SQL语言来定义和操作数据,维护数据的完整性和安全性,以及进行各种数据库的管理等。
SQL:Structure QueryLanguage。
SQL被美国国家标准局(ANSI)确定为关系型数据库语言的美国标准库,后来被国际化标准组织(ISO)采纳为关系数据库语言的国际标准。
SQL优点:
1. 几乎所有重要的数据库管理系统都支持SQL。
2. 简单易学,该语言的语句都是有描述性很强的英语单词组成,而且单词数目不多。
3. 高度非过程化,即用SQL操作数据库,只需指出“做什么”,无须指明“怎么做“。
DDL: Data DefinitionLanguage直接翻译就是数据定义语言,主要操作数据库,数据库中的表和表中的列。
关键字:CREATE ALTER DROP(创建修改 删除)
操作数据库
创建数据库:
创建一个叫mydb1的数据库。
create database mydb1;
创建一个叫mydb2的数据库并且字符集设置为gbk。
create database mydb2 character set gbk;
查询:
查看当前数据库服务器中的所有数据库
show databases;
查看前面前面创建的mydb2数据库的定义信息
show create database mydb2;
修改数据库字符集:
格式: alter database 数据库名 character set utf8;
把mydb2数据库的字符集修改为utf8;
删除数据库:
格式:drop database 数据库名;
删除mydb2数据库
其它:
查看当前使用数据库
select database();
选择(切换)使用的数据库
use mydb3;
操作表
创建表(创建表之前要先选择使用数据库)
语法:create table 表名(字段1 字段类型,
字段2 字段类型,
字段3 字段类型,
。。。。 。。。。,
字段n 字段类型
);
常用数据类型:
int:整形
double:浮点型,如double(5,2)表示最多5位,其中必须有两位小数,即最大值为999.99
char:固定长度字符串类型;char(10)
varchar:可变长度字符串类型;varchar(10)
text:字符串类型
blob:字节类型
date:日期类型你,格式为:yyyy-MM-dd
time:时间类型你个,格式为hh-MM-dd
timestamp:时间戳类型 yyyy-MM-dd hh:mm:ss
date:日期时间类型 yyyy-MM-dd hh:mm:ss
查看:
查看当前数据库中所有的表
show tables;
查看表中字段信息
desc 表名;
在表中增加列
alter table 表名 add 字段 字段类型;
更改已存在的列的字段类型信息
alter table 表名 modify 字段 字段类型;
删除列
alter table 表名 drop 字段;
alter table student drop image;
把表改名
rename table 旧表名 to 新表名;
查看创建表的细节
show create table 表名;
更改表使用的字符集
alter table 表名 character set 字符集;
更改表中已存在字段的名字
alter table 表名 change 旧字段名 新字段名 字段类型;
删除表
drop table 表名;
DML:Data ManipulationLanguage数据操纵语言。DML是对表中的数据进行增、删、改的操作。
关键字 INSERT UPDATE DELETE;
(在mysql中,字符类型和日期类型你都要用单引号括起来。空值:null)
向表中插入数据:
对应关系
insert into 表名(字段1,字段2,字段3,…,字段n)values(值1,值2,值3,…,值n)
默认对应(要和表中字段对应)
insert into 表名 values(值1,值2,值3,…,值n);
批量插入
insert into 表名 values
(值1,值2,值3,…,值n),
(值1,值2,值3,…,值n),
(值1,值2,值3,…,值n);
修改操作
update 表名 set 字段1=值1字段2=值2 where 字段=值;
例把name为lisi的gender字段值改为male
删除操作
delete from 表名 where 字段=值;
删除表中所有记录
delete from 表名;
truncate table 表名;
(delete 删除表中的数据,表结构还在;删除后的数据可以找回
truncate 删除表是把表直接drop掉,然后再创建一个同样的新表。删除的数据不能找回。执行速度比delete快。)