新闻资讯

mysql常用知识整理及如何实现外网访问内网MySQL

2018-10-19

在mysql的学习中,基础打好才是关键,为了让大家更好的学习mysql,今天上海尚观小编在这里整理了mysql常用基础知识总结,需要的朋友可以参考一下!

首先要知道SQL分类:

DDL—数据定义语言(CREATE,ALTER,DROP,DECLARE),定义了数据库模式,包括CREATE、ALTER、DROP、TRUNCATE、COMMENT与RENAME语句。
DML—数据操纵语言(SELECT,DELETE,UPDATE,INSERT)主要用于表达数据库的查询与更新,主要包括增删改查(INSERT,UPDATE,DELETE,SELECT)。
DCL—数据控制语言(GRANT,REVOKE,COMMIT,ROLLBACK) 用于用户权限的管理,包括了GRANT与REVOKE命令。
在这里小编整理了sql基础语句,也是大家必须要知道的:
1、创建数据库 CREATE DATABASE database-name
2、删除数据库 drop database dbname
3、备份 sql server
--- 创建 备份数据的 device
USE master
EXEC sp_addumpdevice ’disk’, ’testBack’, ’c:mssql7backupMyNwind_1.dat’
--- 开始 备份
BACKUP DATABASE pubs TO testBack
4、创建新表
create table tabname(col1 type1 [not null] [primary key],col2 type2 [not null],..)
根据已有的表创建新表:
A:create table tab_new like tab_old (使用旧表创建新表)
B:create table tab_new as select col1,col2… from tab_old definition only
5、删除新表:drop table tabname
6、增加一个列:Alter table tabname add column col type
7、添加主键:Alter table tabname add primary key(col)
删除主键:Alter table tabname drop primary key(col)
8、创建索引:create [unique] index idxname on tabname(col….)
删除索引:drop index idxname
9、创建视图:create view viewname as select statement
删除视图:drop view viewname
数据库mysql的增删改查:

mysql> INSERT INTO TABLE_NAME (column1,column2...) VALUES (value1,value2...);//插入指定字段
INSERT INTO TABLENAME VALUES (column1,column2...);//插入所有字段

mysql> DELETE FROM TABLE WHERE COLUMN=VALUE;//删除指定的记录

mysql> UPDATE TABLE SET column1=value1,column2=value2,... WHERE COLUMN=VALUE;//修改

mysql> SELECT column1,column2... FROM TABLE;//所有列为SELECT * FROM TABLE
高级SQL查询
LIKE模糊匹配
1、SQL通配符(LIKE和NOT LIKE)
% 匹配0个或多个字符
匹配一个字符
mysql> SELECT column1,column2... FROM TABLE WHERE COLUMN LIKE "%lei%";//模糊匹配
2、正则模式匹配(REGEXP、NOT REGEXP和RLIKR、NOT RLIKE)
. 匹配任何单个的字符

  • 匹配零个或多个在它前面的东西
    [charlist] 字符列中的任何单一字符[a-z][0-9]
    [^charlist] or [!charlist] 不在字符列中的任何单一字符
    mysql> SELECT column1,column2... FROM TABLE WHERE COLUMN RLIKR "lei*";//模糊匹配
    ORDER BY排序
    mysql> SELECT column1,column2... FROM TABLE WHERE ORDER BY COLUMN ASC|DESC;//字段顺序或者倒序
    LIMIT返回条数
    mysql> SELECT column1,column2... FROM TABLE WHERE LIMIT 5,10; // 检索记录行 6-15
    NULL处理
    IS NULL: 当列的值是NULL,此运算符返回true。
    IS NOT NULL: 当列的值不为NULL,运算符返回true。
    <=>: 比较操作符(不同于=运算符),当比较的的两个值为NULL时返回true。
    关联
    INNER JOIN(内连接或等值连接):获取两个表中字段匹配关系的记录。
    LEFT JOIN(左连接):获取左表所有记录,即使右表没有对应匹配的记录。
    RIGHT JOIN(右连接): 与 LEFT JOIN 相反,用于获取右表所有记录,即使左表没有对应匹配的记录。
    分组查询
    GROUP BY column;//根据字段分组查询
    分组结果筛选
    HAVING

如何实现外网访问内网MySQL数据库?

解决方案,内网使用花生壳动态域名解析,将域名实时固定解析到路由公网IP,然后在路由器上做MySQL数据库端口映射。外网访问MySQL数据库时,使用动态解析域名。