MariaDB之SQL语句基础
数据库组件:
数据库: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语句基础的更多相关文章
- SQL语句基础之 单表查找
Sql语句之 单表查询 一.一般查询 1.查看表中的所有记录 以及 所有字段(属性) 语句 : select * from student; 2.只查看某些字段 语句:select sname,sex ...
- 精妙SQL语句 基础
精妙SQL语句SQL语句先前写的时候,很容易把一些特殊的用法忘记,我特此整理了一下SQL语句操作,方便自己写SQL时方便一点,想贴上来,一起看看,同时希望大家能共同多多提意见,也给我留一些更好的佳句, ...
- Sql语句基础练习(一)
1.求1号课成绩大于80分的学生的学号及成绩,并按成绩由高到低列出.(表名:成绩表.字段名:课号,学号,成绩.) SELECT 学号,成绩 FROM 成绩表 WHERE 课号=1 AND 成绩> ...
- Oracle PL/SQL语句基础学习笔记(上)
PL/SQL是ORACLE对标准数据库语言的扩展,ORACLE公司已经将PL/SQL整合到ORACLE server和其它工具中了,近几年中很多其它的开发者和DBA開始使用PL/SQL,本文将讲述PL ...
- MySQL数据库:SQL语句基础、库操作、表操作、数据类型、约束条件、表之间的关系
数据库相关概念: 1. 数据库服务器:运行数据库管理软件的计算机 2. 数据库管理软件:MySQL.Oracle.db2.slqserver 3. 库:文件夹,用来组织文件/表 4. 表:文件(类似于 ...
- 【MySQL】SQL语句基础
一.操作数据库 1.1 创建数据库 1.2 查看数据库 1.3 修改数据库 1.4 删除数据库 1.5 选择数据库 二.操作表 2.1 创建表 2.2 查看表 2.3 修改表 2.4 删除表 三.操作 ...
- SQL语句基础知识
1.关于SQL语句中exists与not exists的问题 course表如下:课程代号 课程名称 K01 奥运会主题曲 K02 喜爱的专辑 K03 VB技术大全 K04 经典歌曲 K05 个人单曲 ...
- SQL语句基础之 管理数据库,表 和 数据
MySQL中的基本sql语句 MySQL中主要有三个大的对象,第一个是数据库,有了数据库后,我们才能在数据库里面建表,因为Mysql是关系数据库,它的数据都会以记录的形式存到表里,所以第二个是表,然后 ...
- sql语句基础
数据库库(DataBase):就是一个存储数据的仓库.为了方便数据的存储和管理,它将数据按照特定的规律存储在磁盘上.通过数据库管理系统,可以有效的组织和管理存储在数据库中的数据.SQL(Structu ...
随机推荐
- Azure CLI脚本查看未挂载的ManagedDisk
本文介绍如何用Azure CLI的脚本查看未挂载的Managed Disk,以及Managed Disk挂载到哪些资源. 具体的脚本如下: #!/bin/bash rm -rf noownerdisk ...
- 查看,修改ceph节点的ceph配置命令
标签(空格分隔): ceph,ceph运维,ceph配置 查看ceph配置 1. 查看ceph默认配置: # ceph --show-config 2. 查看 type.num 的ceph默认配置: ...
- 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 ...
- 【转】href="#"与"javascript:void(0);"的区别
在工作中,如果我们想把a标签中的链接置成空链接,我们一般会用两种方法: 1 <a href="#" target="_blank"></a&g ...
- appium_python 怎样实现参数化自动生成用例
1.对于一种对同一个页面同一点 要用不同数据测试形成多条测试用例,如果复制的话 会让代码很冗长,并且并不好维护,现在用封装的方法把 不变的代码 和 变化的参数 分别封装,形成动态 生成测试用例 ,主要 ...
- 第三章 Java内存模型(上)
本章大致分为4部分: Java内存模型的基础:主要介绍内存模型相关的基本概念 Java内存模型中的顺序一致性:主要介绍重排序和顺序一致性内存模型 同步原语:主要介绍3个同步原语(synchroized ...
- 判断Integer值相等不能用==
今天在开发中判断两个Integer值相等, Integer a = 3; Duixiang duixiang = new Duixiang(); duixiang = DAO.getDuixiang( ...
- javascript——对象的概念——Object(未完)
http://www.blogjava.net/zkjbeyond/archive/2006/04/16/41336.html javascript中对象只包括属性和方法两种成员.ECMA-262 把 ...
- AJAX——XMLHttpRequest对象的使用
AJAX是web2.0即动态网页的基础,而XMLHttpRequest对象又是AJAX的核心.XMLHttpRequest对象负责将用户信息以异步通信地发送到服务器端,并接收服务器响应信息和数据 一. ...
- C#如何生成JSON字符串?(序列化对象)
第一章:C#如何拿到从http上返回JSON数据? 第二章:C#如何解析JSON数据?(反序列化对象) 第三章:C#如何生成JSON字符串?(序列化对象) 第四章:C#如何生成JSON字符串提交给接口 ...