SQL基本语法备忘
注:以下演示是在mysql命令行下的操作
数据库相关操作
create database mytest;   --创建数据库
create database if not exists mytest;   --如果mytest不存在就创建
create database `create`;   --加反引号创建名字为关键字的数据库
create database mytest charset=utf8;   --指定创建mytest的字符集为utf8
alter database mytest charset=gbk;  --改变mytest的字符集为gbk
show databases;   --显示所有的数据库
show create database mytest;   --查询mytest的字符集
use mytest;  #使用当前数据库
drop database mytest;   --删除mytest数据库
drop database if exists mytest;   --如果mytest存在就删除
注意:SQL语句对大小写不敏感
数据表的 创建、删、查
一些概念
行也叫记录,一行就是一条记录;
列也叫字段,一列是一个字段,
常用操作
/*创建数据表*/
create table teacher(
    id int(4) not null primary key auto_increment,   #not null 不为空; primary key 主键(写了主键可以不写not null);  auto_increment自动增长
    name char(20) not null,
    sex char(10) not null,
    addr char(20) not null default '地址不详'   --default 默认值  这里的数据库字符集必须为gbk或utf8
);
/*查看所有数据表*/
show tables;
/*查看创建表*/
show create table teacher;
show create table teacher \G;   -- 加上\G参数看上去清晰些
/*显示表结构*/
describe teacher;
desc teacher;  --简写
/*删除表*/
drop table teacher;
drop table teacher1, teacher2, teacher3;  --删除三个表
数据的操作
/*插入数据(增)*/
insert into 表名(字段名1, 字段名2) values(值1, 值2);
-----------
insert into teacher(id, name, sex, addr) values(1, 'Leo', 'Male', 'beijing');  --常规插入
insert into teacher(name, sex, addr) values('LiHua', 'Male', 'hangzhou');  --自增插入
insert into teacher(sex, name, addr) values('Female', 'Able', 'shanghai');   --插入字段可以和数据库中的字段顺序不一致,但是值和插入字段的顺序必须一致
insert into teacher values(3, 'ZhangSan', 'Male', 'guangzhou');  --插入字段是可以省略的,插入的值和数据表的字段顺序以及个数都一致
insert into teacher values(null, 'LiBai', 'Male', 'guangzhou');  --自动增长的省略插入
insert into teacher values(null, 'DuFu', 'Female', default);  --默认值的省略插入
/*删除数据(删)*/
delete from 表 [where 条件]
-----------
delete from teacher where name='LiBai';  --删除李白老师的数据
delete from teacher;  --将teacher表中的数据全部删除
/*更新数据(改)*/
update 表名 set 字段1=值1, 字段2=值2 where 条件
-----------
update teacher set name = 'ivan' where id = 1;
/*查询数据(查)*/
select 列名 from 表 [where 条件] [order by 排序字段 asc|desc] [limit 起始位置,获取的记录数]
-----------
select * from teacher;  --查询所有老师的所有字段
select id, name from teacher;  --查询id和name列的数据
select * from teacher where sex='Male';  --查询性别是男的老师
select * from teacher where sex='Male' and addr='shanghai';  --查询所有上海的男老师
select * from teacher where sex='Female' or (sex='Male' and addr='shanghai');  --查询所有女老师或上海的男老师
select * from teacher where addr='shanghai' or addr='guangzhou';  --查询所有上海和广州的老师
select * from teacher where id>=3;  --查询所有id号大于等于3的老师
select * from teacher order by id desc;  --按id由高到低排列
select * from teacher where sex='Male' order by id desc;  --男老师按id由高到低排序
select * from teacher limit 3;  --取前三条数据
select * from teacher limit 0,3;  --从零开始取,取三条数据,效果同上句  (零是第一条数据)
select * from teacher order by id desc limit 3;  --取出倒数三个老师的数据
其他补充
where 句子
select 你要的信息 from 数据表(或多个) where 满足的条件(条件判断)
注:where可以用于select,update或delete中
order by 句子
order by 数字 --按第几列排序。
ASC默认升序,可以不写。反之,DESC是降序。
技巧:可以使用order by "数字" , 判断数据表的字段长度。
union句子
select 你要的信息 from 数据表1 union select 你要的信息 from 数据表2
聚合函数
sum():求和
select sum(id) from teacher;  --求teacher表中id和
avg():求平均值
select avg(id) from teacher;  --求teacher表中id平均值
max():最大值
select max(id) from teacher;  --求teacher表中最大id
min():最小值
select min(id) from teacher;  --求teacher表中最小id
count():记录数
select count(*) from teacher;  --求teacher表总记录数
select count(id) from teacher;  --求teacher表总记录数,同上
select count(*) from teacher where sex='Male';  --求男老师人数
MySQL注释
/**/能够插在句子中间的注释,
#句子末尾直到该行结束,
--句子末尾直到该行结束
注:重复的姓名要显示,使用union all
数据类型
bigint 从 -2^63 (-9223372036854775808) 到 2^63-1 (9223372036854775807) 的整型数据(所有数字)。存储大小为 8 个字节。
int 整形 从 -2^31 (-2,147,483,648) 到 2^31 – 1 (2,147,483,647) 的整型数据(所有数字)。存储大小为 4 个字节
smllint  从 -2^15 (-32,768) 到 2^15 – 1 (32,767) 的整型数据。存储大小为 2 个字节。
tinyint  从 0 到 255 的整型数据。存储大小为 1 字节。
decimal(3,1)   小数;3是总位数,1是小数位数
char(10) 定长
varchar(10) 可变长度
text 大段文本
Mysql中常见的内置函数
select database();  #打印当前数据库名称
select current_user; #打印当前用户
select load_file('C:\\Windows\\System32\\drivers\\etc\\hosts'); #打印一个文件内容
select version(); 数据库版本
小技巧:into + outfile 写入文件
SQL基本语法备忘的更多相关文章
- 项目中oracle存储过程记录——经常使用语法备忘
		
