首页 > 数据库 >sql笔记

sql笔记

时间:2022-11-03 21:33:18浏览次数:33  
标签:-- 列名 sql 数据类型 笔记 表名 TABLE 数据库

1. 注释

  • 单行注释:"-- "注释内容或 "#"注释内容(MySQL特有)
  • 多行注释:/* 注释 */

1 DDL

操作数据库

  1. 查询
SHOW DATABASES;
  1. 创建

    • 创建数据库

      CREATE DATABASE 数据库名称;
      
    • 创建数据库(判断,如果不存在则创建)

      CREATE DATABASE IF NOT EXISTS 数据库名称;
      
  2. 删除

    • 删除数据库

      DROP DATABASE 数据库名称;
      
    • 删除数据库(判断,如果存在则删除)

      DROP DATABASE IF EXISTS 数据库名称;
      
  3. 使用数据库

    • 查看当前使用的数据库

      SELECT DATABASE();
      
    • 使用数据库

      USE 数据库名称;
      

操作表

  1. 查询表

    • SHOW TABLES;	-- 查询当前数据库下所有表名称
      
    • DESC 表;		-- 查询表结构
      SELECT * FROM 表;	-- 查询表中数据
      
  2. 创建表

    • CREATE TABLE 表名(
      	字段名1 数据类型,
          字段名2 数据类型,
          ...
      );
      
    • create table student(
      	id int,
      	name varchar(10),
      	gender char(1),
      	birthday date,
      	score double(5,2),
      	tel varchar(10)
      );
      
  3. 删除表

    • DROP TABLE 表名;
      DROP TABLE IF EXISTS 表名
      
  4. 修改表

    • ALTER TABLE 表名 ADD 列名 数据类型;		-- 添加一列
      ALTER TABLE 表名 RENAME TO 新的表名;	#修改表名
      ALTER TABLE 表名 MODIFY 列名 新数据类型;		#修改数据类型
      ALTER TABLE 表名 CHANGE 列名 新列名 新数据类型;		#修改列名和数据类型
      ALTER TABLE 表名 DROP 列名;		#删除列
      

2. DML

添加数据

-- 1. 给指定列添加数据
INSERT INTO 表名(列1,列2,...) VALUE(值1,值2,...);
-- 2. 批量添加数据
INSERT INTO 表名(列1,列2,...) VALUE(值1,值2,...),(值1,值2,...),(值1,值2,...);

修改数据

UPDATE 表名 SET 列名1=值1,列名2=值2,...[WHERE 条件];	-- 不加where则全部修改
例
UPDATE student set id=2 WHERE name='李四';

删除数据

DELETE FROM 表名 [WHERE 条件];

3.DQL

SELECT
	字段列表
FROM
表名
WHERE
	条件
GROUP BY
	分组字段
HAVING
	分组后条件
ORDER BY
	排序字段
LIMIT
	分页限定

基础查询

-- 1. 查询多个字段
SELECT 字段列表 FROM 表名;

-- 2. 去除重复记录
SELECT DISTINCT 字段列表 FROM 表名;

-- 3. 起别名
AS: AS 也可省略
select name as 名字, math 数学成绩 from student;

条件查询

SELECT 字段列表 FROM 表名 WHERE 条件;

排序查询

-- 1. 排序查询
SELECT 字段列表 FROM 表名 ORDER BY 排序字段名1 [排序方式1],排序字段名2 [排序方式2],...;

-- 排序方式:
-- ASC:升序(默认)
-- DESC:降序

select * from student order by age asc; 

分组查询

聚合函数

SELECT 函数名(列) FROM 表;

SELECT 字段列表 FROM 表名 [WHERE 分组前条件限定] GROUP BY [HAVING 分组后条件过滤];

分页查询

SELECT 字段列表 FROM 表名 LIMIT 起始索引(从0开始),查询条目数;
-- 起始索引=(当前页码-1)*每页显示的条目数

