MySQL——基本语句

Mysql-基础语法

导语

本博文主要是简述选择数据库和对表内容的增、删、改和查的一些基本语法

USE

语法:

  • USE databaseName;打开名为databaseName的数据库

SHOW

语法:

  • SHOW DATABASES;返回可用库的列表
  • SHOW TABLES;返回当前库内的可用表的列表
  • SHOW COLOMNS FROM tableName;返回tableName表的行信息
  • SHOW CREATE TABLE;查看数据表的创建语句

tips : Mysql支持用DESCRIBE COLUMNS; 来代替SHOW COLOMNS FROM tableName;
更多SHOW用法可以用help SHOW来查看

CREATE

语法:

CREATE TABLE `table`
(
    id int NOT NULL AUTO_INCREMENT,
    name char(50) NOT NULL DEFAULT 'hello',
    phone char(20) NULL,
    PRIMARY KEY (id)
    FOREIGN KEY(phone) REFERENCES othertable(id)
)ENGINE=InnoDB;

创建了一个名为table的表,拥有三列:id列是整形数据、非空、自增,name列字符型数据、非空、默认值为hello,phone字符型数据,可空。

tips:

  • 通常仅在表不存在是创建:CREATE TABLE IF NOT EXISTS table(···)
  • 在创建表时用:PRIMARY KEY(id)来创建主键,主键值必须唯一,主键也可以是多列联合
  • AUTO_INCREMENT表示自增,通常和单列主键配合使用,一个表只能有一个自增列
  • DEFAULT来指定默认值
  • NULL允许空值,插入行数据时允许不给出该列的值
  • ENGINE=InnoDB表示用InnoDB这个搜索引擎
  • FOREIGN KEY(phone) REFERENCES othertable(id)来创建外键phone指向另一个表的主键

ALTER

更新表结构

语法:

  • ALTER TABLE table ADD address CHAR(100) NOT NULL;table表增加一列address
  • ALTER TABLE table DROP COLUMN phone; 删除table表的phone

tips:

  • 删除表:DROP TABLE table;
  • 清空表: TRUNCATE TABLE table
  • 重命名表:RENAME TABLE table TO table1;

INSERT

语法:
INSERT INTO table(col1,col2,···)VALUES(value1,value2,···);

tips:

  • 如果表定义时对某行允许了空值或者设置了默认值,那INSERT操作可以省略该行
  • 因为INSERT操作是很耗时的,所以有时加入LOW_PRIORIRY降低优先级:INSERT LOW_PRIORITY INTO
  • 插入多行数据时每组值用()INSERT INTO table(col1,col2,···)VALUES(value1,value2,···),(value1,value2,···),(···);

UPDATE

语法:

  • UPDATE table SET name = 'abc';更新table表所有行的name值为'abc'
  • UPDATE table SET name = 'abc'[,col = 'xxx',···] WHERE id = 1;若要更新某行时要加where限定,更新多列时,每个键值对用,隔开

DELETE

语法:

  • DELETE FROM table; 删除table
    表中所有数据
  • DELETE FROM table where id = 1;删除指定的某行

tips: 可用TRUNCATE TABLE table来代替DELETE FROM table,前者是直接删除表本身,再创建同名表,比后者速度快。

SELECT

语法:

  • SELECT colName1[,colName2···] FROM tableName;检出出某行,多行用,隔开,所有行用*表示
DISTINCT

表示只返回不同值

用法 : SHOW DITINCT id FROM ···; ,DISTINCT只能放在列名最前面

LIMIT

限制返回数目

用法 :

  • SELECT * FROM table LIMIT 5;返回前五行数据
  • SELECT * FROM table LIMIT 3,4;返回从第三行开始的四行数据
  • SELECT * FROM table LIMIT 4 OFFSET 3;等效于上面一句MYSQL

ORDER BY

关系型数据库中,如果没有明确排序顺序,检索出来的数据顺序无意义

用法:

  • SELECT * FROM table ORDER BY id;id的升序排列,等同于ORDER BY id ASC。降序用DESC代替ASC即可
  • SELECT * FROM table ORDER BY id,name DESC;先按id升序排序,若id相同时按name的降序排序

tips:

  • 通常字典排序是不区分大小写的
  • order by子句要在from子句之后,若是和limit联用,要放limit之前。与where联用,放where之后。

WHERE

根据where子句来对检索进行过滤

用法:

  • SELECT * FROM table WHERE id = 1;此处的操作符有=!=>>=<<=,匹配字符串的时候要加''
  • SELECT * FROM table WHERE id BETWEEN 1 AND 5;可以用BETWEEN来限定范围
  • SELECT * FROM table WHERE id IN (1,2,3,4,5);可以用IN来限定范围
  • SELECT * FROM table WHERE id IS NULL;空值检查,返回的是id为空的行,而非id为0的行

tips:

  • 可以用ANDOR来连接多个where子句,形成高级where
  • 若是有ANDOR组成的高级WHERE时,会先优先处理AND的语句的组合,所以为了避免组合错误应该使用()来明确组合,消除歧义。
  • WHERE子句中用NOT来否定之后所跟的任何条件

LIKE

LIKE后面跟的搜索模式利用通配符匹配

%(匹配任何字符出现任意次)

用法:

  • SELECT * FROM table where name LIKE 'base%'检索以base开头的name
  • SELECT * FROM table where name LIKE '%base%'检索含有basename
  • SELECT * FROM table where name LIKE 'ba%se'检索以ba的开头,以se结尾的name%表示任意字符,也包括0字符。
_(匹配单字符)

用法:

  • SELECT * FROM table where name LIKE 'base_'

tips:

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

推荐阅读更多精彩内容

  • 什么是SQL数据库: SQL是Structured Query Language(结构化查询语言)的缩写。SQL是...
    西贝巴巴阅读 1,803评论 0 10
  • 第1章 初涉MySQL 1.1 MySQL文件 (1)MySQL目录结构 (2)MySQL配置向导文件(安装后配置...
    凛0_0阅读 783评论 1 0
  • 1、说明:创建数据库CREATE DATABASE database-name2、说明:删除数据库drop dat...
    codeSirCao阅读 433评论 0 2
  • 前两天去武汉,奔波了三天,先是去灵泉寺参加余浩老师的九针义诊断,然后赶去参加心如一(马一)老师的师傅的修行课程,没...
    观宇阅读 344评论 0 0
  • 历史 在应用文写作的课堂上,老师说进入大学要尽可能的开始忘记之前学习过的历史知识,因为我们所接触的很多历史是片面的...
    Sifill阅读 332评论 0 2