SQL

SQL

什么是SQL

  1. Structured Query Language : 结构化查询语句
  2. 定义了操作所有关系型数据库的规则
  3. 每一种数据库操作方式存在差异 -> 方言

SQL通用语法

  1. SQL 语句可以单行或多行书写, 以分号结尾
  2. 使用空格 或 制表符 增强可读性
  3. 数据库不区分大小写, 建议关键期使用大写
  4. 3 种注释:
    • 单行注释: * 注释内容
    • 注释内容: -- 或 # 注释内容
    • 多行注释:/* 注释内容 */

SQL 分类

1.DDL (Data Definition Language) 数据库定义语言:

  • 用来定义数据库对象: 数据库, 表, 列等.
  • 关键字: CREATE, DROP. ALTER 等
1.1操作数据库: CRUD
  1. C(CREATE): 创建
  • 创建数据库 -> CREATE DATABASE 数据库名称;
    • 指定字符集 -> SET CHARACTER 字符集;
    • 判断数据库是否存在 -> if not EXISTS 数据库名;
      • 创建数据库, 判断是否存在, 并指定字符集 -> CREATE DATABASE if not EXISTS 数据库名称 SET character 字符集;
  1. R(RETRIEVE): 查询
  • 查询所有数据库的名称 -> SHOW DATABASES;
  • 查看某个数据库的创建信息 -> SHOW CREATE DATABASE 数据库名称;
  1. U(UPDATE):修改
    • 修改数据库的字符集 -> ALTER DATABASE ~~数据库名称~~ CHARACTER SET ~~字符集~~;
  2. D(DELETE):删除
  • 删除数据库 -> DROP DATABASE ~~数据库名称~~
    • 判断是否存在, 删除 -> DROP DATABASE if EXISTS ~~数据库名称~~
  1. 使用数据库
  • 查询当前正在使用的数据库名称 -> SELECT DATABASE();
  • 使用数据库 -> USE ~~数据库名称~~;
1.2操作表
  1. C(CREATE): 创建
    • CREATE TABLE ~~表名~~( 列名1 数据类型1, 列名2 数据类型2, ... 列名n 数据类型n );
    • 数据类型
      1. int - 整数类型
      2. double(len, save) - 小数类型(长度, 精度)
      3. 日期类型
        • DATE - 只包含年月日, yyyy-MM-dd
        • DATETIME - 年月日时分秒(yyyy-MM-dd HH:mm:ss)
        • TIMESTAMP - 时间错类型: 年月日时分秒(yyyy-MM-dd HH:mm:ss)
          • 如果没有赋值,或赋值为null,则默认使用当前系统时间来自动赋值
      4. varchar(len) - 字符串类型(字符长度) 汉字为两个字符
    • 复制表 -> CREATE TABLE ~~表名~~ LIKE ~~复制目标名~~;
    • 创建学生表:
    CREATE TABLE student(
    -> id INT,
    -> name VARCHAR(32),
    -> age INT,
    -> score DOUBLE(4,1),
    -> brithday DATE,
    -> insert_time TIMESTAMP(0) DEFAULT(CURRENT_TIMESTAMP(0))
    -> );
    
  2. R(RETRIEVE): 查询
    • 查询某个数据库中所有表的名 -> SHOW TABLES;
    • 查询表结构 -> DESC ~~表名~~;
  3. U(UPDATE):修改
    • 修改表名 -> ALTER TABLE ~~表名~~ RENAME TO ~~新表名~~;
    • 修改表字符集 -> ALTER TABLE ~~表名~~ CHARACTER SET ~~字符集~~;
    • 添加列 -> ALTER TBALE ~~表名~~ ADD ~~列名~~ ~~数据类型~~;
    • 修改列名 / 类型
      *ALTER TABLE ~~表名~~ CHANGE ~~列名~~ ~~新列名~~ ~~新数据类型~~;
      • ALTER TABLE ~~表名~~ MODIFY ~~列名~~ ~~新数据类型~~;
    • 删除列 -> ALTER TABLE ~~表名~~ DROP ~~列名~~;
  4. D(DELETE):删除
    • 删除表 -> DROP TABLE ~~表名~~;
    • 删除列 -> ALTER TABLE ~~表名~~ DROP ~~列名~~;
    • 删除表并创建一样的空表 ->TRUNCATE TABLE ~~表名~~;

2.DML (Data Manipulation Language) 数据库操作语言:

  • 用来对数据库中的表的数据进行增删改
  • 关键字: INSERT, DELETE, UPDATE
  1. 添加数据
    • 语法 -> INSERT INTO ~~表名~~(列名1,列名2,...,列名n) VALUES(值1,指2,...,值n);
      • 注意:
        1. 列名和值要对应
        2. 如果表名后, 不定义列名, 则默认给所有列添加值
        3. 除了数字类型, 其它类型需要使用引号
  2. 删除数据
    • 语法 -> DELETE FROM ~~表名~~ [WHERE ~~条件~~];
  3. 修改数据
    • UPDATE ~~表名~~ SET 列名1=值1,列名2=值2,...,列名n=值n [WHERE 条件];

3.DQL (Data Query Language) 数据库查询语句:

  • 用来查询数据库中的表的记录 (数据)
  • 关键字: SELECT, WHERE
  • 详细看目录
  1. 查询表中的记录
    • SELECT * FROM ~~表名~~;

4.DCL (Data Control Language) 数据库控制语言:

  • 用来定义数据库的访问权限和安全级别, 及创建用户
  • 关键字: GRANT, REVOKE
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值