前言:上章和拐友们讲解了一下数据库以及它的的用途和作用,这章我们来使用一下MySQL数据库的基本操作和用户授权,这也是服务器运维工作中不可或缺的东西。
目录
一.MySQL数据库
1.1MySQL概述
1.2常用的数据类型
二.数据库管理
2.1进入数据库
2.2.查看数据库的信息
2.3查看数据库中表的信息
2.4.显示数据表的结构(字段)
三.数据库管理之SQL语句
3.1SQL语句
3.2DDL数据定义语言
3.2.1创建新的数据库
3.2.2创建新的表
3.2.3删除指定的数据表
3.2.4.删除指定的数据库
3.3DML管理表中的数据记录
3.3.1向数据表中插入新的内容
3.3.2查询数据内容
3.3.3.修改,更新数据表中的数据记录
3.3.4在数据表中删除指定的数据记录
3.4DQL查询数据记录
3.5.DCL修改表名和表结构
3.5.1修改表名
3.5.2扩展表结构(增加字段)
3.5.3.修改字段(列)名,添加唯一键
3.5.4.删除字段
四.扩展知识
五.总结
引流:熟悉安装以及访问MySQL数据库以后,接下来将使用MySQL数据库的基本操作,这也是在服务器运维工作中不可或缺的知识
MySQL数据库的数据文件存放在/usr/local/mysql/data目录下,每个数据库对应一个子目录,用于存储数据表文件。每个数据表对应为三个文件,扩展名分别为“. frm"、" .MYD"和“.MYI"
MYD文件是MyISAM存储引擎专用,存放MyISAM表的数据。每一个MyISAM表都会有一个“.MYD”文件与之对应,同样存放于所属数据库的文件夹下,和“.frm" 文件在一起。
'MYI'文件也是专属于MyISAM 存储引擎的,主要存放MyISAM表的索引相关信息。对于MyISAM存储来说,可以被cache的内容主要就是来源于“.MYI"文件中。每一个MyISAM表对应一个“.MYI"文件,存放于位置和“. frm"以及“.MYD”一样。
MYISAM存储引擎的表在数据库中,每一个表都被存放为三个以表名命名的物理文件( frm, myd,myi)。每个表都有且仅有这样三个文件做为MyISAM存储类型的表的存储,也就是说不管这个表有多少个索引,都是存放在同一个.MYI文件中。
另外还有“. ibd"和ibdata 文件,这两种文件都是用来存放Innodb数据的,之所以有两种文件来存放Innodb的数据(包括索引),是因为Innodb的数据存储方式能够通过配置来决定是使用共享表空间存放存储数据,还是独享表空间存放存储数据。独享表空间存储方式使用“. ibd"文件来存放数据,且每个表一个“.ibd"文件,文件存放在和MyISAM数据相同的位置。如果选用共享存储表空间来存放数据,则会使用ibdata文件来存放,所有表共同使用一个(或者多个,可自行配置) ibdata 文件。
数据类型 | 使用说明 |
int | 整型 |
float | 单精度浮点4字节32位,准确表示到小数点后六位 |
double | 双精度浮点。8字节64位 |
char | 固定长度的字符类型,定义字符类数据,不足的空格补齐 |
varchar | 可变长度的字符类型 |
text | 文本 |
image | 图片 |
decimal | 5个有效长度数字,小数点后面有2位,指定长度数组 |
ps:char和varchar的区别:
char:优点:查询效率非常高 缺点:占用空间大 (最大设置字符只有255)
varchar:优点:不会占用空间 缺点:查询效率非常低 (最大设置字符有65535)
mysql -uroot -p #进入数据库
show databases #查看数据库
use 数据库名 #进入数据库
show tables #查看库中的表
或
show tables in mysql
describe user #显示数据表的结构
Field | 字段的名称 |
Null | 是否允许为空 |
Key | 主键 |
Type | 数据类型 |
Default | 默认值 |
Extra | 扩展属性,例如:标志符列(标识了种子,增量/步长)1 2 |
SQL语句用于维护管理数据库,包括数据查询,数据更新,访问控制,对象管理等功能。SQL语句分为4类:
DDL | 数据定义语言,用于创建数据库对象,如库,表,索引等 |
DML | 数据操纵语言,用于对表中的数据进行管理,用来插入,删除和修改数据库中的数据 |
DQL | 数据查询语言,用于从数据表中查找符合条件的数据记录 |
DCL | 数据控制语言,用于设置或者更改数据库用户或角色权限(数据控制语句,用于控制不通数据段直接的许可和访问级别的语句,这些语句定义了数据库,表,字段,用户的访问权限和安全级别,如COMMIT,ROLLBACK,GRANT,REVOKE) |
CREATE DATABASE 数据库名;
CREATE TABLE 表名 (字段1 数据类型,字段2 数据类型[,...][,PRIMARY KEY (主键名)])
#主键名一般选择能代表唯一性的字段不允许去控制(NULL),一个表只能有一个主键
举例:create table hehe (id int NOT NULL, name char(10) NOT NULL, score decimal(5,2), passwd char(48) DEFAULT '', PRIMARY KEY(id));
id int NOT NULL | 指定字段id 数据类型int,不能为空 |
name char(10) NOT NULL | 指定字段name,数据库类型char固定长度为10字节,不能为空 |
score decimal(5,2) | 分数 5是代表一共有几位数字;2是代表小数点右边最多有两位 |
passwd char(48) DEFAULT | 指定密码,数据类型char固定长度48字节 默认为空 |
PRIMARY KEY(id) | 指定主键为id字段(主键一般选择没有重复并且不为空值的字段) |
完整:
use 数据库名
DROP TABLE 表名
或者
DROP TABLE [数据库名] 表名;
#如不用USE进入库中,则需加上数据库名
drop databases [数据库名];
INSERT INTO 表名(字段1,字段2[,...]) VALUES(字段1的值,字段2的值,...);
#PASSWORD('123456'):查询数据记录时,密码字串以加密形式显示:若不使用PASSWORD(),查询时以明文显示。
select * from [数据表名]
或指定某个字段
SELECT 字段名1,字段名2[,...] FROM 表名 [WHERE 条件表达式];
如
select name,score from nannan;
UPDATE 表名 SET 字段名1=字段值1[,字段名2=字段值2] [WHERE 条件表达式];
DELETE FROM 表名 [WHERE 条件表达式];
select * from [数据表名] #查询数据表
select name from CLASS\G #以列表方式竖向显示
select * from CLASS limit 3; #只显示头3行
select * from CLASS limit 2,3; #显示第2行后的前3行
ALTER TABLE 旧表名 RENAME 新表名;
ALTER TABLE 表名 ADD address varchar(50) default '地址不详';
#default ‘地址不详’:表示此字段设置默认值 地址不详;可与 NOT NULL 配合使用
例:alter table CLASS3 add address varchar(50) default '地址不详';
ALTER TABLE 表名 CHANGE 旧列名 新列名 数据类型 [unique key];
#key:唯一且非空(主键一般选择能代表唯一性的字段不允许取空值,一个表只能有一个主键)
体现了主键的唯一性
ALTER TABLE 表名 DROP 字段名;
例:use hehe;
create table if not exists nannan (id int(4) zerofill primary key auto_increment,student_name varchar(20) not null,cardid varchar(18) not null unique key,hobby varchar(50));
desc nannan;
if not exists | 表示检测要创建的表是否已存在,如果不存在就继续创建 |
int(4) zerofill | 表示若数值不满4位数,则前面用“0”填充,例0001 |
auto_increment | 表示此字段为自增长字段,即每条记录自动递增1,默认从1开始递增;自增长字段数据不可以重复;自增长字段必须是主键;如添加的记录数据没有指定此字段的值且添加失败也会自动递增一次 |
unique key | 表示此字段唯一键约束,此字段数据不可以重复;一张表中只能有一个主键, 但是一张表中可以有多个唯一键 |
not null | 表示此字段不允许为NULL |
本章内容主要就是讲了MySQL数据库的基本用法以及操作命令,拐友们要多多操作才能熟练掌握,下章我们会讲解MySQL的高级语句,未完持续。。。。。