数据库 MySQL(二)SQL的基础语句


前言

MySQL语法规范:不区分大小写,建议关键字大写,表名,列名小写;
每句话结尾用“;”
1、DDL(Data Definition Language) 数据定义语言,用来操作数据库、表、列等; 常用语句:CREATE、 ALTER、DROP
2、DML(Data Manipulation Language) 数据操作语言,用来操作数据库中表里的数据;常用语句:INSERT、 UPDATE、 DELETE
3、DCL(Data Control Language) 数据控制语言,用来操作访问权限和安全级别; 常用语句:GRANT、DENY
4、DQL(Data Query Language) 数据查询语言,用来查询数据 常用语句:SELECT


一、数据库、数据表的基本操作

1、数据库的基本操作

MySQL安装完成后,要想将数据存储到数据库的表中,首先要创建一个数据库。创 建数据库就是在数据库系统中划分一块空间存储数据,语法如下:

create database 数据库名称;

(1).创建一个叫practice的数据库

-- 创建一个叫practice的数据库
create database `practice-yp`;

(2).创建数据库后查看该数据库基本信息MySQL命令:

show create database `practice-yp`;

查看数据库信息
(3).删除数据库MySQL命令:

drop database `practice-yp`;

(4).查询出MySQL中所有的数据库MySQL命令:

show databases;

查询数据库
(5).将数据库的字符集修改为gbk MySQL命令:

alter database `practice-yp` character set gbk;

1
(6).切换数据库 MySQL命令:

USE `practice-yp`;

(7).查看当前使用的数据库 MySQL命令:

select database();

在这里插入图片描述

2、数据表的基本操作

数据库创建成功后可在该数据库中创建数据表(简称为表)存储数据。请注意:在操作数据表之前应使用“USE 数据库名;”指定操作是在哪个数据库中进行先关操作,否则会抛出“No database selected”错误。

(1)、创建数据表

创建数据表的语法如下:

 create table 表名(
         字段1 字段类型,
         字段2 字段类型,
         …
         字段n 字段类型
);

示例:创建一个学生表student的SQL命令:

 create table student(
 id int,
 name varchar(20),
 gender varchar(10),
 birthday date
 );
(2)、查看数据表

示例:查看当前数据库中所有表 MySQL命令:

show tables;

查表基本信息的MySQL命令:

show create table student;

查看表的字段信息的MySQL命令:

desc student;

运行效果展示:
查看表的字段信息

(3)、修改数据表

有时,希望对表中的某些信息进行修改,例如:修改表名、修改字段名、修改字段 数据类型…等等。在MySQL中使用alter table修改数据表.
修改表名 MySQL命令:

alter table student rename to stu;

修改字段名 MySQL命令:

alter table stu change name sname varchar(10);

修改字段数据类型 MySQL命令:

alter table stu modify sname int;

增加字段 MySQL命令:

alter table stu add address varchar(50);

删除字段 MySQL命令:

alter table stu drop address;
(4)、删除数据表

删除数据表的语法:

drop table 表名;

二、数据表的约束

为防止错误的数据被插入到数据表,MySQL中定义了一些维护数据库完整性的规则;这些规则常称为表的约束。常见约束如下:

约束条件说明
PRIMARY KEY主键约束用于唯一标识对应的记录
FOREIGN KEY外键约束
NOT NULL非空约束
UNIQUE唯一性约束
DEFAULT默认值约束,用于设置字段的默认值
以上五种约束条件针对表中字段进行限制从而保证数据表中数据的正确性和唯一性。换句话说,表的约束实际上就是表中数据的限制条件。

1、主键约束

主键约束即primary key用于唯一的标识表中的每一行。被标识为主键的数据在表中是唯一的且其值不能为空。这点类似于我们每个人都有一个身份证号,并且这个身份证号是唯一的。
主键约束的基本语法:

字段名 数据类型 primary key;

设置主键约束(primary key)的第一种方式

create table student(
id int primary key,
sname varchar(20)
);

运行效果展示:
主键1

设置主键约束(primary key)的第二种方式

create table student01(
id int,
name varchar(20),
primary key(id)
);

运行效果展示:
主键2

2、非空约束

非空约束即 NOT NULL指的是字段的值不能为空。
基本的语法格式如下所示:

字段名 数据类型 NOT NULL;

示例:MySQL命令

create table student02(
id int,
name varchar(20) not null
);

运行效果展示:
非空

3、默认值约束

默认值约束即DEFAULT用于给数据表中的字段指定默认值,即当在表中插入一条新记录时若未给该字段赋值,那么,数据库系统会自动为这个字段插人默认值;
其基本的语法格式如下所示:

字段名 数据类型 DEFAULT 默认值;

示例:MySQL命令

create table student03(
id int,
name varchar(20),
gender varchar(10) default 'male'
);

运行效果展示:
默认值

4、唯一性约束

唯一性约束即UNIQUE用于保证数据表中字段的唯一性,即表中字段的值不能重复出现,其基本的语法格式如下所示:

字段名 数据类型 UNIQUE;

示例:MySQL命令

create table student04(
id int,
name varchar(20) unique
);

运行效果展示:
唯一性

5、外键约束

外键约束即FOREIGN KEY常用于多张表之间的约束。
基本语法如下:

-- 在创建数据表时语法如下:
CONSTRAINT 外键名 FOREIGN KEY (从表外键字段) REFERENCES 主表 (主键字段)
-- 将创建数据表创号后语法如下:
ALTER TABLE 从表名 ADD CONSTRAINT 外键名 FOREIGN KEY (从表外键字段) REFERENCES 主表 (主键字段);

