数据库基本操作语法归纳总结

关系型数据库:以表作为实体,以主键和外键关系作为联系的一种数据结构。

主键:在关系型数据库中,用一个唯一的标识符来标志每一行,这个标识符就是主键。主键有两个特点:非空和不能重复。

外键:在关系型数据库中,外键就是用来表达表与表之间的关系、联系,通过主外键关系,建立实体之间的联系。

表之间的三种基本关系模型:

① 一对多关系: 一条主表记录对应多条从表记录,一条从表记录对应一条主表记录。

② 一对一关系: 一条主表记录对应一条从表记录,一条从表记录对应一条主表记录。

③ 多对多关系: 一条主表记录对应多条从表记录,一条从表记录对应多条主表记录。

关系型数据库管理系统(DBMS):

关系型数据库只是一个保存数据的容器,大多数数据库依靠一个称为数据库管理系统(DBMS)的软件来管理数据库中的数据。

目前流行的关系型数据库服务器管理系统有:

① 微软的MS SQL Server

② 甲骨文的Oracle

③ IBM公司的DB2

④ 开源数据库的MySQL、PostgreSQL

SQL:

SQL是结构化查询语言,是一种用于管理关系型数据库,并与数据库中的数据进行通讯的计算机语言。

SQL语句:

     ① 数据定义语言(DDL): 用于创建、修改和删除数据库内的数据结构。

-- 创建数据库db
CREATE DATABASE db;
-- 删除数据库db
DROP DATABASE db;
-- 建立表t_student
CREATE TABLE t_student(
 -- PRIMARY KEY标志该列为主键列
 -- AUTO_INCREMENT设置自动增长列,该列的值由DBMS分配,不用开发者维护
 id INT PRIMARY KEY AUTO_INCREMENT,-- 编号
 studentName VARCHAR(20),-- 姓名,20表示名字20个字
 sex ENUM('男','女'),-- 性别,enum表示枚举
 birthday DATE, -- 生日
 tel VARCHAR(11) -- 电话
);

 ② 数据查询语言(DQL):用于数据库中数据的查询 

-- 查询所有的性别 DISTINCT表示去除重复的列

SELECT DISTINCT sex FROM t_student;

-- 查询表中所有的数据,*表示查询表中所有的列
SELECT * FROM t_student;

-- 查询第一条 开始的数据,显示3条记录
SELECT * FROM t_student LIMIT 0,3;

③ 数据操作语言(DML): 用于修改数据库中的数据,包括插入、更新和删除数据

-- 添加记录
INSERT INTO t_student(studentName,sex,birthday,tel)
VALUES('张三','男','1983-09-30','13987879898');

-- 删除id为17的记录
DELETE FROM t_student WHERE id=17;

-- 修改李四的电话
UPDATE t_student SET tel='13966666666' WHERE studentName='李四';

④ 数据控制语言(DCL):控制数据库访问权限

-- 给用户授予访问权限的GRANT语句

 -- 取消用户访问权限的REVOKE语句

 外键约束:

外键:是指从表的某列与主键的某列存在依附关系。

外键约束:是指在外键关联主键上强制加上一个约束,如果违反该约束,则不允许该条数据的修改。

注意:没有建立外键约束不等于没有外键。

主键约束:

主键是表中的一到多个列,主键列不能为空,也不能重复,一个表中只能由一个主键。

聚合函数:

对一组数据进行统计分析是使用聚合函数来实现的。常见聚合函数如下:

COUNT:统计行数量。

SUM:获取单个列的和计量。

AVG:计算某个列的平均值。

MAX:计算某个列的最大值。

MIN:计算某个列的最小值。

SQL语句的执行顺序:

第一步:执行FROM

第二步:where条件过滤

第三步:GROUP BY分组

第四步:执行select投影列

第五步:HAVING条件过滤

第六步:执行ORDER BY排序语句,默认为asc升序,DESC为降序。

联接:

内联接和外联接的区别:

内联接:只能查询两个表中都有的相关数据的记录;

外连接:可以查询一个表中所有的记录,无论该记录是否有关联数据。

CREATE TABLE t_man(
 id INT PRIMARY KEY AUTO_INCREMENT,
 manName VARCHAR(20),
 birthday DATE
);
INSERT INTO t_man(manName,birthday)
VALUES('张三','1980-02-03'),('李四','1994-01-05'),
  ('王五','1991-07-30'),('赵六','1995-11-18');
