MySQL 数据库

SQL语句是以分号结尾

MySQL注释:(1)#开头 (2)--空格 开头 (3)/* 多行注释 */

DDL操作数据库

show databases;        显示当前mysql中的数据库

create database db_user;       创建新的数据库

show create database db_user;   查看数据库的定义信息

alter database db_user character set utf8;   修改数据库的字符集

drop database db_user; 删除数据库

select database(); 查看当前使用的数据库 如果没有使用返回null

use db_user2;    切换 使用数据库

quit;或者exit; 退出数据库;

DDL操作表

CREATE TABLE语句用于创建新表。

语法:

CREATE TABLE [IF NOT EXISTS] 表名(

字段1 字段类型(长度) 约束,

字段2 字段类型(长度) 约束,

...

字段n 字段类型(长度) 约束

) [charset=utf8];

DROP TABLE语句用于删除现有表。

语法: DROP TABLE [IF EXISTS] table_name

 

当前数据库中的所有表

SHOW TABLES;

查看表的字段信息

DESC student;

在上面学生表的基础上增加一个image列。

ALTER TABLE student ADD image blob;

修改address列,使其长度为60。

ALTER TABLE student MODIFY address varchar(60);

删除image列,一次只能删一列。

ALTER TABLE student DROP image;

表名改为user。

RENAME TABLE student TO user;

查看表的创建细节

SHOW CREATE TABLE user;

修改表的字符集为gbk

ALTER TABLE user CHARACTER SET gbk;

列名name修改为username

ALTER TABLE user CHANGE name username varchar(100);

 

DML操作(增删改)

(1)插入操作:INSERT:

语法: INSERT INTO 表名(列名1,列名2 ...)VALUES(列值1,列值2...);

注意:列名与列值的类型、个数、顺序要一一对应。

可以把列名当做java中的形参,把列值当做实参。

参数不要超出列定义的长度。

如果插入空值,请使用null

插入的日期和字符一样,都使用单引号括起来。

(2)修改操作:UPDATE:

语法:UPDATE 表名 SET 列名1=列值1,列名2=列值2 ... WHERE 列名=值

(3)删除操作:DELETE

语法 : DELETE FROM 表名 【WHERE 列名=值】

 DQL数据查询(重点)

 

查询关键字:SELECT

语法: SELECT 列名 FROM 表名 【WHERE --> GROUP BY-->HAVING--> ORDER BY-->LIMIT】

SELECT selection_list /要查询的列名称/

FROM table_list /要查询的表名称/

WHERE condition /行条件/

GROUP BY grouping_columns /对结果分组/

HAVING condition /分组后的行条件/

ORDER BY sorting_columns /对结果排序/

LIMIT offset_start, row_count /结果限定/

 

查询学号为S _ 1001 ,S _ 1002,S _ 1003的记录

SELECT * FROM stu 
WHERE sid IN ('S_1001','S_1002','S_1003');
等同于
SELECT * FROM stu 
WHERE sid='S_1001' or sid='S_1002' or sid='S_1003';

模糊查询

当想查询姓名中包含a字母的学生时就需要使用模糊查询了。模糊查询需要使用关键字LIKE。

通配符:

_ 任意一个字符

%:任意0~n个字符

字段控制查询

去除重复记录    SELECT DISTINCT sal FROM emp;

和运算   select *,concat(ename,'______',job) from emp;

              SELECT *,sal+IFNULL(comm,0) FROM emp;

排序

order by  字段 desc(asc),字段desc(asc)

聚合函数

聚合函数是用来做纵向运算的函数:

l COUNT():统计指定列不为NULL的记录行数;

l MAX():计算指定列的最大值,如果指定列是字符串类型,那么使用字符串排序运算;

l MIN():计算指定列的最小值,如果指定列是字符串类型,那么使用字符串排序运算;

l SUM():计算指定列的数值和,如果指定列类型不是数值类型,那么计算结果为0;

l AVG():计算指定列的平均值,如果指定列类型不是数值类型,那么计算结果为0;

分组查询

group by 字段

HAVING子句

注:having与where的区别:

1.having是在分组后对数据进行过滤,where是在分组前对数据进行过滤

2.having后面可以使用分组函数(统计函数)

where后面不可以使用分组函数。

where是对分组前记录的条件,如果某行记录没有满足WHERE子句的条件,那么这行记录不会参加分组;而 having是对分组后数据的约束。

LIMIT限制

limit 起始行,这一页的总行数

总结查询

查询语句书写顺序:select 列 from 表 【where- group by- having- order by-limit】

where是对原始数据做筛选

group by 把数据进行分子

having 分组后的筛选

order by 排序

limit 限制

having 必须放在group by的后面

查询语句执行顺序:from 表 where -group by -having - select - order by-limit

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值