示例:创建一个学生表MySQL命令

create table student05(
id int primary key,
name varchar(20)
);

示例:创建一个班级表MySQL命令

create table class(
classid int primary key,
studentid int
);

示例:学生表作为主表,班级表作为副表设置外键, MySQL命令:

alter table class add constraint fk_class_studentid foreign key(studentid) references student05(id);

(1)、数据一致性概念

大家知道:建立外键是为了保证数据的完整和统一性。但是,如果主表中的数据被删除或修改从表中对应的数据该怎么办呢?很明显,从表中对应的数据也应该被删除,否则数据库中会存在很多无意义的垃圾数据。

(2)、删除外键

语法如下:

alter table 从表名 drop foreign key 外键名;

示例:删除外键 MySQL命令:

alter table class drop foreign key fk_class_studentid;

(3)、关于外键约束需要注意的细节

1、从表里的外键通常为主表的主键
2、从表里外键的数据类型必须与主表中主键的数据类型一致
3、主表发生变化时应注意主表与从表的数据一致性问题

三、数据表插入数据

在MySQL通过INSERT语句向数据表中插入数据。在此,我们先准备一张学生表,代码如下:

 create table student(
 id int,
 name varchar(30),
 age int,
 gender varchar(30)
 );

3.1、为表中所有字段插入数据

每个字段与其值是严格一一对应的。也就是说:每个值、值的顺序、值的类型必须与对应的字段相匹配。但是,各字段也无须与其在表中定义的顺序一致,它们只要与 VALUES中值的顺序一致即可。
语法如下:

INSERT INTO 表名(字段名1,字段名2,...) VALUES (1,2,...);

示例:向学生表中插入一条学生信息 MySQL命令:

insert into student (id,name,age,gender) values (1,'bob',16,'male');

3.2、为表中指定字段插入数据

语法如下:

INSERT INTO 表名(字段名1,字段名2,...) VALUES (1,2,...);

插入数据的方法基本和为表中所有字段插入数据,一样,只是需要插入的字段由你自己指定

3.3、同时插入多条记录

语法如下:

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

在该方式中:(字段名1,字段名2,…)是可选的,它用于指定插人的字段名;(值 1,值 2,…),(值 1,值 2,…)表示要插人的记录,该记录可有多条并且每条记录之间用逗号隔开。

示例:向学生表中插入多条学生信息 MySQL命令:

insert into student (id,name,age,gender) values (2,'lucy',17,'female'),(3,'jack',19,'male'),(4,'tom',18,'male');

四、更新数据

在MySQL通过UPDATE语句更新数据表中的数据。

4.1、UPDATE基本语法

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

在该语法中:字段名1、字段名2…用于指定要更新的字段名称;值1、值2…用于表示字段的新数据;WHERE 条件表达式是可选的,它用于指定更新数据需要满足的条件。

4.2、UPDATE更新部分数据

示例:将name为tom的记录的age设置为20并将其gender设置为female MySQL命令:

update student set age=20,gender='female' where name='tom';

运行结果展示:
修改1

4.3、UPDATE更新全部数据

示例:将所有记录的age设置为18 MySQL命令:

update student set age=18;

运行效果如下:
修改2

五、删除数据

在MySQL通过DELETE语句删除数据表中的数据。在此,我们先准备一张数据表,代码如下:

-- 创建学生表
 create table student(
 id int,
 name varchar(30),
 age int,
 gender varchar(30)
 );
 -- 插入数据
 insert into student (id,name,age,gender) values (2,'lucy',17,'female'),(3,'jack',19,'male'),(4,'tom',18,'male'),(5,'sal',19,'female'),(6,'sun',20,'male')
,(7,'sad',13,'female'),(8,'sam',14,'male');

5.1、DELETE基本语法

在该语法中:表名用于指定要执行删除操作的表;[WHERE 条件表达式]为可选参数用于指定删除的条件。

DELETE FROM 表名 [WHERE 条件表达式];

5.2、DELETE删除部分数据

示例:删除age等于19的所有记录 MySQL命令:

delete from student where age=19;

5.3、DELETE删除全部数据

示例:删除student表中的所有记录 MySQL命令:

delete from student;

5.4、TRUNCATE和DETELE的区别

TRUNCATE和DETELE都能实现删除表中的所有数据的功能,但两者也是有区别的:
1、DELETE语句后可跟WHERE子句,可通过指定WHERE子句中的条件表达式只删除满足条件的部分记录;但是,TRUNCATE语句只能用于删除表中的所有记录。
2、使用TRUNCATE语句删除表中的数据后,再次向表中添加记录时自动增加字段的默认初始值重新由1开始;使用DELETE语句删除表中所有记录后,再次向表中添加记录时自动增加字段的值为删除时该字段的最大值加1
3、DELETE语句是DML语句,TRUNCATE语句通常被认为是DDL语句


六、总结

DDL(Data Definition Language) 数据定义语言,用来操作数据库、表、列等; 常用语句:CREATE、 ALTER、DROP
DML(Data Manipulation Language) 数据操作语言,用来操作数据库中表里的数据;常用语句:INSERT、 UPDATE、 DELETE

DQL数据查询语言,视图,函数等剩余部分会继续记录,数据库 SQL(三)SQL的基础语句。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

是鹏鹏哦

你的鼓励将是我创作最大的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值