数据库语句对大小写不敏感
在mysql数据库中,所有字符类型数据都必须加上单引号或双引号
那么之后将会大小写敏感
数据库模式定义语言(Data Definition Language)
CREATE DATABASE
'...单引号可以不要'
character ‘utf8’
CREATE TABLE xxx (
id INT(8)AUTO_INCREMENT
PRIMARY KEY ,
sup varchar(50)comment
‘供应厂商’ ,
name varchar(20) ,
password varchar(20) ,
YMD DATE ,
YMDHms TIME ,
YMDHms TIMEstamp ,
money double(8,2)-- 最后不能有逗号
);
CREATE DATABASE xxx (
id INT(8) PRIMARY KEY ,
);
数据操纵语言(Data Manipulation Language)
SYSDATE()
系统数据
- 增 – 为表添加数据
– insert into 表名 [(列名1,列名2…)] values(值1,值2…) 列的个数与值得个数相对应
– 在mysql数据库中,所有的字符类型数据都必须加上单引号
–为表添加数据
insert into users (id,name,password) values(1,'admin'
,'123'
);
– 不需要添加数据的列一定是可为空的列
insert into users(id,name,password) values(1,'admin'
,'123'
)
– 添加全数据
insert into users values(2,'system'
,'123'
,5000,SYSDATE())
·
以下操作不加where,就是删库,准备跑路吧
-
删 – 删某一行数据
– delete from 表名 [where 列名 = 值] -
改 – 改某一行数据
– update 表名 set 列名 = 新的值 [,列名1 = 新值,列名2…] [where 列名 = 值]
数据查询语言(Data Query Language)
----查 列名列表自己定 条目数量根据数据返回
– 列名使用别名 SELECT 列名称 AS '名称带空格得引号起来'
FROM 表名称
-- 列名的别名 当名称需要使用另外的名称时,可以使用别名 as
select ename as 姓名 from emp;
select ename 姓名 from emp
-- 别名中出现空格 别名需要使用引号引起来
-- 在sql中 空格是具有特定意义的
select ename "姓 名" from emp
-- 查询所有员工信息,员工工资上调百分之30
-- 表名也可以使用别名
select e.empno,e.ename,e.job,e.mgr,e.hiredate,e.sal*1.3 sal,e.comm,e.deptno
from emp e
– 表名使用别名 SELECT e.xxx FROM emp e
- SELECT 列名称 FROM 表名称 [where …过滤条件]
- LIKE
'%e%'
;_ 一个占位符;% 占位符 零或多个字符 - ORDER BY 列名 排序 两种排序方式
– ASC 升序(默认) ascend
– DESC 降序 · · · descend
推荐阅读 内外连接
https://blog.csdn.net/tayngh/article/details/99692541
https://blog.csdn.net/zjt980452483/article/details/82945663
– 联表查询
- 主外键关联情况
– 两个表查询过程中 两个表数据穿插交互匹配 形成了笛卡尔积 - 等值查询
等效于
内连接 inner join (自然连接)
SELECT e.empno,e.ename ,e.job,e.mgr,e.hiredate,e.sal,e.comm , d.deptno , d.dname , d.loc
FROM emp e, dept d – 直接一个逗号
ORDER BY d.deptno
WHERE e.deptno = d.deptno
ORDER BY e.empno ;
SELECT * – 内连接 inner join
FROM emp e left inner join dept d – LEFT JOIN
ON e.deptno = d.deptno
ORDER BY e.empno ;
- 外连接查询
– 左外连接查询
FROM emp e left outer join dept d
– 右外连接查询
-
子连接
-
函数
-
单行函数 : 字符 数字 日期 转换 去空
–SYSDATE()
系统数据
– 字符函数 :
lower( )
upper( )
转换大小写
length( ) 字符长度– 数字函数 :
round( ) 四舍五入
ceil( ) 向上取整
floor( ) 向下取整
= truncate( X,D) 截断小数 D位小数后不要
mod(79,9) 取模 = 取余– 日期函数
MONTHS_BETWEEN() 两个月份的差 (Oracle)
LAST_DAY( ) 指定当月最大的一天
-
mysql日期转换推荐@@@
https://www.cnblogs.com/diandianquanquan/p/10852620.html
- 隐式转换 : 自动转换
- 显示转换 :
-- to_char
-- to_number
-- str_to_date
- 组函数
--
>https://www.w3school.com.cn/sql/sql_isnull.asp
- 分组查询 -- group by
- 规则:
GROUP BY 中存在的列,在select中不一定有
在select中存在的非组函数列,在group by中必须要有
ANY any
你的身高高于某一个
你可以比他们班某一个人高
ALL all
你的身高高于你班任何一个 /任意一个/任何人
你的身高于你班所有人
它比任一行星大
It’s bigger than any other planet
它比任何行星大
It’s bigger than any planet
它比所有行星大
It’s bigger than all the planets
它比太阳系某颗行星大
It’s bigger than a planet in the solar system
数据控制语言 (Data Control Language)
- 管理用户 授权
create / drop /update user set
star transaction
commit
rollback --发现问题回滚事务
select @@autocommit
--1自动提交
set ~ =0
事务四大特征
1原子性:不可分割最小操作
2持久性:一旦提交/回滚持久更新
3隔离性:(级别)多个事务之间相互独立不影响
4一致性:数据总量不变
serialized 串行化 加锁不给别人读
repeatable read 幻读(会变化)
read committed ~ 不可重复读
read uncommitted ~ ~ 脏读
(读没有提交的数据)
张三 欠条赚一倍 对面亏两倍
张三失败 引发 两次读取不一样