MySQL结构化查询语言有哪些

这篇文章主要介绍“MySQL结构化查询语言有哪些”,在日常操作中,相信很多人在MySQL结构化查询语言有哪些问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”MySQL结构化查询语言有哪些”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

  

SQL的概述

Structured Query Language 结构化查询语言,是一种特殊目的的编程语言,是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统。

各种主流的数据库系统都对SQL规范作了某些编改和扩充。所以,实际上不同数据库系统之间的SQL不能完全相互通用,但大部分是相同的,后面我们学习的是MySQL的版本,掌握SQL主要语法之后,要迁移到其它数据库也是比较容易的。

结构化查询语言包含6个部分:

一:数据查询语言(DQL:Data Query Language):

其语句,也称为“数据检索语句”,用以从表中获得数据,确定数据怎样在应用程序给出。保留字SELECT是DQL(也是所有SQL)用得最多的动词,其他DQL常用的保留字有WHERE,ORDER BY,GROUP BY和HAVING。这些DQL保留字常与其他类型的SQL语句一起使用。

二:数据操作语言(DML:Data Manipulation Language):

其语句包括动词INSERT,UPDATE和DELETE。它们分别用于添加,修改和删除表中的行。也称为动作查询语言。

三:事务处理语言(TPL):

它的语句能确保被DML语句影响的表的所有行及时得以更新。TPL语句包括BEGIN TRANSACTION,COMMIT和ROLLBACK。

四:数据控制语言(DCL):

它的语句通过GRANT或REVOKE获得许可,确定单个用户和用户组对数据库对象的访问。某些RDBMS可用GRANT或REVOKE控制对表单个列的访问。

五:数据定义语言(DDL):

其语句包括动词CREATE和DROP。在数据库中创建新表或删除表(CREAT TABLE 或 DROP TABLE);为表加入索引等。DDL包括许多与人数据库目录中获得数据有关的保留字。它也是动作查询的一部分。

六:指针控制语言(CCL):

它的语句,像DECLARE CURSOR,FETCH INTO和UPDATE WHERE CURRENT用于对一个或多个表单独行的操作。

本章我们主要介绍的是DDL和DML。

MySQL数据库的操作

创建数据库的基本语法是:

create database 数据库名;

还可以给数据库指定默认的字符集以及排序规则:

create database 数据库名

default character set 字符集 collate 排序规则;

选择数据库

use 数据库名;

修改数据库的字符集和排序规则:

alter database 数据库名

default character set  字符集 collate 排序规则;

删除数据库:

drop database 数据库名;

删除时检查数据库是否存在:

drop database if exists 数据库名;

代码示例:

1.– 删除数据库

2.drop database if exists java1903;

3.– 创建数据库

4.create database java1903

5.default character set utf8mb4

6.collate utf8mb4_general_ci;

7.– 使用数据库

8.use java1903;

MySQL常见的数据类型

创建好数据库后,我们就需要建表,建表我们需要设置字段的数据类型,我们先来了解MySQL中常见的数据类型。

类型名称

说明

存储需求

TINYINT

很小的整数

1个字节

SMALLINT

小的整数

2个宇节

MEDIUMINT

中等大小的整数

3个字节

INT INTEGHR)

普通大小的整数

4个字节

BIGINT

大整数

8个字节

2)小数类型

类型名称

说明

存储需求

FLOAT

单精度浮点数

4 个字节

DOUBLE

双精度浮点数

8 个字节

DECIMAL M, D),DEC

压缩的“严格”定点数

M+2 个字节

3) 日期/时间类型

类型名称

日期格式

日期范围

存储需求

YEAR

YYYY

1901 ~ 2155

1 个字节

TIME

HH:MM:SS

-838:59:59 ~ 838:59:59

3 个字节

DATE

YYYY-MM-DD

1000-01-01 ~ 9999-12-3

3 个字节

DATETIME

YYYY-MM-DD HH:MM:SS

1000-01-01 00:00:00 ~ 9999-12-31 23:59:59

8 个字节

TIMESTAMP