SELECT * FROM t_man;

 CREATE TABLE t_bike(
 id INT PRIMARY KEY AUTO_INCREMENT,
 bikeType VARCHAR(20),
 money INT,
 manId INT
 );

 -- 添加外键约束,让主键和外键一一对应,防止垃圾数据的产生
 ALTER TABLE t_bike ADD CONSTRAINT fk_mb FOREIGN KEY (manId)
 REFERENCES t_man(id);

 INSERT INTO t_bike(bikeType,money,manId)
 VALUES('凤凰',400,1),('永久',500,1),('火麒麟',250,1),
  ('大运',1000,2),('夏力',600,2),('捷安特',1200,3),
  ('摩拜',200,3),('宝马',2000,3),('奔驰',600,3);

 -- 查询所有自行车,并显示该自行车的主人姓名
 SELECT b.*,m.manName FROM t_bike b JOIN t_man m ON m.id=b.manId;

 -- 查询李四所有的自行车(内连接:显示两个表中有联系的数据)
 SELECT b.* ,m.manName FROM t_bike b JOIN t_man m ON m.id=b.manId WHERE m.manName='李四';
 SELECT b.* ,m.manName FROM t_man m JOIN t_bike b ON m.id=b.manId WHERE m.manName='李四';

 SELECT b.* FROM t_bike b,t_man m WHERE b.manId=m.id AND m.manName='李四';

 -- 显示所有用户的自行车信息,外连接不能用,加where的形式来写
 -- 外连接:RIGHT 右外连接,包含右边表中所有的信息,left 左外连接,包含左边表中所有的信息。
 SELECT m.*,b.bikeType,b.money FROM t_bike b RIGHT JOIN t_man m ON b.manId=m.id;

 -- 显示所有用户自行车的数量
 -- 左外连接
 SELECT m.*,COUNT(bikeType) num FROM t_man m LEFT JOIN t_bike b ON m.id=b.manId GROUP BY m.id;
 -- 右外连接
 SELECT m.*, COUNT(bikeType) number FROM t_bike b RIGHT JOIN t_man m ON b.manId=m.id GROUP BY m.id;

希望本篇文章对您有所帮助

(0)

