mysql 语法大全
1、DDL—数据定义语言(Data Define Language):create(创建),alter(修改),drop(删除),TRUNCATE(截断),RENAME(重命名);
2、DML—数据操纵语言(Data Manipulation Language):select(查询),delete(删除),update(更新),insert(新增);
3、DCL—数据控制语言(Data Control Language):grant(添加权限),revoke(回收权限);
DDL操作:
注意:使用DDL语言时,必须在动词后跟上数据库对象名词(例如:TABLE、VIEW、INDEX、SCHEMA、TRIGGER等)。
数据库的链接
# mysql -h 127.0.0.1 -u root -p
-A 不预读数据库信息,提高连接和切换数据库速度,使用--disable-auto-rehash代替
--default-character-set 使用的默认字符集
-e 执行命令并退出
-h 主机地址
-p 连接到服务器时使用的密码
-P 连接的端口号
create database test1 ;
show databases;
use mysql;
drop database test1;
CREATE [TEMPORARY] TABLE [IF NOT EXISTS] [database_name.] <table_name>
(<column_name> <data_type> [[not] null],…
)
desc emp;
show create table emp ;
alter table emp rename users;
drop table emp;
alter table emp modify ename varchar(30);
alter table emp add column age int(3);
alter table emp change age age int(4);
alter table emp drop column age;
前者可以修改列名称,后者不能.
change需要些两次列名称.
字段增加修改 add/change/modify/ 添加顺序:
1 add 增加在表尾.
2 change/modify 不该表字段位置.
3 修改字段可以带上以下参数进行位置调整(frist/after column_name);alter table emp change age age int(2) after ename;
alter table emp change age age int(3) first;
//指定字段,
//自增,默认值等字段可以不用列出来,没有默认值的为自动设置为NULL
insert into emp (ename,hiredate,sal,deptno) values ('jack','2000-01-01','2000',1);//可以不指定字段,但要一一对应
insert into emp values ('lisa','2010-01-01','8000',2);
insert into emp values ('jack chen','2011-01-01','18000',2),('andy lao','2013-01-01','18000',2);
update emp set sal="7000.00" where ename="jack";update emp e,dept d set e.sal="10000",d.deptname=e.ename where e.deptno=d.deptno and e.ename="lisa";
//请仔细检查where条件,慎重
delete from emp where ename='jack';
//查看所有字段
select * from emp;//查询不重复记录
select distinct(deptno) from emp ;
select distinct(deptno),emp.* from emp ;//条件查询
//比较运算符: > < >= <= <> != ...
//逻辑运算符: and or ...
select * from emp where sal="18000" and deptno=2;
//desc降序,asc 升序(默认)
select * from emp order by deptno ;
select * from emp order by deptno asc;
select * from emp order by deptno desc,sal desc;
select * from emp limit 1;
select * from emp limit 100,10;
select * from emp order by deptno desc,sal desc limit 1;
聚合:函数:count():记录数 / sum(总和); / max():最大值 / min():最小值
select count(id) from emp ;
select sum(sal) from emp ;
select max(sal) from emp ;
select min(sal) from emp ;
//分组统计
select count(deptno) as count from emp group by deptno;
select count(deptno) as count,deptno from emp group by deptno;
select count(deptno) as count,deptno,emp.* from emp group by deptno;
select count(deptno) as count,deptno from emp group by deptno having count > 2;
select count(sal),emp.* from emp group by sal, deptno with rollup ;
- left join :左连接,返回左表中所有的记录以及右表中连接字段相等的记录;
- right join :右连接,返回右表中所有的记录以及左表中连接字段相等的记录;
- inner join: 内连接,又叫等值连接,只返回两个表中连接字段相等的行;
- full join:外连接,返回两个表中的行:left join + right join;
- cross join:结果是笛卡尔积,就是第一个表的行数乘以第二个表的行数。
select * from emp as e,dept as d where e.deptno=d.deptno;
select * from emp as e inner join dept as d on e.deptno=d.deptno;
select * from emp as e left join dept as d on e.deptno=d.deptno;
select * from emp as e right join dept as d on e.deptno=d.deptno;
//=, !=
select * from emp where deptno = (select deptno from dept where deptname="技术部");
select * from emp where deptno != (select deptno from dept where deptname="技术部");//in, not in
//当需要使用里面的结果集的时候必须用in();
select * from emp where deptno in (select deptno from dept where deptname="技术部");
select * from emp where deptno not in (select deptno from dept where deptname="技术部");//exists , not exists
//当需要判断后面的查询结果是否存在时使用exists();
select * from emp where exists (select deptno from dept where deptno > 5);
select * from emp where not exists (select deptno from dept where deptno > 5);
union:返回去重之后的结果
select ename from emp union select ename from emp;union all:返回所有结果
select ename from emp union all select ename from emp;
grant select,insert on test.* to 'db_user_1'@'localhost' identified by '123456';
flush privileges;
revoke insert on test.* from 'db_user_1'@'localhost';
二、Mysql数据类型
create table t1 (id int , id2 int(5));
create table t2 (id int , id2 int(5) zerofill);
create table t3 (id int , id2 int(5) unsigned);
只用于整数类型
产生唯一标识
值从1开始,逐行增加
一个表中最多只能存在一个自增列
自增列应该定义为not null
自增列应该这只为 primary key 或者 unique
id int not null auto_increment primary key
create table t6 (id bit(1));
select bin(id) from t6;
timestamp:返回yyyy-mm-dd hh:mm:ss 宽度19timestamp:不适合存放久远日期,超出范围则会采用零值填充//不同格式的显示零值格式
d date, t time,dt datetime
+------------+----------+---------------------+
| d | t | dt |
+------------+----------+---------------------+
| 2016-11-25 | 14:52:44 | 2016-11-25 14:52:44 |
+------------+----------+---------------------+//默认值的体现
id1 timestamp
+---------------------+
| id1 |
+---------------------+
| 2016-11-25 14:55:45 |
+---------------------+//timestamp字段只能有一个"CURRENT_TIMESTAMP"
+-------+-----------+------+-----+---------------------+-----------------------------+
| Field | Type | Null | Key | Default | Extra |
+-------+-----------+------+-----+---------------------+-----------------------------+
| id1 | timestamp | NO | | CURRENT_TIMESTAMP | on update CURRENT_TIMESTAMP |
| id2 | timestamp | NO | | 0000-00-00 00:00:00 | |
+-------+-----------+------+-----+---------------------+-----------------------------+//timestamp和时区相关:SYSTEM 指的是和主机时区保持一致
show variables like "%_zone";
+------------------+--------+
| Variable_name | Value |
+------------------+--------+
| system_time_zone | CST |
| time_zone | SYSTEM |
+------------------+--------+//修改时区
set time_zone="+9:00"/在 [mysqld] 之下加 default-time-zone=timezone
year:默认为4位格式.1901~2155和0000. 2位的已经不推荐,高版本已经不支持了.
datetime支持范围宽度大(1000-01-01 00:00:00到9999-12-31 23:23:59)
- char定长,效率高,在创建字段的时候就已经指定,一般用于固定长度的表单提交数据存储
- char在检索的时候回去掉尾部的空格
- varchar是动态长度
- varchar在检索的时候回保留尾部的空格
- varchar将实际内容单独存储在聚簇索引之外,内容开头用1到2个字节表示实际长度(长度>255时需要2个字节)
- 字符类型若为gbk,每个字符最多占2个字节,字符类型若为utf8,每个字符最多占3个字节
create table `t8` (`gender` enum('m','f') default null
) engine=innodb default charset=utf8
create table t9 (col set ('a','b','c','d'));
三、Mysql运算符
alter table m_money_process AUTO_INCREMENT =10;
mysql 语法大全相关推荐
- Mysql语法大全(命令行)(简洁、明了、全面)
Mysql命令行的语法 另外一个Mysql语法大全的版本:点这里 两个Mysql语法大全以及命令行代码!!!基本上学习Mysql没有问题 嘿嘿!学习是一个长期的过程!!!还会继续更新!!! 基本的My ...
- mysql语法大全w3school_(二)mysql:在w3schools文档上学习sql语法(使用数据库创建一张表)...
1.选中要使用的数据库(选中上篇创建的test数据库) 现有的数据库 mysql>use test; 则选中test数据库: 2.创建一张表 2.1column代表每一列的名称,datatype ...
- MySQL语法大全_自己整理的学习笔记
select * from emp; #注释 #--------------------------- #----命令行连接MySql---------#启动mysql服务器 net start my ...
- mysql语法大全和jdbc知识汇总
以前自己学习时候的笔记 导入数据 load data local infile "路径" into table 表名person load data local infile 'C ...
- MySQL语法语句大全
MySQL语法语句大全 一.SQL速成 ; B/ X* Q; t/ W) v" ]结构查询语言(SQL)是用于查询关系数据库的标准语言,它包括若干关键字和一致的语法,便于数据库元件(如表 ...
- 干货!MySQL 资源大全
干货!MySQL 资源大全 2016-06-09 程序员的那些事 程序员的那些事 英文:shlomi-noach 译者:伯乐在线 - 夏了夏天 链接:http://blog.jobbole.com/1 ...
- MySQL 资源大全
shlomi-noach 发起维护的 MySQL 资源列表,内容覆盖:分析工具.备份.性能测试.配置.部署.GUI 等. 伯乐在线已在 GitHub 上发起「MySQL 资源大全中文版」的整理.欢迎扩 ...
- Mysql命令大全宁静致远
mysql数据库中最常用的几个命令 Mysql常用命令行大全机第一招.mysql服务的启动和停止netstopmysqlnetstartmysql第二招.登陆mysql语法如下:mysql-u用户名- ...
- MySQL 语句大全
转载:http://5ih.org/?post=185 MySQL 语句大全: 一.基础 1.说明:创建数据库 CREATE DATABASE database-name 2.说明:删除数据库 dro ...
- mysql资源教程_MySQL 超级入门教程以及MySQL 资源大全的分享
MySQL简介 1.什么是数据库? 数据库(Database)是按照数据结构来组织.存储和管理数据的仓库,它产生于距今六十多年前,随着信息技术和市场的发展,特别是二十世纪九十年代以后,数据管理不再仅仅 ...
最新文章
- 广东安网2016:重拳挥出 打造安宁互联网环境
- POJ1321 棋盘问题(DFS)
- 编写Qt Designer自定义控件(一)——如何创建并使用Qt自定义控件
- webscoket绑定php uid,Think-Swoole之WebSocket客户端消息解析与使用SocketIO处理用户UID与fd关联...
- js 前加分号和感叹号的含义
- GPU Gems2 - 8 使用距离函数的逐像素位移贴图
- c语言程序设计实验周信东指针,C语言程序设计实验4 数组 周信东
- Jmeter学习笔记(三)文件上传
- 【脚本开发】:性能测试-Java虚拟用户实现下载脚本
- Hessian的使用与介绍
- Object中的clone方法
- 高级软件工程2017第2次作业
- 面包屑导航条实现三级分类查询
- C语言题目(数组)1
- 详解电容触控芯片与指纹芯片的研发与生产流程
- 港大计算机学院副院长,中科院许榕生教授、香港大学邹锦沛博士等一行访问我校...
- Visio科学图形包免费下载
- dparsf是什么_回顾:第五届DPABI/DPARSF特训营暨DPABISurf加强营
- 原厂技术支持FLD5302和FLD5303升压充电芯片
- 485串口服务器协议,RS485串口服务器
热门文章
- 目前最新android处理器排行榜,2017年最新安卓处理器排行榜 骁龙竟然输给了他
- 报错:Exception opening socket
- Windows下的SysWow64和System32
- U盘不显示容量,显示0字节,无法格式化
- 360度评估反馈实施的注意事项
- Android通知渠道
- 计算机英语趣味知识竞赛题库,2019年小学四年级英语趣味知识竞赛试题
- 计算机简历中的附加信息怎么填,善用简历附加信息体现你的好
- 设计模式之策略模式:鸭子模式
- hilbert曲线序编码matlab,[转载]希尔伯特曲线及其matlab画法