目录
前言
概述
常用的数据类型
数据库SQL语言
1、SQL语言的分类
数据库基本操作
1、登录数据库
2、查看数据库结构
1、查看数据库信息
2、查看数据库中包含的表结构
3、显示数据表的结构
3、DDL数据定义语言
1、创建/删除数据库
2、创建/删除表
3、查看表结构
4、DML数据操控语言
1、向数据表中插入新的数据记录
2、查询数据记录
3、修改、更新数据表中的数据记录
4、在数据表中删除指定的数据记录
5、DQL数据查询语言
6、DCL数据控制语言
1、修改表名
2、扩展表结构 (增加字段)
3、删除字段
MySQL 是最流行的关系型数据库管理系统,在 WEB 应用方面 MySQL 是最好的 应用软件之一。在本篇中,会让大家快速掌握 MySQL 的基本操作,并轻松使用 MySQL 数据库
MySQL数据库的数据文件存放在/usr/local/mysq1/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) | 5个有效长度数字,小数点后面有2位 |
类型 | 说明 |
DDL(数据定义语言) | 用于创建数据库对象,如库、表、索引等 |
DML(数据操作语言) | 用于对表中的数据进行管理,用来插入、删除和修改数据库中的数据 |
DQL(数据查询语言) | 用于从数据表中查找符合条件的数据记录 |
DCL(数据控制语言) | 用于设置或者更改数据库用户或者角色权限(用于控制不同数据段直接的许可和访问加别的语句,这些语句定义了数据库、表、字段、用户的访问权限和安全级别,如COMMIT、ROLLBACK、GRANT、REVOKE) |
mysql -u root -p 回车
输入密码
show databases;
show databases\G注意:数据库命令不区分大小写
use 数据库名; #切换进入数据库,后面可以不加 ;
show tables; #查看数据库中的表,得加 ;
show tables in mysql; #查看指定库中的表,这条命令不需要use切换数据库再去看表
describe [数据库名].表名; 如 desc gang.test; 查看表的结构 desc test;
可缩写成:desc 表名;
select version(); #在mysql内部查看版本
#创建数据库
mysql> CREATE DATABASE 库名;
#删除数据库
mysql> DROP DATABASE 库名;
#查看数据库
show databases;
show databases
#进入school中
use school;
#主键一般选择能代表唯一性的字段不允许取空值(NULL),一个表只能有一个主键。
CREATE TABLE 表名 (字段1 数据类型,字段2 数据类型[,...][,PRIMARY KEY (主键名)]);
#删除表
DROP TABLE 表名;
CREATE TABLE first_group (id int NOT NULL,name char(10) NOT NULL,score decimal(5,2),pa aawd char(48) DEFAULT'',PRIMARY KEY (id));
创建库 创建表 添加数据
#查看表结构
desc 表名
#查看库中的表内容
show tables in 库名;
属性 | 说明 |
Field | 字段名称 |
type | 数据类型 |
Null | 是否允许为空 |
key | 主键 |
Default | 默认值 |
Extra | 扩展属性,例如:标志符列(标识了种子,增量/步长)1 2 |
id | 1 3 5 7 |
数据操纵语言,用于对表中的数据进行管理,用来插入、删除和修改数据库中的数据。
insert 插入
update 修改
delete 删除表中指定内容
格式:
INSERT INTO 表名(字段1,字段2[,...]) VALUES(字段1的值,字段2的值,...);
例:create database yang; 创建数据库
use yang; 进入数据库
create table class1 (id int NOT NULL,name char(10) NOT NULL, score decimal(5,2), passwd char(48) DEFAULT'',PRIMARY KEY (id)); 创建表需要定义表的字段结构
insert into class1 (id,name,score,passwd) values(1,'xiao',68,PASSWORD('123456'));
insert into class1 (id,name,score,passwd) values(2,'lini',95.46,123456); 插入表内容insert into class1 values(5,'lini',95.46,123456),(6,'fff',55,123456); 另一种批量插入方法
#PASSWORD('123456'):查询数据记录时,密码字串以加密形式显示:若不使用PASSWORD(),查询时以明文显示。
密文写法
SELECT 字段名1,字段名2[,...] FROM 表名 [WHERE 条件表达式];
例:select * from class1; 查看class1表中所有信息
select name,score from class1 where id=2; 查看id=2的 name score
UPDATE 表名 SET 字段名1=字段值1[,字段名2=字段值2] [WHERE 条件表达式];
例:insert into class1 (id,name,score,passwd) values(3,'mimi',95.46,123456);
insert into class1 (id,name,score,passwd) values(4,'gg',99,123456);
select * from class1;
update class1 set id=5 where name='lini'; 把lini的id改为5
select * from class1;
update class1 set name='gg',score=66 where id=4;
select * from class1;update class1 set name='gg' where id>3; id>3的name都改为gg
DELETE FROM 表名 [WHERE 条件表达式];
例:delete from class1 where id=5;
select * from class1;delete from class1 where id>4; 删除id>4的记录
delete from class1 where name='lini'; 删除表中lini的记录
格式:select 字段1,字段2 from 表名 【where 条件表达式】;
select name from class1\G #以列表方式竖向显示
select * from class1 limit 2; #只显示头2行
select * from class1 limit 2,3; #显示第2行后的前3行select id,name from class1; #查看整个表中的id,name字段
select id,name,score from class1 where name='xiao'; #查看name为xiao的id,name,score
select id,name from class1 where score>80; #查看分数值大于80分的字段id,name ,
insert into class1 (id,name,score,passwd) values(2,'hello',78.8,123456);
insert into class1 (id,name,score,passwd) values(5,'abc',76,123456);
或者insert into class1 values(2,'hello',78.8,123456),(5,'abc',76,123456);
ALTER TABLE 旧表名 RENAME 新表名; 更改表名不影响数据
例:alter table class1 rename test; 更改表名
show tables; 查看表
select * from test; 查看表内容
ALTER TABLE 表名 ADD address varchar(60) default '地址不详';
#default ‘地址不详’:表示此字段设置默认值 地址不详;可与 NOT NULL 配合使用
例:alter table test add address varchar(60) default 'NOLL';
ALTER TABLE 表名 DROP 字段名;
例:alter table test drop address;