数据库组件:

  数据库: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. 机器学习:SVM(SVM 思想解决回归问题)

    一.SVM 思想在解决回归问题上的体现 回归问题的本质:找到一条直线或者曲线,最大程度的拟合数据点: 怎么定义拟合,是不同回归算法的关键差异: 线性回归定义拟合方式:让所有数据点到直线的 MSE 的值 ...

  2. Spring中的线程池ThreadPoolTaskExecutor介绍

    前言: Java SE 5.0引入了ThreadPoolExecutor.ScheduledThreadPoolExecutor.Spring 2.x借助ConcurrentTaskExecutor和 ...

  3. demo1 spark streaming 接收 kafka 数据java代码WordCount示例

    1. 首先启动zookeeper windows上的安装见zk 02之 Windows安装和使用zookeeper 启动后见: 2. 启动kafka windows的安装kafka见Windows上搭 ...

  4. HDU 2544 最短路(邻接表+优先队列+dijstra优化模版)

    最短路 Time Limit: 5000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submiss ...

  5. 开发环境入门 linux基础 (部分)nginx和nfs

    nginx和nfs 复习总结 rpm -ivh 软件包 --nodeps (没有依赖性安装) rpm -ivh 软件包 --force (覆盖安装) yum -y upgrade 升级所有包,不改变软 ...

  6. spring bean管理

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

  7. I/O完成端口(IOCP)

    服务器: #include "stdafx.h" #include <winsock2.h> #pragma comment(lib, "ws2_32.lib ...

  8. 11-09SQLserver 基础-数据库之汇总练习45题

    设有一数据库,包括四个表:学生表(Student).课程表(Course).成绩表(Score)以及教师信息表(Teacher).四个表的结构分别如表1-1的表(一)~表(四)所示,数据如表1-2的表 ...

  9. 类型:.net;问题:ASP.NET路由;结果:ASP.NET 路由 .NET Framework 4

    ASP.NET 路由 .NET Framework 4   更新:2007 年 11 月 ASP.NET 路由使您可以使用不必映射到网站中特定文件的 URL.由于 URL 不必映射到文件,所以可以在 ...

  10. leetcode643

    double findMaxAverage(vector<int>& nums, int k) { double max = INT_MIN; int len = nums.siz ...