项目中oracle存储过程记录--经常使用语法备忘 项目中须要写一个oracle存储过程,需求是收集一个复杂查询的内容(涉及到多张表),然后把符合条件的记录插入到目标表中.当中原表之中的一个的日期字段 ...
 - shell基本语法备忘
		
1.第一行要写明shell种类 #!/bin/bash 2.打印输出 #!/bin/bashecho "Hello World !~" 3.变量定义 变量=前后不能有空格, ...
 - SASS语法备忘
		
sass语法 关于sass 3.3.0更新说明——3.3.0 sublime相关插件为:scss语法高亮,sass语法高亮,编译,保存即编译,格式化 文件后缀名 sass有两种后缀名文件:一种后缀名为 ...
 - Markdown语法备忘
		
标题 标题 标题是每篇文章都需要也是最常用的格式,在 Markdown 中,如果一段文字被定义为标题,只要在这段文字前加 # 号即可. # 一级标题 ## 二级标题 ### 三级标题 以此类推,总共六 ...
 - LESS语法备忘
		
变量 很容易理解: @nice-blue: #5B83AD; @light-blue: @nice-blue + #111; #header { color: @light-blue; } 输出: # ...
 - sql基础笔记备忘
		
MySQL中定义数据字段的类型对你数据库的优化是非常重要的. MySQL支持多种类型,大致可以分为三类:数值.日期/时间和字符串(字符)类型. 数值类型:tinyint smallint medium ...
 - markdown 语法备忘
		
markdwon语法, 增加以下CSS代码,可以对markdwon语法产生的文件进行分页操作. <div style="page-break-after:always;"&g ...
 - [学习笔记] Markdown语法备忘
		
Markdown语法总结 标题 # 这是一级标题 ## 这是二级标题 ### 这是三级标题 #### 这是四级标题 ##### 这是五级标题 ###### 这是六级标题 注意#后面要加空格 字体 ** ...
 - C++语法备忘
		
记录一些C++的语法方便日后查看. 1.C++初始化语法 C++中新增加了两种初始化语法,其中大括号初始化器需要C++11以上的实现,使用时可以加等号,也可以不加,而且大括号中可以不包含任何东西,这种 ...
 
随机推荐
- 基于Html5的移动端APP开发框架
			
快速增长的APP应用软件市场,以及智能手机的普及,手机应用:Native(原生)APP快速占领了APP市场,成为了APP开发的主流,但其平台的不通用性,开发成本高,多版本开发等问题,一直困扰着专业AP ...
 - linux下如何使用Mysql
			
项目需要:Linux下链接数据库,并进行相关的查询操作 mySql的一些常用命令 启动:net start mySql; 进入:mysql -u root -p/mysql -h localhost ...
 - 选择Netty的理由
			
摘自:http://blog.csdn.net/u010154380/article/details/64443762 <Netty 权威指南>—— 选择Netty的理由 声明:本文是&l ...
 - web前端之Html和Css应用中的细节问题
			
1.居中的n种方法:①.margin: 0 20%; ——设置margin上下外边距的值设置为0,左右外边距设置成相同的百分比,既可将盒子居中. ②.margin: 0 auto;width: 100 ...
 - 由sock引起的感想
			
昨天晚上和同学聊天,他问我你敲了这么多TCP,UDP.到底掌握了什么,我说我敲了很多例子.对这两个模式很清晰,顺便练习了多进程,线程等等. 他说,这样不太好.我一直只是拿这两个例子在练习,没有真正的在 ...
 - 当Python中混进一只薛定谔的猫……
			
本文原创并首发于公众号[Python猫],未经授权,请勿转载. 原文地址:https://mp.weixin.qq.com/s/-fFVTgWVsydFsNu1nyxUzA Python 是一门强大的 ...
 - 杭电1002_A + B Problem II
			
这是该题的链接http://acm.hdu.edu.cn/showproblem.php?pid=1002 具体的题的内容就不过多描述了,想必你已经知道了,当我看完这道题后就知道咋写了,可是这道题从开 ...
 - firefly
			
firefly (9秒社团-游戏服务端开源引擎) 编辑 Firefly是免费.开源.稳定.快速扩展.能 “热更新”的分布式游戏服务器端框架,采用Python编写,基于Twisted框架开发.它包括了开 ...
 - 洛谷P2285 [HNOI2004]打鼹鼠
			
P2285 [HNOI2004]打鼹鼠 题目描述 鼹鼠是一种很喜欢挖洞的动物,但每过一定的时间,它还是喜欢把头探出到地面上来透透气的.根据这个特点阿牛编写了一个打鼹鼠的游戏:在一个n*n的网格中,在某 ...
 - 洛谷P1976 鸡蛋饼(Catalan数)
			
P1976 鸡蛋饼 题目背景 Czyzoiers 都想知道小 x 为什么对鸡蛋饼情有独钟.经过一番逼问,小 x 道出 了实情:因为他喜欢圆. 题目描述 最近小 x 又发现了一个关于圆的有趣的问题:在圆 ...