注:以下演示是在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基本语法备忘的更多相关文章

  1. 项目中oracle存储过程记录——经常使用语法备忘

    项目中oracle存储过程记录--经常使用语法备忘 项目中须要写一个oracle存储过程,需求是收集一个复杂查询的内容(涉及到多张表),然后把符合条件的记录插入到目标表中.当中原表之中的一个的日期字段 ...

  2. shell基本语法备忘

    1.第一行要写明shell种类 #!/bin/bash   2.打印输出 #!/bin/bashecho "Hello World !~"   3.变量定义 变量=前后不能有空格, ...

  3. SASS语法备忘

    sass语法 关于sass 3.3.0更新说明——3.3.0 sublime相关插件为:scss语法高亮,sass语法高亮,编译,保存即编译,格式化 文件后缀名 sass有两种后缀名文件:一种后缀名为 ...

  4. Markdown语法备忘

    标题 标题 标题是每篇文章都需要也是最常用的格式,在 Markdown 中,如果一段文字被定义为标题,只要在这段文字前加 # 号即可. # 一级标题 ## 二级标题 ### 三级标题 以此类推,总共六 ...

  5. LESS语法备忘

    变量 很容易理解: @nice-blue: #5B83AD; @light-blue: @nice-blue + #111; #header { color: @light-blue; } 输出: # ...

  6. sql基础笔记备忘

    MySQL中定义数据字段的类型对你数据库的优化是非常重要的. MySQL支持多种类型,大致可以分为三类:数值.日期/时间和字符串(字符)类型. 数值类型:tinyint smallint medium ...

  7. markdown 语法备忘

    markdwon语法, 增加以下CSS代码,可以对markdwon语法产生的文件进行分页操作. <div style="page-break-after:always;"&g ...

  8. [学习笔记] Markdown语法备忘

    Markdown语法总结 标题 # 这是一级标题 ## 这是二级标题 ### 这是三级标题 #### 这是四级标题 ##### 这是五级标题 ###### 这是六级标题 注意#后面要加空格 字体 ** ...

  9. C++语法备忘

    记录一些C++的语法方便日后查看. 1.C++初始化语法 C++中新增加了两种初始化语法,其中大括号初始化器需要C++11以上的实现,使用时可以加等号,也可以不加,而且大括号中可以不包含任何东西,这种 ...

随机推荐

  1. linux 安装SSH Server + FTP Server(openssh-server + vsftp)

    openssh-server (推荐. 一般ssh,ftp 都是单独的,但是这个包含2个) 默认ubuntu 已经安装了, ssh client ,ftp client dpkg -l | grep ...

  2. Html.Partial 和 Html.RenderPartial 、Html.Action 和 Html.RenderAction区别

    Html.Partial 和 Html.RenderPartial不需要为视图指定路径和文件扩展名.因为运行时定位部分视图与定位正常视力使用的逻辑相同.RenderPartial不是返回字符串,而是直 ...

  3. React Native环境搭建(iOS、Mac)

    http://reactnative.cn/docs/0.42/getting-started.html#content 1.安装Homebrew Homebrew, Mac系统的包管理器,用于安装N ...

  4. MVC4 @helper辅助方法

    Razor提供了一种很方便的语法,可以将view页面中部分内容或部分代码抽取出来,变成一个独立的辅助方法.   eg1: @foreach(var item in Model){ <标签tr&g ...

  5. Js获取当前的日期和时间以及时间戳转化为时间

    /** *获取当前时间 *format=1精确到天 *format=2精确到分 */ function getCurrentDate(format) { var now = new Date(); v ...

  6. [Xcode 实际操作]六、媒体与动画-(2)使用图形上下文转换图片为灰度图

    目录:[Swift]Xcode实际操作 本文将演示如何将图片转换为灰度图. 在项目导航区,打开视图控制器的代码文件[ViewController.swift] import UIKit class V ...

  7. JAVA之动态编译

    通过Java动态生成class文件 今天说下JAVA中的动态编译,这个功能根据我现在的了解好像没有见到过用的,我Jio的吧,现在的一些在线代码编缉器可以用到了,这个具体我也不是很清楚.感兴趣的大家可以 ...

  8. python-django框架中使用FastDFS分布式文件系统

    一.安装FastDFS 1-1:执行docker命令安装 # 安装tracker docker run -dti --network=host --name tracker -v /var/fdfs/ ...

  9. WordCount by C# 结对编程

    合作者:201631062210,201631062110 Gitee项目地址:https://gitee.com/zhouyue98/learngit 本次作业的链接地址:https://edu.c ...

  10. WC-第二次作业

    WordCount 第二次作业 码云地址:https://gitee.com/lgcj1218/WordCount/tree/master 一.解题思路 本次作业采用的c#语言 按功能分为了三个类 , ...