约束

-- 创建表时添加约束
CREATE TABLE 表名(
	字段名1 数据类型 NOT NULL,
    字段名2 数据类型 约束名称,
    ...
);
-- 添加约束
ALTER TABLE 表名 MODIFY 字段名 数据类型 NOT NULL;


-- 外键约束
CREATE TABLE 表名(
    [CONSTRAINT] [外键名称] FOREIGN KEY(外键列名) REFERENCES 主表(主表列名);
)
ALTER TABLE 表名 ADD CONSTRAINT 外键名称 FOREIGN KEY(外键列名) REFERENCES 主表(主表列名);
-- 删除
ALTER TABLE 表名 DROP FOREIGN KEY 外键名称;

多表查询

事务

-- 开启事务
START TRANSACTION; 	-- 或BEGIN;
-- 提交事务
COMMIT;
-- 回滚事务
ROLLBACK;

标签:--,列名,sql,数据类型,笔记,表名,TABLE,数据库
From: https://www.cnblogs.com/DLliang/p/16855896.html

相关文章

  • Java学习笔记day3--二维数组
    packageday4_array;importjavax.swing.plaf.synth.SynthFormattedTextFieldUI;//一维数组的元素仍然是一维数组,则构成了二维数组publicclassArrayDemension2{......
  • 英语学习笔记部分汇总——wsdchong
    英语学习笔记部分汇总回顾一下以前做的笔记。​​英语单词记忆以及句式记忆​​​​四级考试技巧​​内容有三:英语四级准备、英语思维、范文英语思维是我听网易云课堂的课的......
  • PostgreSQL中的伪内存表
    ToWALornottoWAL?和其他许多数据库一样,PostgreSQL允许某个表不记录日志,简而言之就是"把我排除在WAL日志之外!"。这样的表不是崩溃安全的,同样也不能复制,因为PostgreSQL......
  • 《前端技术架构与工程》之性能笔记
    《前端技术架构与工程》之性能前言:《前端技术架构与工程》这本书真的越看越有味。目前写了部分这本书的笔记,共分为三部分做笔记,已写了两篇如下。​​《前端技术架构与工程》......
  • 《前端技术架构与工程》之工程思维与服务支撑笔记
    《前端技术架构与工程》之工程思维与服务支撑前言:《前端技术架构与工程》这本书真的越看越有味。目前写了部分这本书的笔记,共分为三部分做笔记,已写了三篇如下。​​《前端技......
  • thinkpad笔记本电脑更换固态硬盘
    如果笔记本还是普通硬盘的话,运行速度会很慢。更换固态硬盘后速度会提高不少。1、购买适配自己电脑的固态硬盘,核对使用的接口,笔记本为E450,硬盘的接口为SATA3,所以要选择相应......
  • 第七课笔记
    sqrt()平方根函数使用需要引用<math,h>数学库函数c语言中的%-2d是printf()函数的输出格式中的%abf.表示将数字按宽度为2,采用左对齐,正号为右对齐输出,若数据不足2位,则补空格。go......
  • 计算机组成原理存储系统的简单笔记(思维导图)
    计算机组成原理存储系统的简单笔记(思维导图)前言今天写了一些数据结构的笔记,于是决定顺便把计算机组成原理的存储器部分回顾一下。因为在数据结构的第二部分线性表的顺序结构......
  • SYSU-SSE 3D游戏编程与设计 学习笔记(3)--游戏对象与图形基础
    前言中山大学软件工程学院3D游戏编程与设计课程学习记录博客游戏代码:游戏代码基本操作演练在AssetStore上下载一个天空盒资源并在PackageManager导入在......
  • 11.3 论文学习笔记
      这周看了一篇论文,该篇论文发自2022的coling,论文的题目为:ArgLegalSumm:ImprovingAbstractiveSummarizationofLegal DocumentswithArgumentMining,即利用论点......