目录
数据库(Database)
数据库即存储数据的仓库,常见的数据存储方式有普通文本文件、excel文件、xml文件(多见于配置文件)以及数据库,其中数据库可以保证完整性与安全性,在数据库中基本的单元为表,而表与表的关系表现为一对一,一对多与多对多的关系。其中常见的的为一对多的关系。大多数数据库依靠数据管理系统(database management system)进行数据的管理,关系型数据库的管理软件通过关系型数据库管理系统(relational dbms)与关系型数据库进行交互。
MySql
mysql自身的特点:开源,支持大型数据库64位表文件可达8TB,使用标准的SQL语言,移植性好,可运行于多种系统,同时支持多种语言,流行的C与JAVA都支持,同时良好的支持PHP这一最流行的Web开发语言。
mysql在dos命令行的常用指令:
1.net start/stop mysql 启动或停止mysql服务
2.mysql -u root -p 以root用户登录mysql服务器
3.在mysql服务器中:exit 退出服务器
学习之前需要知道的名词:DB(database)数据库、DBA(database administrator)数据库管理员、DBMS(database management system)数据库管理系统、RDBMS(relational DBMS)关系型数据库、SQL(structured query language)结构查询语言、DDL(data definition language)数据定义语言、DML(data manipulation language)数据操作语言、DQL(data query language)数据查询语言、DCL(data control language)数据控制语言。
SQL是一种用于管理关系型数据库,与数据库中的数据进行通讯的计算机语言,目前仍是最普遍的数据库语言,可以说是数据库管理的标准语言。
DCL是数据控制语言,不做太多需求,核心的关键字为grant(提供权限)、revoke(解除权限)
1.DDL、DML与DQL
学习数据库首先要明确数据库的操作无非是增删改查的操作,从这四个方向学习即可掌握,首先谈DDL,即数据定义语言,具体含义顾名思义也可以看懂,是对数据的定义,大体上分为create、drop、alter三个主要的方向,具体使用如下:
create database database_name; #创建数据库
use database_name; #使用该数据库
drop database database_name; #删除数据库
alter database database_name character set=charset_name;
#多使用utf-8,如果录入中文前未设置合适的字符集,更改后还需将数据重新录入
create table table_name( #创建表,其中col_type对应表中字段的数据类型,需注意的是最后一列
col_name col_type, 的声明不用加逗号
...
);
create table tab_name1 as (select * from tab_name2); #复制表,包括内容
create table tab_name1 like tab_name2 #仅复制表的结构
drop table table_name; #删除表
alter table rename [to|as] new_tab_name; #更改表名
alter table change column old_col_name new_col_name col_type #更改列的名称与类型
alter table table_name add column col_name col_type; #新增一列
alter table table_name modify column col_name col_type; #修改列属性
alter table table_name drop column col_name; #删除列
truncate table table_name; #清空表内容
DML:数据操作语言,具体的有增删改功能,分别对应insert、delete、update具体用法如下:
insert into table_name(col_name1,col_name2) values(value1,value2);
# 列名与值相对应,当插入多组数据时,方便的做法和还有
insert into table_name(col_name1,col_name2) values
(value1,value2),
(value1,value2),
(value1,value2),
(value1,value2); #这样相当于插入四组数据
update table_name set col_name=value [where ...]
#更改数据的时候常需要设置条件,否则整列都会被置为value
delete from table_name [where....]
#从数据中删除,where后为筛选的条件
DQL:数据查询语言,负责查的功能,以select为核心,还有高级查询和复杂查询部分,分别为子查询(select的嵌套使用,多表现为一层一层查找符合要求的外键),组合查询(select union select,表现为行的添加合并,要求两个select的结果列数相同,最好值得类型也相同,union all不会去掉重复的部分,单独使用union会去掉重复的部分),联接查询(内联与外联,其中外联又分左联和右联,体现在以哪一张表的内容为基准,有多退少补的特点)具体的用法如下:
select col_name1,col_name2 #执行顺序:先根据where设置的条件筛选表的内容,然后根据group
from table_name 的内