数据库组件:

  数据库: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. POJ3009(dfs)

    Curling 2.0 Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 17672   Accepted: 7262 Desc ...

  2. Celery-4.1 用户指南: Calling Tasks(调用任务)

    基础 本文档描述 Celery 中任务实例和 Canvas 使用的统一 “Calling API”. API 中定义了一个执行选项的标准集,以及三个方法: - apply_async(args[, k ...

  3. Struts旅程(六)Struts页面转发控制ActionForward和ActionMapping

    转自:https://blog.csdn.net/lovesummerforever/article/details/19125933

  4. DAY10-python并发之IO模型

    一 IO模型介绍 同步(synchronous) IO和异步(asynchronous) IO,阻塞(blocking) IO和非阻塞(non-blocking)IO分别是什么,到底有什么区别?这个问 ...

  5. ubuntu系统里vi编辑器时,按方向箭头输入是乱码的ABCD字母?(图文详解)

    不多说,直接上干货! 问题详情 ubuntu系统里vi编辑器时,按方向箭头输入是乱码的ABCD字母?  解决办法 是由于预装的vim软件没更新,运行   sudo apt-get install vi ...

  6. 记录一次手机联系人整理(XML文件格式处理)

    场景:1.IOS手机和Android手机联系人同步时有部分重复联系人. 2.很早以前的HTC手机导出的联系人中备注信息有大量乱码,且很多联系人生日被设置为1970-01-01,导致生日提醒软件产生骚扰 ...

  7. MySQL存储引擎 -- MyISAM 与 InnoDB 理论对比

    MySQL常用的两种存储引擎一个是MyISAM,另一个是InnoDB.两种存储引擎各有各的特点. 1. 区别:(1)事务处理:MyISAM是非事务安全型的.-----而非事务型的系统,一般也称为数据仓 ...

  8. zabbix监控报错zabbix server is not running: the information displayed may not be current

    zabbix监控搭建完后打开web界面http://xxx/zabbix报错: zabbix server is not running: the information displayed may ...

  9. [patl2-020]功夫传人

    解题关键:dfs的简单应用,需要注意类型double与int #include<cstdio> #include<cstring> #include<algorithm& ...

  10. mock SpringMVC 测试控制器方法

    从Spring3.2开始 Spring包含了一种mockSpringMVC并针对controller执行http请求的机制 如(该代码选自spring实战4): public void shouldS ...