相关推荐

  • sqlServer 数据库语法大全

    --数据操作SELECT --从数据库表中检索数据行和列INSERT --向数据库表添加新数据行DELETE --从数据库表中删除数据行UPDATE --更新数据库表中的数据--数据定义CREATE TABLE --创建一个数据库表DROP TABLE --从数据库中删除表ALTER TABLE --修改数据库表结构CREATE VIEW --创建一个视图DROP VIEW --从数据库中删除视图CREATE INDEX --为数据库表创建一个索引DROP INDEX --从数据库中删除索引CR

  • ASP连接11种数据库语法总结

    经常使用到有关数据库的操作.包括连接代码.SQL命令等等,又不曾刻意去记忆它们(我本人是不愿意去记这东东),所以常常在用到的时候又去查书本,翻来翻去.一些比较少用的数据库还不一定能顺利找到,所以现在把它们全归纳到这里,提供大家参考.<一>数据库的连接方法: 1.Access数据库的DSN-less连接方法: set adocon=Server.Createobject("adodb.connection") adoconn.Open"Driver={Microso

  • Yii2框架数据库简单的增删改查语法小结

    User::find()->all(); //返回所有用户数据: User::findOne($id); //返回 主键 id=1 的一条数据: User::find()->where(['name' => 'ttt'])->one(); //返回 ['name' => 'ttt'] 的一条数据: User::find()->where(['name' => 'ttt'])->all(); //返回 ['name' => 'ttt'] 的所有数据: U

  • 数据库基本操作语法归纳总结

    关系型数据库:以表作为实体,以主键和外键关系作为联系的一种数据结构. 主键:在关系型数据库中,用一个唯一的标识符来标志每一行,这个标识符就是主键.主键有两个特点:非空和不能重复. 外键:在关系型数据库中,外键就是用来表达表与表之间的关系.联系,通过主外键关系,建立实体之间的联系. 表之间的三种基本关系模型: ① 一对多关系: 一条主表记录对应多条从表记录,一条从表记录对应一条主表记录. ② 一对一关系: 一条主表记录对应一条从表记录,一条从表记录对应一条主表记录. ③ 多对多关系: 一条主表记录

  • oracle数据库在客户端建立dblink语法

    oracle服务器没有建立目标数据库的TNS时,在客户端(有权限的情况下)建立dblink语法如下: 复制代码 代码如下: create database link dblink_name connect to user_name identified by user_psw using '(DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = xxx.xx.xxx.xx)(PORT = 1521)) ) (CONNEC

  • MySQL学习第五天 MySQL数据库基本操作

    本文针对MySQL数据库基本操作进行学习研究,需要了解的朋友不要错过这篇文章. 以下均是在Windows 64位操作系统下的命令行使用. 学习之前我们先来解释一下MySQL语法格式中的一些符号代表的含义: (1)中括号([])表示存在或者不存在都可以,是可选参数.比如:SHOW {DATABASES | SCHEMAS} [LIKE 'pattern' | WHERE expr];此语法格式中的[]括起来的内容是可以不加的. (2)大括号({})表示命令中必须出现,是必选参数.  比如:CREA

  • 详解Spring Boot实战之Rest接口开发及数据库基本操作

    本文介绍了Spring Boot实战之Rest接口开发及数据库基本操作,分享给大家 1.修改pom.xml,添加依赖库,本文使用的是mysql <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-jpa</artifactId> </dependency> <dependency> <

  • CodeIgniter框架数据库基本操作示例

    本文实例讲述了CodeIgniter框架数据库基本操作.分享给大家供大家参考,具体如下: 现在开始,首先现在CI框架到自己的服务器目录下并配置config/config.php $config['base_url'] = 'http://localhost:90/CI/'; 接着下来配置数据库在config/databases.php我做练习配置如下 $db['default']['hostname'] = 'localhost'; $db['default']['username'] = 'r

  • Python连接Postgres/Mysql/Mongo数据库基本操作大全

    目录 1.连接PG库 2.连接MySQL 2.1 连接数据库 2.2 创建数据库和表 2.3 插入数据 2.4 数据库查询操作 2.5 数据库更新操作 2.6 删除数据操作 3.连接Mongo库 3.1 判读库是否存在 3.2 创建集合(表) 3.3 插入集合 3.4 返回 _id 字段 3.5 插入多个文档 3.6 插入指定 _id 的多个文档 3.7 查询一条数据 3.8 查询集合中所有数据 3.9 查询指定字段的数据 3.10 根据指定条件查询 3.11 高级查询 3.12 使用正则表达式

  • mysql数据库基本语法及操作大全

    mysql数据库基本语法 DDL操作 创建数据库 语法:create database 数据库名: 查看所有数据库 语法:show databases; 切换(使用)数据库 语法:use + 数据库名; 创建一个表 语法:create table 表名( 字段名称1 字段类型, 字段名称2 字段类型, 字段名称3 字段类型, -- -- ): 查看数据库中所有表 语法: Show tables; 查看表的结构 语法:desc 表名: 添加字段 语法:alter table 表名 add 字段名

  • Python MySQL数据库基本操作及项目示例详解

    目录 一.数据库基础用法 二.项目:银行管理系统 1.进行初始化操作 2.登录检查,并选择操作 3.加入查询功能 4.加入取钱功能 5.加入存钱功能 一.数据库基础用法 要先配置环境变量,然后cmd安装:pip install pymysql 1.连接MySQL,并创建wzg库 #引入decimal模块 import pymysql #连接数据库 db=pymysql.connect(host='localhost',user='root',password='1234',charset='ut

  • Golang连接并操作PostgreSQL数据库基本操作

    目录 前言: 连接数据库 sql.DB 增删改查 插入数据 更新数据 查询数据 删除数据 总结 前言: 本篇文章对如何使用golang连接并操作postgre数据库进行了简要说明.文中使用到的主要工具:DBeaver21.VSCode,Golang1.17. 以用户,文章,评论三个表作为例子,下面是数据库建表sql: CREATE TABLE public.user_info ( u_id serial4 NOT NULL, user_name varchar NULL, create_time

  • SQL Server 数据库基本操作语句总结

    复制代码 代码如下: --sql基本操作 --创建数据库 create database Studets --创建表 create table student ( sno char(5), sname char(20), ssex char(2), sage smallint, sdept char(15) ) create table course ( cno char(3), cname char(30), cpno char(3), ccredit smallint ) create ta

  • PHP学习笔记之三 数据库基本操作

    下面是在Linux上登录mysql,创建数据库和创建表的过程. yin@yin-Ubuntu10:~$ mysql -u root -p Enter password: Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 360 Server version: 5.1.41-3ubuntu12.1 (Ubuntu) Type 'help;' or '\h' for help. T

随机推荐