博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
MySQL常用sql语句大全
阅读量:6619 次
发布时间:2019-06-25

本文共 3554 字,大约阅读时间需要 11 分钟。

创建数据库

1复制代码
create database dbname;复制代码

删除数据库

1复制代码
drop database dbname;复制代码

选择数据库

1复制代码
use dbname;复制代码

创建表

12345678复制代码
CREATE TABLE IF NOT EXISTS `book`(   `id` INT UNSIGNED AUTO_INCREMENT,   `title` VARCHAR(100) NULL,   `author` VARCHAR(40) NOT NULL,   `date` DATE,   INDEX title_index(title(100)),   PRIMARY KEY ( `id` ))ENGINE=InnoDB;复制代码
  • AUTO_INCREMENT定义列为自增的属性,默认自增1,一般用作主键
  • NOT NULL指定该字段不能为空, 在操作数据库时如果输入该字段的数据为NULL ,就会报错
  • PRIMARY KEY关键字用于定义列为主键
  • ENGINE 设置存储引擎
  • CHARSET 设置编码
  • INDEX设置列为普通索引、也可以使用UNIQUE指定唯一索引、 FULLTEXT指定全文索引

添加表字段

1复制代码
alter table book add press varchar;复制代码

删除表字段

1复制代码
alter table book drop press;复制代码

修改表字段

1复制代码
alter table book modify press char;复制代码

查看表结构

1复制代码
show columns from book;复制代码

修改表名

1复制代码
alter table book RENAME TO book1;复制代码

删除表

1复制代码
drop table book;复制代码

创建索引

123复制代码
create index title_index ON book(title(100)); alter table book ADD INDEX title_index(title);复制代码

删除索引

1复制代码
drop index title_index ON book;复制代码

插入数据

1234567复制代码
insert into book values(值1,值2,....);#值的顺序与字段在表中的顺序一致insert into book(title,author)     values('Java学习路线','Java学习录');#为指定字段赋值   insert into book(title,author)     select title,author from test;#copy另一张表的数据复制代码

修改表数据

1复制代码
update table set title='学习笔记',date='2019-05-21'复制代码

删除表数据

123复制代码
truncate table book;#删除表中所有数据delete from book where xx=yy;#根据条件删除表中数据复制代码

查询

1复制代码
select * from book;复制代码

常用函数

1234567891011121314151617181920212223复制代码
character_length("title") #字符串title的字符数concat("title","author") #将字符串title和author合并为一个字符串concat_ws(",""title","author") #将字符串title和author合并为一个字符串,合并时使用逗号作为分隔符lower("title") #将字符串title的内容转为小写upper("title") #将字符串title的内容转为大写reverse("title") #反转字符串titleabs("price") #求price的绝对值avg("price") #求price的平均值count("price") #求price的总记录数max("price") #求price的最大值min("price") #求price的最小值sum("price") #求price的和rand()#返回0-1之间的随机数adddate("date",n) #date加上n天的时间addtime("date",n) #date加上n秒的时间curdate() #当前日期current_time() #当前时间current_timestamp() #当前日期时间datediff(d1,d2) #d1和d2相隔的天数period_diff(d1,d2) #d1和d2相隔的月数subdate(d,n) #d减去n天的日期subtime(d,n) #d减去n秒的时间connection_id()#服务器当前连接数复制代码

case when

123456789101112131415复制代码
CASE expression    WHEN condition1 THEN result1    WHEN condition2 THEN result2   ..    WHEN conditionN THEN resultN    ELSE resultEND#CASE 表示函数开始#END 表示函数结束#如果 condition1 成立#则返回 result1#如果 condition2 成立#则返回 result2#当全部不成立则返回 result#而当有一个成立之后,后面的就不执行了复制代码

IF

1复制代码
IF(expr,v1,v2)#如果表达式 expr 成立,返回结果 v1;否则,返回结果 v2。复制代码

IFNULL

1复制代码
IFNULL(v1,v2)#如果 v1 的值不为 NULL,则返回 v1,否则返回 v2复制代码

去除结果集中的重复元素

1复制代码
select distinct(title) from book;复制代码

模糊查询

123复制代码
select * from book where title="Java%";#查询以Java开头的数据,只有这样使用索引以下两种不使用索引select * from book where title="%Java";#查询以Java结尾的数据select * from book where title="%Java%";#查询包含Java的数据复制代码

合并结果集

1复制代码
select title from book1 union select title from book2复制代码

连接(left jion/right jion/jion/逗号)

1234复制代码
select * from book1 left jion book2 where xx=yy #获取左表所有记录,即使右表没有对应匹配的记录select * from book1 right jion book2 where xx=yy #获取右表所有记录,即使左表没有对应匹配的记录select * from book1 jion book2 where xx=yy #获取两个表中字段匹配关系的记录select * from book1 , book2 where xx=yy#同jion复制代码

分组

1复制代码
select count(*) from book group by author ='Java学习录' #查询公众号Java学习录一共写了多少篇文章复制代码

排序

12复制代码
select * from book order by date ASC#默认就是ASC 可省略,按date升序排列select * from book order by date DESC#按date降序排列复制代码

分页

123复制代码
select * from table limit 5; #返回前5行select * from table limit 0,5; #同上,返回前5行select * from table limit 5,10; #返回6-15行复制代码

推荐阅读

博客所有文章首发于公众号《Java学习录》转载请保留 扫码关注公众号即可领取2000GJava学习资源

转载于:https://juejin.im/post/5ce5f3fbf265da1b695d3584

你可能感兴趣的文章
【转】.so兼容32位和64位
查看>>
[唐诗]别薛华-王勃
查看>>
Java使用增强for循环和迭代器遍历Map集合
查看>>
Jmeter组件执行顺序与作用域
查看>>
基于Redis 千万级用户排行榜最佳实践
查看>>
MVC layout 命名空间引用问题
查看>>
23.4. 服务监控
查看>>
Oracle中如何判断一个字符串是否含有汉字(中文)
查看>>
Java 获取成员变量&构造函数
查看>>
【Mysql】如何查看mysql软件版本信息
查看>>
SQL优化常用方法22
查看>>
Linux安装ImageMagick与JMagick完成过程及配置
查看>>
firefox里面title乱码
查看>>
简析项目中常用的七参数转换法和四参数转换法以及涉及到的基本测量学知识...
查看>>
手把手教你接口自动化测试 – SoapUI & Groovy
查看>>
Proxool 注册shutdown hook的代码
查看>>
SQL通过日期计算年龄
查看>>
git使用(公钥私钥产生--远程库添加公钥--本地库关联远程库-使用)
查看>>
天猫双11第九年:史无前例的社会化大协同与全球商业未来
查看>>
提升代码可读性的10个技巧
查看>>