目录
一、数据库
1.1 相关概念
Name | Description |
---|---|
数据库(DB) | 保存有组织的数据的容器 |
数据库管理系统(DBMS,数据库软件(产品)) | 管理DB中的数据 |
表(table) | 某种特定类型数据的结构化清单,不同数据库可使用相同表名 |
模式(schema) | 数据库和表的布局及特性信息 |
列(column) | 字段 |
数据类型(datatype) | 每个列都有相应的数据类型 |
行(row) | 一个记录 |
主键(primary key) | 唯一区分表中每个行,不许NULL值,可使用多个列构成主键(所有列值的组合必须唯一,单个列值可不唯一),不更新,不重用 |
外键(foreign key) | 某表中的一列,包含另一个表的主键值,定义了两个表之间的关系 |
关键字(key word) | 语言组成部分的保留字,不能用来命名 |
1.2 数据库的好处
- 持久化数据到本地
- 可以实现结构化查询,方便管理
1.3 数据库存储特点
- 将数据放到表中,表再放到库中
- 一个数据库中可以有多个表,每个表都有一个的名字,用来标识自己,表名具有唯一性。
- 表具有一些特性,这些特性定义了数据在表中如何存储,类似java中类的设计。
- 表由列组成,我们也称为字段,所有表都是由一个或多个列组成的,每一列类似java中的属性
- 表中的数据是按行存储的,每一行类似于java中的对象
1.4 常见的数据库管理系统
- mysql、oracle、db2、sqlserver
二、SQL
2.1 SQL并非完全可移植
- SQL(Structured Query Language):用于和数据库通信的语言
- DBMS专用的SQL:几乎所有重要的DBMS都支持SQL,但并非(如MySQL中的)SQL语法是完全可移植的
2.2 SQL分类
Name | Description |
---|---|
DQL(Data Query Language) | 数据查询语言select … |
DML(Data Manipulate Language) | 数据操作语言insert 、update 、delete … |
DDL(Data Define Languge) | 数据定义语言create 、drop 、alter … |
TCL(Transaction Control Language) | 事务控制语言commit 、rollback … |
三、MySQL
3.1 简介
- 一种DBMS
- 开源、免费、性能高、移植性好、体积小、便于安装
- 基于C\S架构(客户机—服务器)
- 服务器:负责数据访问和处理的一个软件,安装在数据库服务器(计算机)上
如:MySQL DBMS - 客户机:提出请求或更改的软件
如:MySQL工具、脚本语言、Web应用开发语言、程序设计语言
- 服务器:负责数据访问和处理的一个软件,安装在数据库服务器(计算机)上
3.2 MySQL工具
3.2.1 MySQL命令行
- 命令输入在
mysql->
之后 - 命令以
;
或\g
结束,仅按Enter不执行 help
或\h
获得帮助,如help select
获得使用SELECT语句的帮助quit
或exit
退出
3.2.2 MySQL Administrator
3.3.3 MySQL Query Browser
3.3 使用MySQL
3.3.1 MySQL服务的启动和停止
- 方式一:计算机—>管理—>服务—>mysql
- 方式二:通过管理员身份运行cmd:
net start 服务名
(启动服务)net stop 服务名
(停止服务)
3.3.2 MySQL服务的登录和退出
- 方式一:通过mysql自带的客户端,只限于root用户
- 方式二:通过windows自带的客户端cmd
- 登录:
mysql -h主机名 -P端口号 -u用户名 -p密码
- 若连接本机端口号默认3306则 “-h主机名 -P端口号 ”可省略
- 密码前不能加空格
- 退出:
exit
、quit
或ctrl+C
- 登录:
3.3.3 MySQL常见命令
Command | Description |
---|---|
use 库名; | 打开指定的库 |
show databases; | 查看当前所有的数据库 |
show tables; | 查看当前库的所有表 |
show tables from 库名; | 查看其它库的所有表 |
select database(); | 查看当前所在的库 |
show columns from 表名; | 查看该表字段信息,字段名,数据类型,是否允Null,键信息,默认值,其他(如 auto_increment 自动增量) |
help show; | 显示允许的show 语句 |
create table 表名( 列名 列类型, 列名 列类型, …); | 创建表 |
desc 表名; | 查看表结构,同show columns from 表名; |
select version(); | 查看服务器的版本(登录到mysql服务端) |
mysql --version; 或mysql –V; | 查看服务器的版本(没有登录到mysql服务端) |
select * from stuinfo; | 查 |
insert into stuinfo (id,name)values(1,'john'); | 增 |
update stuinfo set name='lilei' where id=1; | 改 |
delete from stuinfo where id=1; | 删 |
3.3.4 MySQL语法规范
- 不区分大小写,但建议关键字大写,表名、列名小写
- 每条命令最好用分号结尾
- 每条命令根据需要,可以进行缩进或换行,所有空格都被忽略
- 单行注释:
#注释文字
单行注释:-- 注释文字
多行注释:/* 注释文字 */