数据库组件:

  数据库: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. Azure CLI脚本查看未挂载的ManagedDisk

    本文介绍如何用Azure CLI的脚本查看未挂载的Managed Disk,以及Managed Disk挂载到哪些资源. 具体的脚本如下: #!/bin/bash rm -rf noownerdisk ...

  2. 查看,修改ceph节点的ceph配置命令

    标签(空格分隔): ceph,ceph运维,ceph配置 查看ceph配置 1. 查看ceph默认配置: # ceph --show-config 2. 查看 type.num 的ceph默认配置: ...

  3. Shell脚本把文件从GBK转为UTF-8编码

    http://www.jb51.net/article/51308.htm 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 ...

  4. 【转】href="#"与"javascript:void(0);"的区别

    在工作中,如果我们想把a标签中的链接置成空链接,我们一般会用两种方法: 1 <a href="#" target="_blank"></a&g ...

  5. appium_python 怎样实现参数化自动生成用例

    1.对于一种对同一个页面同一点 要用不同数据测试形成多条测试用例,如果复制的话 会让代码很冗长,并且并不好维护,现在用封装的方法把 不变的代码 和 变化的参数 分别封装,形成动态 生成测试用例 ,主要 ...

  6. 第三章 Java内存模型(上)

    本章大致分为4部分: Java内存模型的基础:主要介绍内存模型相关的基本概念 Java内存模型中的顺序一致性:主要介绍重排序和顺序一致性内存模型 同步原语:主要介绍3个同步原语(synchroized ...

  7. 判断Integer值相等不能用==

    今天在开发中判断两个Integer值相等, Integer a = 3; Duixiang duixiang = new Duixiang(); duixiang = DAO.getDuixiang( ...

  8. javascript——对象的概念——Object(未完)

    http://www.blogjava.net/zkjbeyond/archive/2006/04/16/41336.html javascript中对象只包括属性和方法两种成员.ECMA-262 把 ...

  9. AJAX——XMLHttpRequest对象的使用

    AJAX是web2.0即动态网页的基础,而XMLHttpRequest对象又是AJAX的核心.XMLHttpRequest对象负责将用户信息以异步通信地发送到服务器端,并接收服务器响应信息和数据 一. ...

  10. C#如何生成JSON字符串?(序列化对象)

    第一章:C#如何拿到从http上返回JSON数据? 第二章:C#如何解析JSON数据?(反序列化对象) 第三章:C#如何生成JSON字符串?(序列化对象) 第四章:C#如何生成JSON字符串提交给接口 ...