首页 > 代码库 > MySQL数据库
MySQL数据库
--MySQL数据库
MySQL是一个开放源码的小型关联式数据库管理系统,在WEB应用方面MySQL是最好的
RDBMS(Relational Database Management System,关系数据库管理系统)应用软件之一。
MySQL是C/S(客户端/服务端)体系结构的软件,分别有四种不同的操作语言,分别是:
1,DDL(Data Definition Language,数据定义语言)
主要是用来定义和维护数据库的各种操作对象,比如库、表、索引、视图;
主要的操作关键字有:create、drop、alter等
2,DML (Data Manipulation Language,数据操作语言)
主要是对表中的记录进行增删改查的操作! 关键字:select
3,DQL (Data Query Language,数据查询语言!)
主要是对表中的数据进行查询的操作!
关键字:select
4,DCL:(Data Control Language,数据控制语言)
主要是对数据库进行统一管理和统一控制,比如并发控制,存取控制,安全控制等;
--一、数据库操作
-- 1、创建一个数据库(增)
--语法形式 :craate database 数据库名
craate database php2016;
-- 创建含有特殊字符的数据库
create database 1234 ; --纯数字,出错
create database use; --关键字,出错
create database 传智博客; --中文,出错
create database `1234`; --成功
create database `use`; --成功
create database `传智播客`; -- 失败,字符编码问题
set names gbk; --告诉服务器当前客户端的编码为gbk
-- 2、查看数据库(查)
--语法形式 :show databases (查看有哪些数据库)
show database 数据库名; -- (查看某一个数据库)
--查看数据库的创建创建语句
show create database 数据库名;
--3、删除数据库(删)
--语法: drop database 数据库名;
drop database 数据库名;
drop database `1234`;
drop database `use`;
--注意:删除数据库一定要慎重!因为整个数据库文件(包括里面所有的数据表以及表中所有的数据)
--都会被删除,过程默认不可逆
--4、修改数据库(改)
--修改数据库库选项信息 需慎重!修改数据库名称时容易丢失数据库的部分数据,如果要修改先创建一个新的数据表拷贝备份,再删除之前的数据库
--语法如下:
alter database 数据库名 新的库选项;
alter database php2016 default charset gbk;
--二、数据表操作
--所有的数据表都应该属于某一个具体的数据库!所以,有关数据表的任何操作都需要先指定其所属的数据库!
--有两种方式
-- a、显示的指定数据库
create table php2016.test1(a int);
--b、指定默认的操作数据库
use php2016;
create table test2(a int);
--在test数据库下创建一个数据表
create table test.test1(a int);
--1、创建数据表(增)
--创建表语法
create table 表名(
字段1 字段1类型,
字段2 字段2类型,
字段3 字段3类型,
字段n 字段n类型,
)表选项信息;
create table test3(
a int,
b float,
c varchar(50)
);
create table jiu_test1(
a int,
b float,
c varchar(50)
);
create table jiu_test2(
a int,
b float,
c varchar(50)
);
create table lvyou_test1(
a int,
b float,
c varchar(50)
);
create table lvyou_test2(
a int,
b float,
c varchar(50)
);
--2、查看数据表(查)
--查询当前数据库下有哪些数据表
show tables;
--a、模糊查询 关键字:like 通配符:_可以代表任意单个字符,%可以代表任意的字符。
--只查看以 jiu 开头的表,需要用到模糊查询
show tables like ‘jiu_%‘; -- 注意这里的引号不能省略
--b 、查看表的创建语句
show create table 表名;
--c、另外,还可以查看表的结构
--语法:desc 表名;
desc test3;
--3、删除数据表(删)
--语法: drop table 表名;
drop table test1;
drop table test99; --删除一个不存在的表系统会报错
--如果删除一个不存在的表,系统默认的是报错,所以还有一个比较完整的语法:
drop table if exists 表名;
--这种比较完整的语法还适用于 创建|删除数据库 或 创建|删除 数据表
create database if not exists 库名;
drop database if exists 库名;
create table if not exists 表名(字段列表);
drop table if exists 表名 ;
--3、修改数据表(改)
--数据表修改可以分成上级命令+下级命令 上级命令:alter table 表名 下级命令关键字:rename
--修改表名的语法
alter table 旧表名 rename to 新表名;
--修改表名还有一个比较简单的语法:
rename table 旧表名 to 新表名;
--rename语法还可以实现数据表的移动:
rename table jiu_test1 to test.jiu_test1 -- 相当于把当前数据库下的jiu_test1数据表移动到test 数据库下
--三、修改列定义
--修改列定义的上级命令还是:alter table 表名 下级命令的关键字:增加:add 、 删除:drop、 重命名:change 、 修改:modify
--1、增加一列
--语法: alter table 表名 add 新列名 字段类型;
alter table php2016_test1 add d tinyint;
--2、删除一列
--语法: alter table 表名 drop 字段名;
alter table php2016_test1 drop d;
--3、修改字段类型
--语法: alter table 表名 modify 字段名 新的数据类型;
alter table php2016_test2 modify b int;
--修改字段排序 (把某个字段放在最前面)
--语法: alter table 表名 modify 字段名 数据类型 first;
alter table php2016_test2 modify b int first;
--把字段名1放在字段名2的后面
--语法: alter table 表名 modify 字段名1 数据类型 after 字段2;
alter table php2016_test2 modify b int after c;
--重命名字段
--alter table 表名 change 原字段名 新字段名 新字段类型;
alter table php2016_test2 change d a tinyint;
--修改表选项
--语法:alter table 表名 表选项信息;
--四、数据操作
--1、插入数据(增)
--插入数据语法形式
insert into 表名(字段列表) values(值列表);
--创建student表
create table student(
stu_id int,
stu_name varchar(20),
stu_age tinyint unsingned,
stu_money int
);
--插入数据
insert into student(stu_id,stu_name) values(1,‘刘备‘);
insert into student(stu_id,stu_name) values(2,‘曹操‘);
insert into student(stu_id,stu_name) values(3,‘孙权‘,25,2000);
--也可以一次插入很多条数据,中间以逗号隔开!
insert into student values
(4,‘关羽‘,35,5000),
(5,‘赵子龙‘,32,10000),
(6,‘张飞‘,34,4000);
--2、查询数据(查)
--基本语法查询语句 :select *|字段列表 form 表名[查询条件];
select * from student; --或者 select * from student where
--只查询部分字段语法: select stu_name,stu_id form student;
--3、删除数据(删)
--删除数据语法形式 :delete from 表名[删除条件];
delete from student where stu_id>4;
--4、修改数据
--语法形式:update 表名 set 字段1=新值1,字段2=新值2.....[修改条件]
update student set stu_age = 36 where stu_name = ‘刘备‘;
MySQL数据库