MySQL 语法学习

原文地址

shell 连接 Mysql 的几种方式

user="apper" # 用户名
password="superme@2019" # 密码
host="192.168.1.110" # ip地址
port="3306" # 端口号
database="upay" # 数据库名称
sql_string="SELECT * FROM ThirdUQUserRelation;" # 查询语句

# 方式1
mysql -h${host} -P${port} -u${user} -p${password} $database -e "${sql_string}"

# 方式2
mysql --host=${host} --port=${port} --user=${user} --password=${password} --database=$database -e "${sql_string}"

# 方式3
file_path="/path/to/sql"
mysql -h${host} -P${port} -u${user} -p${password} $database < ${file_path}

数据库操作

显示数据库
show databases;
使用某个数据库
use <数据库名称>;
创建一个数据库
create database <数据库名称>;
删除一个数据库
drop database <数据库名称>;

表操作

显示所有表

(需要先通过 use 语句进入到该数据库里面)

show tables;
创建表

基本语法形式

create table table_name (column_name column_type);

创建表示例:

CREATE TABLE `ExchangeRate` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `baseCurrencyCode` varchar(8) NOT NULL DEFAULT 'USD'    COMMENT '基础币种代号',
  `targetCurrencyCode` varchar(8) NOT NULL DEFAULT ''  COMMENT '目标币种代号',
  `baseAmount` varchar(11) NOT NULL DEFAULT '1'        COMMENT '基础货币数量',
  `targetAmount` Double(10, 2) NOT NULL DEFAULT '0'      COMMENT '目标货币数量',
  `time` varchar(20),
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
  • AUTO_INCREMENT 表示自增

  • NOT NULL 表示该字段的值不为空

  • DEFAULT 表示该字段的默认值

  • COMMENT 表示注释内容

删除表
DROP TABLE table_name;
插入数据
INSERT INTO table_name (field1, field2, ...) VALUES (value1, value2, ...);
查询数据

基本语法形式

SELECT column_name, column_name
FROM table_name
[WHERE Clause]
[LIMIT N]
[OFFSET M];
  • column_name 表示字段名称,使用 * 来代表所有字段;

  • [WHERE Clause] where 语句来过滤筛选条件(可选);

  • [LIMIT N] limit 语句来制定返回数据的数据(可选);

  • [OFFSET M] offset 语句来指定开始查询的偏移量,默认情况下偏移量为0(可选);

更新数据

基本语法形式

UPDATE table_name SET filed1=new-value1, field2=new-value2
[WHERE Clause];
删除数据

基本语法形式

DELETE FROM table_name [WHERE Clause];
LIKE 子句

Like 子句可以使用类似正则表达似的进行匹配搜索。

基本语法形式

SELECT field1, field2,...fieldN 
FROM table_name
WHERE field1 LIKE condition1 [AND [OR]] filed2 = 'somevalue';
  • LIKE 通常与 % 一同使用,类似于一个元字符的搜索。

  • % 表示任意 0 个或多个字符。可匹配任意类型和长度的字符,有些情况下若是中文,请使用两个百分号(%%)表示。

  • _ 表示任意单个字符。匹配单个任意字符,它常用来限制表达式的字符长度语句。

  • [] 表示括号内所列字符中的一个(类似正则表达式)。指定一个字符、字符串或范围,要求所匹配对象为它们中的任一个。

  • [^] 表示不在括号所列之内的单个字符。其取值和 [] 相同,但它要求所匹配对象为指定字符以外的任一个字符。

DISTINCT 删除重复数据(用法 distinct(filed1) )

ORDER BY 字段排序, 使用 ASC 或 DESC 关键字来设置查询结果是按升序或降序排列。 默认情况下,它是按升序排列 (用法 order by age desc )

GROUP BY 对结果分组 (用法 group name)

连表查询
  • INNER JOIN(内连接,或等值连接):获取两个表中字段匹配关系的记录。

  • LEFT JOIN(左连接):获取左表所有记录,即使右表没有对应匹配的记录。

  • RIGHT JOIN(右连接): 与 LEFT JOIN 相反,用于获取右表所有记录,即使左表没有对应匹配的记录。

ALTER 命令

当我们需要修改数据表名或者修改数据表字段时,就需要使用到MySQL ALTER命令。

删除表 table_name 中的字段 i:

ALTER TABLE table_name DROP i;

在表 table_name 中添加 INT 类型的字段 i:

ALTER TABLE table_name ADD i INT;

在表 table_name 中修改字段 c 的类型为 char(10) :

ALTER TABLE table_name MODIFY c CHAR(10);

修改表名 table_namenew_table_name:

ALTER TABLE table_name RENAME TO new_table_name;

常见函数

函数 作用
json_extract 提取 json 字符串
replace(s1, s2) s2 替换 s1
count(*) 统计次数
trim 去掉字符串首尾空格
NOW() 当前日期和时间
DATE() 当前日期
CURTIME() 当前时间

其他

配置文件位置

从命令行终端运行此命令,将在寻找Linux/BSD / OS X系统中的MySQL配置文件 my.cnf 文件:

mysql --help | grep 'Default options' -A 1

上面命令执行后,会有这样的输出:

Default options are read from the following files in the given order:
/etc/my.cnf /etc/mysql/my.cnf /usr/local/etc/my.cnf ~/.my.cnf

参考

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 215,133评论 6 497
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,682评论 3 390
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 160,784评论 0 350
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,508评论 1 288
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,603评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,607评论 1 293
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,604评论 3 415
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,359评论 0 270
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,805评论 1 307
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,121评论 2 330
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,280评论 1 344
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,959评论 5 339
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,588评论 3 322
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,206评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,442评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,193评论 2 367
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,144评论 2 352

推荐阅读更多精彩内容

  • 什么是数据库? 数据库是存储数据的集合的单独的应用程序。每个数据库具有一个或多个不同的API,用于创建,访问,管理...
    chen_000阅读 4,035评论 0 19
  • 1. 了解SQL 1.1 数据库基础 ​ 学习到目前这个阶段,我们就需要以某种方式与数据库打交道。在深入学习MyS...
    锋享前端阅读 1,062评论 0 1
  • 一、MySQL优化 MySQL优化从哪些方面入手: (1)存储层(数据) 构建良好的数据结构。可以大大的提升我们S...
    宠辱不惊丶岁月静好阅读 2,425评论 1 8
  • .数据库 数据库的发展: 文件系统(使用磁盘文件来存储数据)=>第一代数据库(出现了网状模型,层次模型的数据库)=...
    小Q逛逛阅读 963评论 0 2
  • “今日待办清单”是一个谎言 易效能:每天都完成计划,才能计划自己的未来。/所谓迷茫,就是才华配不上梦想。 1、今日...
    竹叶青青_550c阅读 304评论 0 0