SQL语言

godfather 2020-06-03

SQL语言

有国际标准,各个产品各有各的语法特点
针对关系型数据库的一种操作语言

关系型数据库的常见组件

  • 数据库:database
  • 表:table,行:row 列:column 表是核心内容
  • 索引:index
  • 视图:view
  • 用户:user
  • 权限:privilege
  • 存储过程:procedure
  • 存储函数:function
  • 触发器:trigger
  • 事件调度器:event scheduler,任务计划

SQL语言的兴起与语法标准

20世纪70年代源于IBM,用于DB2
1981年
1987年 ISO将SQL作为国际标准

SQL语言规范

  • 在数据库系统中,SQL语句不区分大小写(建议用大写)
  • SQL语句可单行或多行书写,以“;”结尾
  • 关键词不能跨多行或简写
  • 用空格和缩进来提高语句的可读性
  • 子句通常位于独立行,便于编辑,提高可读性
  • 注释:
    • SQL标准:
    1. -- 注释内容 单行注释,注意有空格 SQL规范的注释
    2. /注释内容/ 多行注释
    3. MySQL注释: # MySQL自身规范

数据库对象和命名

  • 数据库的组件(对象):
    • 数据库、表、索引、视图、用户、存储过程、函数、触发器、事件调度器等
  • 命名规则:
    • 必须以字母开头,可包括数字和三个特殊字符(# _ $)
    • 不要使用MySQL的保留字 有很多是有含义的关键字
    • 同一database(Schema)下的对象不能同名

SQL语句分类

定操查控

  • DDL: Data Defination Language 数据定义语言 创丢
    CREATE,DROP,ALTER
  • DML: Data Manipulation Language 数据操纵语言 增删改
    INSERT,DELETE,UPDATE
  • DQL:Data Query Language 数据查询语言 查询
    SELECT
  • DCL:Data Control Language 数据控制语言
    GRANT,REVOKE,COMMIT,ROLLBACK

软件开发:CRUD 对应 增删改查

SQL语句构成

关健字Keyword组成子句clause,多条clause组成语句
示例:

SELECT * #SELECT子句
FROM products #FROM子句
WHERE price>400 #WHERE子句

说明:一组SQL语句,由三个子句构成,SELECT,FROM和WHERE是关键字数据库操作
获取SQL 命令使用帮助:

mysql> HELP KEYWORD

字符集和排序

建议上来直接改UTF8
从MySQL8.0开始默认字符集已经为utf8mb4
创建库的时候直接指定字符集

  • 查看支持所有字符集:
SHOW CHARACTER SET;
  • 查看支持所有排序规则:
SHOW COLLATION;

设置服务器默认的字符集

vim /etc/my.cnf
[mysqld]
character-set-server=utf8mb4

管理数据库

创建数据库

CREATE DATABASE|SCHEMA [IF NOT EXISTS] ‘DB_NAME‘
CHARACTER SET ‘character set name’
COLLATE ‘collate name‘;

未完待续……

相关推荐