YYYY-MM-DD HH:MM:SS

1980-01-01 00:00:01 UTC ~ 2040-01-19 03:14:07 UTC

4 个字节

3) 字符串类型

类型名称

说明

存储需求

CHARM)

固定长度非二进制字符串

M 字节,1<=M<=255

VARCHARM)

变长非二进制字符串

L+1字节,在此,L< = M和 1<=M<=255

TINYTEXT

非常小的非二进制字符串

L+1字节,在此,L<2^8

TEXT

小的非二进制字符串

L+2字节,在此,L<2^16

MEDIUMTEXT

中等大小的非二进制字符串

L+3字节,在此,L<2^24

LONGTEXT

大的非二进制字符串

L+4字节,在此,L<2^32

ENUM

枚举类型,只能有一个枚举字符串值

1或2个字节,取决于枚举值的数目 最大值为65535)

SET

一个设置,字符串对象可以有零个或 多个SET成员

1、2、3、4或8个字节,取决于集合 成员的数量(最多64个成员)

4) 二进制类型

类型名称

说明

存储需求

BITM)

位字段类型

大约 M+7)/8 字节

BINARYM)

固定长度二进制字符串

M 字节

VARBINARY M)

可变长度二进制字符串

M+1 字节

TINYBLOB M)

非常小的BLOB

L+1 字节,在此,L<2^8

BLOB M)

小 BLOB

L+2 字节,在此,L<2^16

MEDIUMBLOB M)

中等大小的BLOB

L+3 字节,在此,L<2^24

LONGBLOB M)

非常大的BLOB

L+4 字节,在此,L<2^32

表的操作

创建表:

create table 表名

字段名 数据类型 [约束],

字段名 数据类型 [约束],

….

)

主要的约束类型有:

primary key                主键,表中只能有一个,不能重复,不能为空

not null                  非空,必须填写

unique                        唯一,不能重复

auto_increment        自动增长,必须是整数类型,不需要手动插入

foreign key                外键,建立表之间的引用关系

删除表:

drop table 表名;

删除表时进行检查:

drop table if exists 表名;

修改表,添加字段:

alter table 表名 add column 字段名 数据类型;

修改表,删除字段:

alter table 表名 drop column 字段名;

查看表结构:

desc 表名;

代码示例:

9.– 删除表

10.drop table if exists tb_student;

11.– 创建学生表

12.create table tb_student

13.

14.        stu_id int primary key auto_increment,

15.        stu_name varchar20) not null,

16.        stu_age int not null,

17.        stu_gender varchar1) not null,

18.        stu_address varchar200)

19.);

数据操作语言DML

数据操作语言有插入、删除和更新语句组成。

单行插入:

insert into 表名字段名,字段名,字段名..) values值,值,值..);

多行插入

insert into 表名字段名,字段名,字段名..)

values值,值,值..),值,值,值..),值,值,值..);

将一张表数据插入另一张表

insert into 表1字段名,字段名,字段名..)

select 字段名,字段名,字段名 from 表2;

删除所有数据

delete from 表名;

清空表

truncate table 表名;

带条件的删除

delete from 表名 [where 条件];

更新

update 表名 set 字段 = 值,字段 = 值… [where 条件];

代码示例:

20.– 插入一行学生记录

21.insert into tb_studentstu_name,stu_age,stu_gender,stu_address)

22.values'赵六',30,'男','上海');

23.– 插入多行学生

24.insert into tb_studentstu_name,stu_age,stu_gender,stu_address)

25.values'陈七',20,'男','武汉'),'陈大七',28,'男','上海'),'陈小七',18,'男','北京');

26.– 删除学号为3的学生

27.delete from tb_student where stu_id = 3;

28.– 全部删除

29.delete from tb_student;

30.– 清空表

31.truncate table tb_student;

32.– 更新陈七的年龄为23,性别为女

33.update tb_student set stu_age = 23,stu_gender = '女'

34.where stu_name = '陈七';

Published by

风君子

独自遨游何稽首 揭天掀地慰生平

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注