MySQL数据库及常用SQL语言

您所在的位置:网站首页 mysql数据操作语言 MySQL数据库及常用SQL语言

MySQL数据库及常用SQL语言

2023-07-23 02:13| 来源: 网络整理| 查看: 265

数据库分为关系型数据库和非关系型数据库,我们要学的MySQL数据库是关系型数据库。

SQL语言:结构化查询语言(Structured Query Language)

结构化查询语言是关系型数据库标准语言,其特点是:简单,灵活,功能强大。

SQL包含6个部分:

数据查询语言(DQL): 其语句,也称为“数据检索语句”,用以从表中获得数据,确定数据怎样在应用程序给出。保留字SELECT是DQL(也是所有SQL)用得最多的动词,其他DQL常用的保留字有WHERE,ORDER BY,GROUP BY和HAVING。这些DQL保留字常与其他类型的SQL语句一起使用。数据操作语言(DML): 其语句包括动词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用于对一个或多个表单独行的操作。

我们使用过程中主要使用数据查询语言(DQL)数据定义语言(DDL)和数据操作语言(DML)

1、数据定义语言DDL(Data Definition Language)

对象:数据库和表

关键字:create、alter、drop、truncate(删除当前表再新建一个一模一样的表结构)

创建数据库:create database 库名;

删除数据库:drop database 库名;

切换数据库:use 库名;

创建表:create table 表名(       字段名 类型(大小) 关系描述);

查看数据库里存在的表:show tables;

修改表:alter table 表名 约束;

删除表:drop table 表名 ;

查看生成表的sql语句:show create table 表名 ;

查看表结构:desc 表名;

例:

#注意在MySQL数据库里写可以不带";",但是在DOS命令下写必须带。 create database school; #建库 drop database school; #删库 use school; #用库 create table student( #建表 id int(4) primary key auto_increment, name varchar(20), socre int(3), ); show tables; alter table student rename studentplus; #修改表名 rename alter table student add password varchar(20); #添加字段 add alter table student change password pwd varchar(20); alter table student modify pwd int; alter table student drop pwd; drop table student; show create table student; desc student; 2、数据操纵语言DML(Data Manipulation Language)

对象:纪录(行)

关键词:insert、update 、delete

插入:insert into 表名 values(全属性); (插入所有的字段)

insert into 表名(属性1,属性2) values (属性1,属性2); (插入指定的字段)

更新:update 表名 set 属性1 = ‘值’,属性2= ‘值’ where 主键(通常) = 值;

删除:delete from 表名 where 主键(通常) = 值;

注意: truncate和delete的区别:truncate是删除表,再重新创建这个表。属于DDL,delete是一条一条删除表中的数据,属于DML。

insert into student values(01,'Tonny',90); insert into student(name,score) values ('Keby',98),('somenne',78); update student set name = 'Tonn',score = '99' where id = 01; delete from student where id = 01; 3、数据查询语言DQL(Data Query Language) select ... from student where 条件 group by 分组字段 having 条件 order by 排序字段 #最复杂不过如此

执行顺序:from --> where --> group by --> having --> order by

3.1、条件查询

简单条件运算符:> < = != >= 1; SELECT * FROM `student` WHERE name like '%on%'; #模糊查询 select count(id) from student; # 综合 SELECT *,AVG(score) FROM `student` WHERE id > 1 GROUP BY id HAVING AVG(score)>20 ORDER BY id DESC; 4、高级查询 4.1、嵌套查询

嵌套查询也叫子查询,是把内层的查询结果作为外层的查询条件,并且可以多层嵌套。

语法格式:

select 字段名列表 from 表名 where 字段名 运算符(select 字段名 from 表名 where 条件) # select * ...就是查询全部

**注意:**外层的where的条件必须和内层的select查询的字段名一样,个数也一样。

4.2、多表查询

语法格式:

select 字段名列表 from 表一,表二 where 条件;

但是这种查询,很容易出现笛卡尔积,为了避免,我们可以将条件尽量细致化。

笛卡尔积 1.什么是笛卡尔积:两个集合的乘积,产生一个 新的集合。表示两个集合所有的可能的组合情况 2.笛卡尔积和关系:笛卡尔积中,去掉没有意义 或不存在的组合,就是关系(规范的二维表)

笛卡尔积的匹配规则(面试常考点): 记录多的表的每一天记录,去匹配另一张表的所有记录。两张表的记录条数相同时,则后表的每一条记录去匹配前表。 4.3、连接查询 内连接 inner join外连接 1>. 左连接 left join 2>. 右连接 right join

语法格式:

select 字段名列表 from 表1 连接方式 join 表2 on 表1.字段=表2.字段;

左连接:left join( 以左表为基准,匹配右表的所有内容,不够的显示NULL ) 右连接:right join(以右表为基准,去匹配左表的内容,不够的显示NULL )

4.4、联合查询

联合查询是可合并多个相似的选择查询的结果集。等同于将一个表追加到另一个表,从而实现将两个表的查询组合在一起,使用为此为UNINO或UNION ALL

联合查询:将多个查询的结果合并到一起(纵向合并):字段数不变,多个查询的记录数合并.

select 语句1 union[union 选项] select 语句2 union|[union 选项] select 语句n //all:表示无论重复都输出 //distinct: 去重(整个重复)(默认的) select *from addr union all select *from addr;


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3