sql(structure query language)结构化查询语言
ansi iso/iec组织制定
ddl(data definition language) 数据定义语言
dml(manipulation) 数据操纵语言
dcl(control) 数据控制语言

select 从数据库中检索信息(select ... as ...)
distinct 关键字去除所有重复的行
select distinct depart from staff;

limit 限制返回的行数
select name from staff limit 3;
select * from emp order by ID limit 3,4;
order by desc, order by asc

完全限定表名:在其它数据库中查询某个表
select staff.name from enterprise.staff;

select user();
select user,host,password from mysql.user;
select database();查看当前的数据库
select bin(f1) from t4;
select last_insert_id();
select length(f2) from t1;
select concat(f1, '+'), concat(f2, '+') from t1;连接
select concat('ab','cd');
select f1 - f2 from t2;
select count(1) from emp
select * from emp order by ID(desc);
select user,host,password from mysql.user;
select * from cj where (class,math)=(select distinct class,math from cj where name='xxx');
sqlite3 /home/wusl/medispan.sqlite "select NDC,DDI, count(distinct NDC) from medndc where Change_Date >= '20140101' group by NDC" >ndc
sqlite3 /home/wusl/medispan.sqlite "select NDC,DDI,group_concat(distinct NDC) from medndc where Change_Date >= '20140101' group by NDC" >ndc

order by 数据检索排序
desc:按降序排序

where 过滤数据
between and
and,or操作符
()
in
通配符过滤 like

create
表,null值, 主键、外键, auto_increment
create index
create table t2 like t1; 快速建表

alter 修改(对表内参数操作)
添加、删除列(add,drop)
alter table t1 add (f1 date);
alter table emp add primary key (f1); 添加主键
alter table emp add constraint fk1 foreign key (deptno) references dept(deptno) ON DELETE CASCADE ON UPDATE CASCADE(级联操作); 添加外键
alter table t2 drop age;
alter table emp drop primary key;删除主键(无自动编号)
alter table employees drop foreign key fk1;删除外键
alter table tb_name add address varchar(30) not null after phone; 在指定位置增加字段

修改列属性(modify)
alter table t1 modify age int(4) zerofill;
alter table t1 modify f1 set('a','b','c');
alter table employees modify empName varchar(16) first;

列的重命名(change)
alter table t5 change addr address;

表的重命名(rename,to)
alter table t1 rename t2;
alter table t1 to t2;

引擎转换
ALTER TABLE mytable ENGINE=innodb;

drop 删除数据库中的库、表、索引、函数、存储过程等
drop database if exists ds;删除数据库(先要到其它数据库)
drop table if exists emp;删除表
drop user 'tom'@'%';删除用户

insert 插入到表中
insert into emp(id, name, age) values (1, tom, 20);
insert into t1 values (now(), now());
insert into t1 select 1, 2;
insert into emp (age,sex) select age,sex from dept;
insert ignore into表示,如果中已经存在相同的记录,则忽略当前新数据;

update 更新
update t1 set ID=1.2 where ID=2;
update emp set salary = salary*1.1 where ID>=50;

delete 删除表中的数据
delete from emp where id=2;

truncate 删除表中的所有数据
truncate table sales;复位(自动编号从1开始)

select user,host,password from mysql.user;

grant 为用户授权
grant all on *.* to 'root'@'10.1.1.135' identified by 'aixocm' with grant option;
grant select,insert on ds.* to 'tom'@'%' identified by 'aixocm';
flush privileges;刷新权限
GRANT ... WITH MAX_USER_CONNECTIONS 2;
GRANT ALL PRIVILEGES ON shandong.* TO 'demo'@'%'WITH GRANT OPTION;
GRANT REPLICATION SLAVE ON *.* TO 'slave001'@'192.168.0.99' IDENTIFIED BY '123456';---flush privileges;

revoke 撤销特定的权限
revoke select on ds.* from 'tom'@'%';

show 查看数据库中的信息
show databases;
show create table emp; \G
show * from dept;
show engines;
show variables like '%..%';
show table status like '%t1%'\G
show grants for 'tom'@'%';
show procedure status\G
SHOW COLUMNS
show grants; show grants for 'user'@'host'
SHOW TABLE STATUS from mytest where Name='test';
show engine innodb status; 看看InnoDB所有的数据都已经同步到磁盘上去了
show table status from libra where engine='innodb' \G 查看innodb的表
show grants for root@localhost \G 查看用户的权限
show global variables like "%genera%";

set
set password =password('你的密码');
set foreign_key_checks = 0;
set time_zone = '+9:00';

set global auto_increment_offset=2;
set global auto_increment_increment=2;
set session auto_increment_increment=2;
set session auto_increment_offset=2;

flush
flush tables with read lock; 施加锁,表示把位于内存上的表统统都同步到磁盘上去,然后施加读锁
flush logs; 滚动下日志

replace
除非表有一个PRIMARY KEY或UNIQUE索引,否则,使用一个REPLACE语句没有意义
update candidate set education = replace(education,'科','学') where education like '%科%';
把数据中出现"科"的都替换为"学"。

EXPLAIN
EXPLAIN table_name或EXPLAIN SELECT select_options
前者可以得出一个表的字段结构等等,后者主要是给出相关的一些索引信息

