MySQL数据库基本操作(增删改查)


一、数据库的基本操作

1.1 登录数据库

mysql -uroot -p

在这里插入图片描述

1.2 创建数据库并进入数据库

create database school;
show databases;

在这里插入图片描述

二、查看数据库结构

2.1 查看数据库信息

show databases;
show databases\G

在这里插入图片描述

2.2 查看数据库中包含的表及表结构

use school;
create table student (id int NOT NULL,Stuname char(10) NOT NULL,score decimal(5,2),passwd char(48) DEFAULT'', PRIMARY KEY (id));
desc student;
show tables;

注:主键一般选择能代表唯一性的字段不允许取空值(NULL),一个表只能有一个主键。

在这里插入图片描述
在这里插入图片描述

2.3、常用的数据库类型

在这里插入图片描述

三、Mysql数据文件

主键是唯一的,但主键可以由多个字段构成

MySQL数据库的数据文件存放在**/usr/local/mysql/data目录下**,每个数据库对应一个子目录,用于存储数据表文件。每个数据表对应为三个文件,扩展名分别为“.frm”、“.MYD”和“.MYI”。

3.1 MYD文件

MYD”文件是MyISAM存储引擎专用,存放MyISAM表的数据。每一个MyISAM表都会有一个“.MYD”文件与之对应,同样存放于所属数据库的文件夹下,和“.frm”文件在一起。

3.2 MYI文件

“.MYI”文件也是专属于 MyISAM 存储引擎的,主要存放 MyISAM 表的索引相关信息。对于 MyISAM 存储来说,可以被 cache 的内容主要就是来源于“.MYI”文件中。每一个MyISAM 表对应一个“.MYI”文件,存放于位置和“.frm”以及“.MYD”一样。

3.3 MyISAM存储引擎

MyISAM 存储引擎的表在数据库中,每一个表都被存放为三个以表名命名的物理文件
(frm,myd,myi)。 每个表都有且仅有这样三个文件做为 MyISAM 存储类型的表的存储,也就是说不管这个表有多少个索引,都是存放在同一个.MYI 文件中。

另外还有“.ibd”和 ibdata 文件,这两种文件都是用来存放 Innodb 数据的,之所以有两种文件来存放 Innodb 的数据(包括索引),是因为Innodb的数据存储方式能够通过配置来决定是使用共享表空间存放存储数据,还是独享表空间存放存储数据。独享表空间存储 方式使用“.ibd”文件来存放数据,且每个表一个“.ibd”文件,文件存放在和 MyISAM 数据相同的位置。如果选用共享存储表空间来存放数据,则会使用 ibdata 文件来存放,所有表共同使用一个(或者多个,可自行配置)ibdata 文件。

四、SQL 语句

SQL语句用于维护管理数据库,包括数据查询数据更新访问控制对象管理等功能。

SQL语言分类:

DDL:数据定义语言,用于创建数据库对象,如库、表、索引等
DML:数据操纵语言,用于对表中的数据进行管理,用来插入、删除和修改数据库中的数据
DQL:数据查询语言,用于从数据表中查找符合条件的数据记录
DCL:数据控制语言,用于设置或者更改数据库用户或角色权限(数据控制语句,用于控制不通数据段直接的许可和访问级别的语句,这些语句定义了数据库、表、字段、用户的访问权限和安全级别,如COMMIT、ROLLBACK、GRANT、REVOKE)

1、 DDL数据定义语言

用于创建数据库对象,如库、表、索引等

creat
drop
alter

1.1 删除指定的表

use school;
drop tables student;

在这里插入图片描述

1.2 删除指定数据库

drop database school;

在这里插入图片描述

2、DML数据操控语言

数据操纵语言,用于对表中的数据进行管理,用来插入、删除和修改数据库中的数据。

insert
update
delete

2.1 向数据表中插入新的内容

格式:

INSERT INTO 表名(字段1,字段2[,...]) VALUES(字段1的值,字段2的值,...);

示例:

INSERT INTO student  (id,name,score,passwd) values(1,'zhangsan',70.5,PASSWORD('123456'));
#PASSWORD('123456'):查询数据记录时,密码字串以加密形式显示:若不使用PASSWORD(),查询时以明文显示。

在这里插入图片描述

2.2 修改、更新数据表中的数据记录

格式:

UPDATE 表名 SET 字段名1=字段值1[,字段名2=字段值2] [WHERE 条件表达式];

示例:

UPDATE student SET passwd=PASSWORD('') WHERE name='zhangsan';
UPDATE student SET name='wangxiaoer',passwd='' WHERE id=3;

在这里插入图片描述
在这里插入图片描述

2.3 查询数据表中的内容

SELECT 字段名1,字段名2[,...] FROM 表名 [WHERE 条件表达式];
 
例:select * from student;
select name,score from student  where id=1;

在这里插入图片描述

2.4 在数据表中删除指定的数据记录

DELETE FROM 表名 [WHERE 条件表达式];
 
例:delete from student where id=1;
select * from student;

在这里插入图片描述

3、DQL数据查询语言

select name from student\G         #以列表方式竖向显示
select * from student limit 2;      #只显示头2行
select * from student limit 2,3;    #显示第2行后的前3行

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

4、DCL数据控制语言

4.1 修改表名

ALTER TABLE 旧表名 RENAME 新表名;
 
例:alter table student rename test;
show tables;
select * from test;

在这里插入图片描述

4.2 扩展表结构(增加字段)

ALTER TABLE 表名 ADD address varchar(50) default '地址不详';
 
​#default ‘地址不详’:表示此字段设置默认值 地址不详;可与 NOT NULL 配合使用
 
例:alter table test add address varchar(50) default '地址不详';

在这里插入图片描述

4.3 修改字段(列)名,添加唯一键

ALTER TABLE 表名 CHANGE 旧列名 新列名 数据类型 [unique key];
 
例:alter table test change name student varchar(20) unique key;
select * from school;
 
例:
insert into test (id,student,score,passwd) values(1,'lcdb',250,123456);
select * from test;
insert into test (id,user_name,score,passwd) values(6,'zhangbin',250,123456);

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
每个表中只能由一个主键 ,但是许多内容都需要唯一性,这就是唯一键的作用

4.4 删除字段

ALTER TABLE 表名 DROP 字段名;
 
例:alter table test drop score;

在这里插入图片描述

4.5 拓展案例

  • if not exists 表示检测要创建的表是否已存在,如果不存在就继续创建
  • int(4) zerofill 表示若数值不满4位数,则前面用“0”填充,例0001
  • auto_increment 表示此字段为自增长字段,即每条记录自动递增1,默认从1开始递增;自增长字段数据不可以重复;自增长字段必须是主键;如添加的记录数据没有指定此字段的值且添加失败也会自动递增一次
  • unique key 表示此字段唯一键约束,此字段数据不可以重复;一张表中只能有一个主键, 但是一张表中可以有多个唯一键
  • not null 表示此字段不允许为NULL
例:use school;
create table if not exists school (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 school;

在这里插入图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值