|

MYSQL数据库

学习目标:

掌握MYSQL基本知识

学习数据库管理和操作

掌握数据库设计方法

熟练运用SQL编程语言

基本概念

MYSQL数据库是关系型数据库。关系型:使用一个关系,来表示实体信息和实体之间的联系。

关系:就是二维表,有行有列的表格。

学生实体信息表

学号

姓名

性别

地区

班级名称

ITCAST-001

河北

PHP0311

ITCAST-75

湖南

JAVA0325

ITCAST-123

广西

IOS0218

ITCAST-156

天津

NULL

班级实体信息表

班级名称

上课教室

PHP0311

103

JAVA0325

210

IOS0218

108

这两张表通过班级名称关联起来。

关系型数据库:就是由二维表及其之间的联系组成的数据组织。

同一个表中数据结构完全一致。

数据是由记录组成

记录是由字段组成。

SQL:结构化查询语言

专门用于处理关系型数据库编程语言。

PHP也是编程语言

变量,流程控制,函数

数据库服务器的结构

DBS = DBMS + DB

数据库系统 = 数据库管理系统 + 数据库(数据)

命令行客户端

数据在服务器上是如何存储的?

操作服务器

通过服务管理来操作服务器

开始->运行->services.msc

3306是MYSQL服务程序的默认端口号

可以用netstat –an命令查看服务是否启动

命令行命令控制服务器的启动和关闭

Net start mysql

Net stop mysql

错误原因:没有权限

解决办法:用管理员方式启动命令行窗口

C/S, client / server客户端/服务器方式访问数据库

命令行客户端工具

流程:

连接和认证,提供4个参数,分别是主机地址,端口号,用户名,密码

向MYSQL数据库服务器发送SQL

MYSQL服务器接收并执行SQL,并且把结果返回给客户端

客户端对结果进行显示

断开服务器连接。Exit, quit, \q

2,3,4这几步可以循环执行

知识:

非关系型数据库,NOSQL,not only sql

不仅仅是SQL

代表:redis, mongodb

数据存储有点象数组,key/value

SQL语言

存储数据:

首先建立数据库

之后建立数据表(字段定义)

操作数据

数据有哪些操作

CURD

CREATE UPDATE READ DELETE(DROP)

库操作,database

查看数据库,show

格式:show databases like ‘条件字符串’

还可以使用条件进行查询

通配符:% _

% 可以匹配任意长度的字符串,包括空字符串。

下划线可以匹配任意一个字符,不包括空字符串

数据库名命名规则:可以使用字母,下划线,数字

注意:

尽量不要使用系统保留字做为数据库、表、字段的名称

尽量全使用小写字母,原因是象linux系统是区分大小写,如果库名比较长,建议采用下划线连接,不要使用驼峰法。如:不建议userInro 建议使用user_info

匹配5 个字符的库名

查看数据库创建资料

格式:show create database if exists 数据库名;

创建数据库,create

简单方式

格式:create database 库名;

如果没有指定数据库的字符集,则使用数据库安装时的默认字符集。

有四个级别的字符集:

服务器级

数据库级

数据表级

字段级(字符串类的字段)

数据库服务器在安装时会要求指定默认字符集

并不是说数据库只支持这一种字符集!

容错方式创建数据库

库名的包裹方法

就是用反引号把系统保留做库名的名称包裹起来

当然库名表名字段不是保留字最好也加上反引号。

MYSQL里是UTF8,不是UTF-8

修改数据库,alter

格式:alter database 数据库名 选项

我们都有什么选项:字符集和校对规则

每创建一个数据库都会有一个db.opt文件

删除数据库,drop

格式:drop database if exists 库名;

如果删除数据库,则数据库所有数据及文件全部都没了!

表操作,table

创建表,create

格式:create table 表名 (字段定义) 表选项

为什么报错?

原因是我们没确定在哪个数据库里创建表。

解决方法:

使用use 库名;指定默认数据库

另外一种可以在创建时参数里写成 itcast.student_info

查看数据表,show

查看数据库里有哪些表

格式:show tables;

也支持条件查询

查看表的创建信息

Show create table 表名;

查看表结构,desc, describe

格式:desc 表名;

格式:show columns from 库名.表名;

修改表,alter

格式