数据库组件:

  数据库:database
  表: table
  索引:index
  视图:view
  用户:user
  权限:privileges
  存储过程:procedure
  存储函数:function
  触发器:trigger
  事件调度器:event scheduler

DDL:Data Defination Language,数据定义语言

CREATE, DROP, ALTER

DML: Data Manipulation Language,数据操作语言

INSERT, DELETE, UPDATE, SELECT

DCL: Data Control Language,数据控制语言

GRANT, REVOKE

数据类型:  

   字符:
     定长字符:CHAR(#)不区分大小写, CHARBINARY(#)区分大小写
     变长字符: VARCHAR(#)不区分大小写, VARCHARBINARY(#)区分大小写  
     内建类型:ENUM, SET          
     对象存储:
       TEXT:不区分字符大小写,最大可达到4G
       BLOB: 区分字符大小写
   数值型
精确数值型
整型: int
  tinyint:1byte
  smallint: 2bytes
mediumint:3bytes
int: 4bytes
bigint: 8bytes
十进制: decimal
近似数值型
单精度浮点型
float
双精度浮点型
double
   日期时间型:
日期: DATA
时间: TIME
日期时间:DATETIME
时间戳: TIMESTAMP
年份: YEAR(), YEAR()
   修饰符:
   所有类型使用:
   NOT NULL
   DEFAULT
   PRIMARY KEY
   UNIQUE KEY
  数值型使用:
   UNSIGNED
   AUTO_INCREMENT

DDL: CREATE、DROP、ALTER

  数据库:  

  创建数据库:CREATE DATABASE|SCHMA [IF NOT EXISTS]'DB_NAME';
    # CREATE DATABASE test CHARACTER SET = utf8;
  删除数据库:DROP DATABASE|SCHEMA [IF EXISTX] 'DB_NAME';  
        # DROP DATABASE [IF EXISTS] test;
    设置字符集:  CHARACTER SET [=] 'character set name'
    设置排序规则: COLLATE 'collate name'
    查看支持的所有字符集: SHOW CHARACTER SET;
    查看支持的所有排序规则:SHOW COLLATIONS;
  
    获取命令使用帮助:
      msyql> HELP KEYWORD;
    查看数据库:SHOW DATABASES;
    查看数据库创建命令: SHOW CREATE DATABASE test \G

  表: 

创建表:CREATE TABLE [IF NOT EXISTS] 'tb_name' (col type1,col type2...)
  表选项:
    设置存储引擎: ENGINE [=] engine_name
    指明行格式: ROW_FORMAT [=] {DEFAULT|DYNAMIC|FIXED|COMPRESSE|REDUNANT|COMPACT}
    查看存储引擎: SHOW ENGINES;
  获取帮助:
   mysql> HELP CREATE TABLE
  查看表创建命令:SHOW CREATE TABLE table_name;或 SHOW CREATE TABLE table_name \G
  查看表状态:  SHOW TABLE STATUS LIKE 'table_name'\G
  # CREATE TABLE students (id int(10) UNSIGNED NOT NULL PRIMARY KEY,name VARCHAR(20) NOT NULL,age TINYINT(3) UNSIGNED);
  # CREATE TABLE students2 (id int(10) UNSIGNED NOT NULL,name VARCHAR(20) NOT NULL,age TINYINT(3) UNSIGNED,PRIMARY KEY(id,name));
    # 描述表结构: DESC student;
删除表: DROP TABLE [IF EXISTS] 'tbl_name';
    # DROP TABLE [IF EXISTS] students;
修改表:ALTER TABLE 'tbl_name'
    字段:
      添加字段: add
        Add col1 data_type [FIRST|AFTER col_name]
          # ALTER TABLE 'user' ADD gender ENUM('m','f');
      删除字段:drop
          # ALTER TABLE students DROP gender;
      修改字段:
        修改字段名称:change  
          # ALTER TABLE students CHANGE id sid int UNSIGNED NOT NULL;
        修改字段属性定义: modify
          # ALTER TABLE students MODIFY sid tinyint UNSIGNED NOT NULL;
        修改字段默认值: alter
          # ALTER TABLE students ALTER gender SET DEFAULT 'm';
    索引:实际应用中不建议修改索引
      添加索引:add
        # ALTER TABLE students ADD UNIQUE KEY(name);  
        # ALTER TABLE students ADD INDEX(age);
      删除索引:drop
        # ALTER TABLE students DROP age;
      
    表选项:

  索引:特殊数据结构,定义在查找时作为查找条件的字段

创建索引: CREATE INDEX index_name ON tbl_name(index_col_name,...);
删除索引: DROP INDEX index_name ON tbl_name;
查看表上的索引:SHOW INDEXES FROM [db_name.]tbl_name;
        # SHOW INDEXES FROM test.students;

DML: INSERT、DELETE、SELECT、UPDATE

  INSERT INTO: 

  INSERT [INTO] tbl_name [(col1,col2,...)] { VALUES | VALUE } (VAL1,...),(...)...
   # INSERT INTO students VALUES(1,'alen','m'),(2,'张三','f');

  SELECT:

  SELECT col1,col2,... FROM tbl_name [WHERE clause][ORDER BY 'col_name'][LIMIT [m,]n]
    字段表示法:
      *:所有字段
      as: 字段别名,col1 AS alias1;

  DELETE:

  DELETE FROM tbl_name [WHERE clause] [ORDER BY 'col_name' [DESC]] [LIMIT [m,]n];

  UPDATE:

  UPDATE tbl_name SET col1=new_val1, col2=new_val2,..[WHERE clause] [ORDER BY 'col_name' [DESC]] [limit [m,]n];

DCL: GRANT、REVOKE

用户账号及权限管理:

  用户账号:'user'@'host'   

    user:用户名
    host: 此用户访问mysqld服务时允许通过哪些主机远程创建连接
      IP、网络地址、主机名、通配符(%和_)
    禁止检查主机名:
      my.cnf--> skip_name_resolve = yes

  创建用户账号: 

  CREATE USER 'username'@'host' [IDENTIFIED BY 'password']
   # CREATE USER 'wpuser'@'%' IDENTIFIED BY 'wppassword';
   # SELECT User,Host,Password FORM user;

  删除用户: 

  DROP USER 'username'@'host';
    # DROP USER 'wpuser'@'host';

  授权:

    授权级别: 管理权限、数据库、表、字段、存储例程   

   GRANT pri_type,... ON [object_type] db_name.tb_name TO 'user'@'host' [IDENTIFIED BY 'password'] [WITH GRANT OPTION];
      priv_type: ALL [PRIVILEGES]
      db_name.tb_name;
*.*: 指定库的所有表;
         db_name.*:指定库的所有表;
db_name.tb_name: 指定库的指定表;
db_name.routeine_name:指定库的存储例程;

   查看指定用户获得的授权:  

   SHOW GRANTS FOR 'root'@'localhost';
  # SHOW GRANTS FOR 'wpuser'@'%';
  # SHOW GRANTS FOR CURRENT_USER;

  回收授权: 

   REVOKE priv_type,... ON db_name.tb_name FROM 'user'@'host';
      # USE mysql;
      # REVOKE DELETE ON test.* FROM 'wpuser'@'%';
      # SHOW GRANTS FOR 'wpuser'@'%';

  Note: MariaDB服务器进程启动时会读取mysql库中的所有授权表至内存中;
    1. GRANT或REVOKE等执行权限操作会保存于表中,MariaDB的服务进程会自动重读授权表;
    2.对于不能够或不能及时重读授权表的命令,可手动让MariaDB的服务进程重读授权表
      # FLUSH PRIVILEGES

  


MariaDB之SQL语句基础的更多相关文章

  1. SQL语句基础之 单表查找

    Sql语句之 单表查询 一.一般查询 1.查看表中的所有记录 以及 所有字段(属性) 语句 : select * from student; 2.只查看某些字段 语句:select sname,sex ...

  2. 精妙SQL语句 基础

    精妙SQL语句SQL语句先前写的时候,很容易把一些特殊的用法忘记,我特此整理了一下SQL语句操作,方便自己写SQL时方便一点,想贴上来,一起看看,同时希望大家能共同多多提意见,也给我留一些更好的佳句, ...

  3. Sql语句基础练习(一)

    1.求1号课成绩大于80分的学生的学号及成绩,并按成绩由高到低列出.(表名:成绩表.字段名:课号,学号,成绩.) SELECT 学号,成绩 FROM 成绩表 WHERE 课号=1 AND 成绩> ...

  4. Oracle PL/SQL语句基础学习笔记(上)

    PL/SQL是ORACLE对标准数据库语言的扩展,ORACLE公司已经将PL/SQL整合到ORACLE server和其它工具中了,近几年中很多其它的开发者和DBA開始使用PL/SQL,本文将讲述PL ...

  5. MySQL数据库:SQL语句基础、库操作、表操作、数据类型、约束条件、表之间的关系

    数据库相关概念: 1. 数据库服务器:运行数据库管理软件的计算机 2. 数据库管理软件:MySQL.Oracle.db2.slqserver 3. 库:文件夹,用来组织文件/表 4. 表:文件(类似于 ...

  6. 【MySQL】SQL语句基础

    一.操作数据库 1.1 创建数据库 1.2 查看数据库 1.3 修改数据库 1.4 删除数据库 1.5 选择数据库 二.操作表 2.1 创建表 2.2 查看表 2.3 修改表 2.4 删除表 三.操作 ...

  7. SQL语句基础知识

    1.关于SQL语句中exists与not exists的问题 course表如下:课程代号 课程名称 K01 奥运会主题曲 K02 喜爱的专辑 K03 VB技术大全 K04 经典歌曲 K05 个人单曲 ...

  8. SQL语句基础之 管理数据库,表 和 数据

    MySQL中的基本sql语句 MySQL中主要有三个大的对象,第一个是数据库,有了数据库后,我们才能在数据库里面建表,因为Mysql是关系数据库,它的数据都会以记录的形式存到表里,所以第二个是表,然后 ...

  9. sql语句基础

    数据库库(DataBase):就是一个存储数据的仓库.为了方便数据的存储和管理,它将数据按照特定的规律存储在磁盘上.通过数据库管理系统,可以有效的组织和管理存储在数据库中的数据.SQL(Structu ...

随机推荐

  1. HDU1576(扩展欧几里得)

    A/B Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submiss ...

  2. CSS3新特性详解

    本文讲解CSS3相关实用知识点 CSS3相关实用知识点目录 边框设置 颜色设置 背景设置 渐变使用 超出文本设置 阴影设置 CSS3变换设置 过渡设置 动画设置 多列布局 BoxSizing设置 弹性 ...

  3. spring bean管理

    轻量级,无侵入 Bean管理 1 创建applicationContext.xml 2 配置被管理的Bean 3 获取Bean pom.xml配置 <dependency> <gro ...

  4. 初识DDD

    DDD强调专注于业务问题域的需要:其专业术语.为何开发该软件的关键原因,以及对于业务来说什么才是成功 问题域涉及你当前正在构建软件的主题领域 DDD强调的是,在致力于为大型复杂业务系统创建软件时,专注 ...

  5. 具有避障和寻线功能的Arduino小车

    标签:  Arduino  乐高  机器人 创客对于成年人来说,多半是科技娱乐,或者是一种是一种向往科技的人生态度,总是希望自己不仅可以看到或者听到科技的资讯,还希望能够亲身制作科技玩意,从而更好地体 ...

  6. ORA-04098 trigger 'DBBJ.DB_EV_ALTER_ST_METADATA' is invalid and failed re-validation

    转自:https://blog.csdn.net/dragoo1/article/details/9411105 ORA-04098: trigger 'DBBJ.DB_EV_ALTER_ST_MET ...

  7. Android webRTC 代码下载编译

    1.安装depot tools git clone https://chromium.googlesource.com/chromium/tools/depot_tools.git 然后把把depot ...

  8. DAY11-MYSQL补充之SQL逻辑查询语句执行顺序

    一 SELECT语句关键字的定义顺序 SELECT DISTINCT <select_list> FROM <left_table> <join_type> JOI ...

  9. 百度地图SDK v2.1.2使用方法

    1.开发工具 Android开发工具有很多,开发者可根据自己的喜好进行选择.在此,我们推荐开发者使用Eclipse作为自己的开发工具,本套开发指南也是针对Eclipse开发环境下进行编写的. 2.工程 ...

  10. set源码之心得

    C++的STL很强大,强大到我只愿慵懒地去使用而不知其所以然.直到李师问我,我的回答被李师否定,我方才意识到自己是多么地浅陋.希望自己有空抽时间把STL源码给研究一下,化为自己真正可以掌控的力量. s ...