1、MYSQL数据库 学习目标: l 掌握MYSQL基本知识 l 学习数据库管理和操作 l 掌握数据库设计方法 l 熟练运用SQL编程语言 基本概念 MYSQL数据库是关系型数据库。 关系型:使用一个关系,来表示实体信息和实体之间的联系。 关系:就是二维表,有行有列的表格。 学生实体信息表 学号 姓名 性别 地区 班级名称 ITCAST-001 张 男 河北 PHP0311 ITCAST-75 王 女 湖南 JAVA0325 ITCAST-123 李 男 广西 IOS0218 ITCAST-156 赵 男 天津 NULL
2、 班级实体信息表 班级名称 上课教室 PHP0311 103 JAVA0325 210 IOS0218 108 这两张表通过班级名称关联起来。 关系型数据库:就是由二维表及其之间的联系组成的数据组织。 同一个表中数据结构完全一致。 数据是由记录组成 记录是由字段组成。 SQL:结构化查询语言 专门用于处理关系型数据库编程语言。 PHP也是编程语言 变量,流程控制,函数 数据库服务器的结构 DBS = DBMS + DB 数据库系统 = 数据库管理系统 + 数据库(数据) 命令行客户端 数据
3、在服务器上是如何存储的? 操作服务器 通过服务管理来操作服务器 开始->运行->services.msc 3306是MYSQL服务程序的默认端口号 可以用netstat –an命令查看服务是否启动 命令行命令控制服务器的启动和关闭 Net start mysql Net stop mysql 错误原因:没有权限 解决办法:用管理员方式启动命令行窗口 C/S, client / server客户端/服务器方式访问数据库 命令行客户端工具 流程: 1. 连接和认证,提供4个参数,分别是主机地址,端口号,用户名,密码
4、 2. 向MYSQL数据库服务器发送SQL 3. MYSQL服务器接收并执行SQL,并且把结果返回给客户端 4. 客户端对结果进行显示 5. 断开服务器连接。Exit, quit, \q 2,3,4这几步可以循环执行 知识: 非关系型数据库,NOSQL,not only sql 不仅仅是SQL 代表:redis, mongodb 数据存储有点象数组,key/value SQL语言 存储数据: 首先建立数据库 之后建立数据表(字段定义) 操作数据 数据有哪些操作 CURD CREATE UPDATE READ DELETE(DROP)
5、 库操作,database 查看数据库,show 格式:show databases like ‘条件字符串’ 还可以使用条件进行查询 通配符:% _ % 可以匹配任意长度的字符串,包括空字符串。 下划线可以匹配任意一个字符,不包括空字符串 数据库名命名规则:可以使用字母,下划线,数字 注意: 尽量不要使用系统保留字做为数据库、表、字段的名称 尽量全使用小写字母,原因是象linux系统是区分大小写,如果库名比较长,建议采用下划线连接,不要使用驼峰法。如:不建议userInro 建议使用user_info 匹配5 个字符的库名
6、 查看数据库创建资料 格式:show create database if exists 数据库名; 创建数据库,create 简单方式 格式:create database 库名; 如果没有指定数据库的字符集,则使用数据库安装时的默认字符集。 有四个级别的字符集: 服务器级 数据库级 数据表级 字段级(字符串类的字段) 数据库服务器在安装时会要求指定默认字符集 并不是说数据库只支持这一种字符集! 容错方式创建数据库 库名的包裹方法 就是用反引号把系统保留做库名的名称包裹起来 当然库名表名字段不是保留字最好也加上反引号
7、 MYSQL里是UTF8,不是UTF-8 修改数据库,alter 格式:alter database 数据库名 选项 我们都有什么选项:字符集和校对规则 每创建一个数据库都会有一个db.opt文件 删除数据库,drop 格式:drop database if exists 库名; 如果删除数据库,则数据库所有数据及文件全部都没了! 表操作,table 创建表,create 格式:create table 表名 (字段定义) 表选项 为什么报错? 原因是我们没确定在哪个数据库里创建表。 解决方法: 使用use 库名;指定
8、默认数据库 另外一种可以在创建时参数里写成 itcast.student_info 查看数据表,show 查看数据库里有哪些表 格式:show tables; 也支持条件查询 查看表的创建信息 Show create table 表名; 查看表结构,desc, describe 格式:desc 表名; 格式:show columns from 库名.表名; 修改表,alter 格式:alter table 表名 修改内容1,…… Modify修改字段属性 Change可以同时改字段名 Add可以增加字段 D
9、rop可以删除字段 复制表 格式:create table like 或 select 先插入一条数据 复制表结构 复制表结构及数据 交换表名的技巧,rename 本身是把表改名的语句 删除表,drop 格式:drop table if exists表名; #库操作 #查看数据库 show databases; show databases like '%t%'; #全匹配 show databases like '%itcast%'; #前匹配 show databases like '%itcast'; #后匹
10、配 show databases like 'itcast%'; show databases like '_itcast'; show databases like '_____'; #查看数据库创建资料 show create database 数据库名; show create database itcast; #创建数据库 create database itcast2; create database if not exists itcast2; create database `match`; create database
11、 `match2` default charset=gbk; #修改数据库 alter database 数据库名 选项 alter database `match2` charset=utf8; #删除数据库,drop drop database if exists `match2`; #表操作 #创建表 create table student_info ( student_id int, student_name varchar(20) ); #查看表 show tables; show tables like 'student%
12、'; #查看表创建信息 show create table student_info; #查看表结构 desc student_info; show columns from itcast.student_info; #修改表 alter table student_info modify student_name varchar(30); alter table student_info change student_name studentname varchar(20); alter table student_info add gender cha
13、r(1) after studentname; alter table student_info drop gender; #复制表 #只有结构 create table student_copy like student_info; #结构和数据 create table student_copy2 select * from student_info; #表改名和表名互换 rename table student_info to student_tmp, student_copy to student_info, student_tmp to student_copy; #删除表 drop table if exists student_copy2;