delimiter // 改变结束符
call sp1() 调用sp1函数

分组聚合
select deptno,count(1) from emp group by deptno;
select deptno,count(*) from emp group by deptno having count(*) > 1;
group by子句要放在where子句之后。如果想取某个年龄段人数大于1的,不能用where count(*) > 1 ,因为聚合函数不能放在where子句之后。要用having子句

多表查询
select a.empName, b.deptName from emp a, dept b where a.deptno = b.deptno;

内链接,左外,右外

help contents;

自动增长恢复
alter table xxx AUTO_INCREMENT 1;

=any 等同于in
!=all 等同于 not in
Some 和any同义
All,any ,some可以使用除了=,!=之外运算符,比in强大

MySQL语法的更多相关文章

  1. MYSQL 语法大全自己总结的

    mysql语法大全 --------数据链接---------------------数据库服务启动net start mysql --关闭服务net stop mysql --登录 -u,-p后面不 ...

  2. 学习mysql语法--基础篇(一)

      前  言  mysql  mysql语法--本篇学习都是通过使用Navicat Premium(数据库管理工具),连接mysql数据. 本篇学习主要有两个部分:    一.创建用户,创建数据库,给 ...

  3. 学习mysql语法--基础篇(二)

      前  言  mysql  mysql语法--本篇学习都是通过使用Navicat Premium(数据库管理工具),连接mysql数据. 本篇学习主要有两个部分: [SQL语句的组成]   DML ...

  4. mysql语法之case when then与列转行

    mysql语法中case when then与列转行的使用场景非常丰富. case语句类似java中条件分支语句的作用,可以类比java中的switch语句或者if语句来学习. 其语法如下: case ...

  5. mongo 与 传统mysql语法对比

    MongoDB语法                                  MySql语法 db.test.find({'name':'foobar'})<==> select ...

  6. Mongodb与mysql语法比较

    Mongodb与mysql语法比较   mongodb与mysql命令对比 传统的关系数据库一般由数据库(database).表(table).记录(record)三个层次概念组成,MongoDB是由 ...

  7. mongodb linux基本启动 基础增删改 mysql语法的对比

    一.主流数据源类型 还存在自定义数据源以及REST接口数据,共6中数据源. 二.linux下启动连接数据库 进去mongodb的目录启动服务:mongo --host 192.168.320.826 ...

  8. mysql 基础篇5(mysql语法---数据)

    6 增删改数据 -- ********一.增删改数据********* --- -- 1.1 增加数据 -- 插入所有字段.一定依次按顺序插入 INSERT INTO student VALUES(1 ...

  9. MongoDB(五)mongo语法和mysql语法对比学习

    我们总是在对比中看到自己的优点和缺点,对于mongodb来说也是一样,对比学习让我们尽快的掌握关于mongodb的基础知识. mongodb与MySQL命令对比 关系型数据库一般是由数据库(datab ...

  10. mysql 语法总结

    设置SQL语句所用的字符编码:set names UTF8; 判断指定的数据库是否存在:DROP DATABASE IF EXISTS  库; 开始使用指定的数据库:USE 库; 创建数据库CREAT ...

随机推荐

  1. 01- 使用brew 安装ant -学习笔记(一)

    1.卸载Mac OS下brew工具:ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/mast ...

  2. JSON序列化和反序列化

    public class JSONHelper { public static string Serialize<T>(T obj)//序列化为JSON { System.Runtime. ...

  3. C++学习17派生类的构造函数

    基类的构造函数不能被继承,在声明派生类时,对继承过来的成员变量的初始化工作也要由派生类的构造函数来完成.所以在设计派生类的构造函数时,不仅要考虑派生类新增的成员变量,还要考虑基类的成员变量,要让它们都 ...

  4. Intellisense for Xrm.Page in CRM 2011

    Intellisense for Xrm.Page in CRM 2011 In CRM 2011 javascripts for crm forms can be stored externally ...

  5. node在安装完成后,出现node不是内部或外部命令

    node在安装完成后,查看node版本 node -v出现"node不是内部或外部命令"郁闷. 各种搜索之后,处理好了问题了. 一张图解决问题.

  6. Redo与undo在开发中的使用

    redo:记录用户的操作.(commit) undo:相反的用操作.(rollback) checkpoint:redo真正写入物理存储.(定时写---定时策略) ================== ...

  7. SparkSQL使用之如何使用UDF

    使用java开发一个helloworld级别UDF,打包成udf.jar,存放在/home/hadoop/lib下,代码如下: package com.luogankun.udf; import or ...

  8. python核心编程 第二天

    1.标准输入输出: import sys saveout=sys.stdout#保存当前输出状态 logfile=open('E://log.txt','r')# 打开文件 sys.stdout=lo ...

  9. Swift学习—字符串&数组&字典

    字符串 OC和Swift中字符串的区别 在OC中字符串类型时NSString,在Swift中字符串类型是String OC中字符串@"",Swift中字符串"" ...

  10. oracle 删除表、表空间、用户时,如何释放磁盘空间

    truncate table tablename DROP STORAGE; drop 执行drop table xx 语句drop后的表被放在回收站(user_recyclebin)里,而不是直接删 ...