MYSQL数据库基本操作详细教程
MYSQL数据库
学习目标:
●掌握MYSQL基本知识
●学习数据库管理和操作
●掌握数据库设计方法
●熟练运用SQL编程语言
基本概念
MYSQL数据库是关系型数据库。
关系型:使用一个关系,来表示实体信息和实体之间的联系。关系:就是二维表,有行有列的表格。
这两张表通过班级名称关联起来。
关系型数据库:就是由二维表及其之间的联系组成的数据组织。同一个表中数据结构完全一致。
数据是由记录组成
记录是由字段组成。
SQL:结构化查询语言
专门用于处理关系型数据库编程语言。
PHP也是编程语言
变量,流程控制,函数
数据库服务器的结构
DBS = DBMS + DB
数据库系统= 数据库管理系统+ 数据库(数据)
命令行客户端
数据在服务器上是如何存储的?
操作服务器
通过服务管理来操作服务器
开始->运行->services.msc
3306是MYSQL服务程序的默认端口号
可以用netstat –an命令查看服务是否启动
命令行命令控制服务器的启动和关闭
Net start mysql
Net stop mysql
错误原因:没有权限
解决办法:用管理员方式启动命令行窗口
C/S, client / server客户端/服务器方式访问数据库
命令行客户端工具
流程:
1.连接和认证,提供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)
库操作,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
格式:alter table 表名修改内容1,……
Modify修改字段属性
Change可以同时改字段名
Add可以增加字段
Drop可以删除字段
复制表
格式:create table like 或select
先插入一条数据
复制表结构
复制表结构及数据
交换表名的技巧,rename
本身是把表改名的语句
删除表,drop
格式:drop table if exists表名;
#库操作
#查看数据库
show databases;
show databases like '%t%';
#全匹配
show databases like '%itcast%';
#前匹配
show databases like '%itcast';
#后匹配
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 `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%';
#查看表创建信息
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 char(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;