MySQL语法基础

SQL:

DDL: CREATE, ALTER, DROP, GRANT, REVOKE
DML: INSERT, DELETE, UPDATE, SELECT

MySQL数据类型

字符型
    固定长度:CHAR
    可变长度:VARCHAR
    mysql: BINARY, VARBINARY - 区分大小写

数值型
    精确数值型
        int: tinyint, smallint, mediumint, int, bigint
    浮点型
        float, double

日期时间
    date
    time
    datetime
    year(4)
    year(2)

内置类型
    枚举
        ENUM(仍是字符)

    集合
        SET(元素可自由组合)

类型修饰:
    NULL 可为空
    NOT NULL 不可为空
    DEFAULT 给一个默认值

    UNSIGNED 无符号

    AUTO_INCREMENT 自增长,限于整形,且字段必须为主键或唯一键

    PRIMARY KEY 主键
    UNIQUE KEY 唯一键


在MySQL中,数值不可加引号,字符需加引号

DDL:

CREATE DATABASE
CREATE TABLE
CREATE USER

DROP DATABASE
DROP TABLE
DROP USER

GRANT
REVOKE

DML:

INSERT
DELETE
UPDATE
SELECT

创建数据库:

CREATE DATABASE DB_NAME;
DROP DATABASE DB_NAME; - 危险操作,只能靠备份恢复

SHOW DATABASES;
SHOW TABLES;

创建表:

CREATE TABLE [DB_NAME].TABLE_NAME (COLUMN DEFINATION)
    COLUMN DEFINATION:
    (col1_name data_type [修饰符], col2_name data_type [修饰符]..)

例子:
创建一个学生表:students(SID, Name, Age, Gender, Class)

CREATE TABLE students (
ID INT UNSIGNED NOT NULL UNIQUE KEY AUTO_INCREMENT, 
Name CHAR(10) NOT NULL, 
Age TINYINT, 
Gender ENUM('f', 'm') NOT NULL, 
Class VARCHAR(50));

查看表,删除表

DESC TB_NAME; - 查看

DROP TABLE TB_NAME; - 删除

管理用户:

CREATE USER USER_NAME@HOST [INDENTIFIED BY ‘password’];

例如:

CREATE USER 'tuser'@'192.168.%.%' IDENTIFIED BY 'guli123';

HOST表示格式:

IP
网络地址

MySQL的字符通配符:
    %: 匹配任意长度的任意字符
    _: 匹配任意单个字符


DROP USER USER_NAME@HOST; - 删除用户

创建用户并赋予权限

GRANT 权限列表 ON DB_NAME.TB_NAME TO USERNAME@HOST [INDENTIFIED BY ‘password’];

权限列表:
    ALL PRIVILEGES, 可简写为 ALL

DB_NAME: 
    *:所有库

TB_NAME:
    *:所有表

刷新授权表,使得权限修改生效

FLUSH PRIVILEGES; - 刷新授权表,使得权限修改生效

回收权限

REVOKE 权限列表 ON DB_NAME.TB_NAME FROM USERNAME@HOST; - 回收权限

DML:

插入数据:

INSERT INTO tb_name [(col1, col2, ..)] VALUE|VALUES (val1, val2, ..), (val1, val2, ..);

字段和值必须一一对应。
VALUE 和 VALUES 都可以。

INSERT INTO students (Name,Age,Gender,Class) VALUES ('tom',20,'f','class 01'), ('jerry',    23,'f','class 03');

查看刚才插入的数据

SELECT * FROM test.students;

查询数据:

SELECT 字段列表 FROM 表 WHERE 条件子句 ORDER BY 字段;

条件的组合:
    and 与
    or 或
    not 非

条件子句,某个数据等于、大于、不等于..:
    =
    >
    >=  
    <=
    !=

字段值在某个区间内
    BETWEEN start_value AND end_value

模糊匹配的条件子句
    LIKE:模糊匹配     
        WHERE Name LIKE “vir%”;  
        缺点是速度较慢,较消耗资源

    RLIKE: 正则匹配 

删除数据:

DELETE FROM tb_name WHERE 条件子句 [LIMIT n];

DELETE FROM students WHERE Gender == ‘f’;

更新数据:

UPDATE tb_name SET col1=new_value1 WHERE 条件子句;

几个常用SHOW命令:

查看支持哪些存储引擎:

SHOW ENGINES;

查看表的元数据信息:

SHOW TABLE STATUS;
SHOW TABLE STATUS\G; - 竖排显示

SHOW 输出信息的部分字段说明:
    Data_free - 剩余空间,0表示无限制



    MySQL存储数据的方式:
    创建一张表之后,会先分配一段空间在磁盘上,之后根据需要增加。
    
    Collation - 排序规则
        字符集内部,字符的排序有所不同。
        比如  abcd..zABCD..Z
            aAbBcC..    


SHOW CHARACTER SET; - 查看支持的字符集

SHOW COLLATION; - 限制排序规则

SHOW TABLES;

SHOW DATABASES;

MySQL的各种工作属性是通过服务器变量来定义的:

SHOW {GLOBAL|SESSION} VARIABLES [LIKE ‘xxx’]; - 查看全局或者会话的变量

MySQL运行时的诸多统计数据会被记录在状态变量中:

SHOW {GLOBAL|SESSION} STATUS [LIKE ‘xxx’]; 

MySQL 的日志:

事务日志,二进制日志,查询日志,慢查询日志,错误日志

MySQL中字符的大小写:

1,SQL关键字、函数名不区分大小写
但注意遵循同一种风格,因为缓存命中与此相关。

2,数据库、表、索引、视图名称是否区分大小写,取决于底层的OS和FileSystem
例如,Windows 不区分大小写,Linux区分大小写。
尽量以不区分大小写来对待。

3,存储过程、存储函数、事件调度器不区分字符大小写,但触发器区分

4,表的别名不区分大小写

5,字段中的字符数据,类型为 binary,blob 时,区分大小写,其他字符型不区分大小写。

MySQL中的引号:

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

推荐阅读更多精彩内容

  • 什么是数据库? 数据库是存储数据的集合的单独的应用程序。每个数据库具有一个或多个不同的API,用于创建,访问,管理...
    chen_000阅读 4,028评论 0 19
  • MySQL数据库对象与应用 2.1-MySQL数据类型 库建立好之后基本不动,和我们接触最频繁的是表. 建表就是声...
    极客圈阅读 2,125评论 0 8
  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 31,573评论 18 399
  • 1、引言 数据库设计过程中表、字段等的命名规范也算是设计规范的一部分,不过设计规范更多的是为了确保数据库设计的合理...
    SnowflakeCloud阅读 40,942评论 0 48
  • 过去的2014某些行业被微商洗礼一轮后,华丽的舞台背后暴露出了很多弊端,网络上甚至列出来了一些关于微商模式多种深坑...
    a256d59d5906阅读 331评论 0 1