2021/9/27数据库

一:创建表语法

1.create table a(字段一,字段二)

alter table a add column id=1 where name=‘张三’
drop table a;
show tables;
desc a;

注意:临时解决中文乱码:set names gbk;

二:约束

2.主键约束:被主键约束的字段中的值唯一,不能重复,也不能为null

create table a(id int primary key)

2.1:主键约束并自增:主键约束的同时数据库会自动+1

create table a(id int primary key auto_increment);
id的值插入时写null数据库库会自增

2.2非空约束:哪个字段添加了非空约束,哪个字段的值不能为null

create table b(
id int primary key auto_increment,
pwd varchar(10) not null:非空约束
);

3.唯一约束:给字段添加unique,添加后的字段以后值只能唯一

create table b(
id int primary key auto_increment,
pwm varchar(100) unique:唯一约束
)

三.查询表中的字段

#查询部门表中的部门名称:
#格式:select 部门名称 from 表名—查询部门表中的部门名称
:–什么都查 字段名:–具体的字段
SELECT * FROM dept
SELECT dname FROM dept; #查询时使用字段名代替了

SELECT dname,loc FROM dept;#查询多个字段的值时用逗号隔开

四.基础函数:lower upper length substr concat replayce ifnull

基础函数

lower(a)变小写–把a的值变小写, upper(a)变大写–把a的值变大写

SELECT dname,UPPER(dname),LOWER(dname),LOWER(‘ABC’) FROM dept

length求长度–一个字母或者数字长度为1,一个汉字的长度是3(utf8)

SELECT ename,LENGTH(ename),job,LENGTH(job)FROM emp

截取substr(a,b,c)–a:字段名 b:开始位置 c:截取长度

SELECT ename ,SUBSTR(ename,2),SUBSTR(ename,2,2) FROM emp

拼接concat(a,b,c)–a:字段名 b:想要拼接的内容 c:想要拼接的内容

SELECT ename ,CONCAT(ename,123,‘abc’) FROM emp

替换内容replace(a,b,c)–a:字段名 b:想要替换的内容 c:替换的内容

SELECT dname,REPLACE( dname ,‘o’,‘666’) FROM dept

判断并替换null-ifnull(a,b)–a:字段名 --b要把null替换成的值

SELECT comm ,IFNULL(comm,0) FROM emp

对小数的处理:round:四舍五入取整 $ ceil:向上取整 & floor:向下取整

SELECT comm ,ROUND(comm),CEIL(comm),FLOOR(comm) FROM emp

对日期的处理:now:获取当前系统时间 & year:获取年 & month:获取月 & day:获取天

SELECT NOW(),YEAR(NOW()),MONTH(NOW()),DAY(NOW())

对时间的处理:hour:获取小时,minute:获取分钟, second(获取秒)

SELECT NOW(),HOUR(NOW()),MINUTE(NOW()),SECOND(NOW())

五.常见的业务中:增删改查CRUD,其中查询需求最多

1.条件查询:

1.1 distinct去重–只能放在要去重的字段名前

SELECT DISTINCT loc FROM dept

1.2 where用来引导判断条件

练习1:查询部门编号 = 40的数据
#select ? from ? where?
SELECT * FROM dept WHERE deptno=40
#练习2:查询部门编号>10的数据
SELECT * FROM dept WHERE deptno>10
SELECT* FROM dept WHERE 1=1#条件永远成立

#练习3:查询部门编号>10并且地址在二区的数据
SELECT * FROM dept WHERE deptno>10 AND loc=‘二区’

#练习4:查询部门编号>10或者地址在二区的数据
SELECT * FROM dept WHERE deptno>10 OR loc=‘二区’

#练习5:查询部门编号=10或者=20或者=30的数据
SELECT * FROM dept WHERE deptno=10 OR deptno=20 OR deptno=30
#同上练习五的需求,被简化
SELECT * FROM dept WHERE deptno IN(10,20,30)
SELECT * FROM dept WHERE deptno NOT IN(10,20,30)

1.3 like模糊查询 %是通配符,通配0-n个字符

#练习1:查询按照员工名字以l开头的员工信息
SELECT * FROM emp WHERE ename LIKE ‘l%’ #以l开头

#练习2;查询按照员工名字包含o的员工信息
SELECT * FROM emp WHERE ename LIKE ‘%o%’ #包含o

#练习3:查询按照员工名字以a结尾的员工信息
SELECT * FROM emp WHERE ename LIKE ‘%a’ #以a

1.4 null数据的处理

#练习1:查询没有奖金的员工信息
SELECT * FROM emp WHERE comm IS NULL
SELECT * FROM emp WHERE comm IS NOT NULL

1.5 between …and在区间范围内的数据

SELECT * FROM emp WHERE sal >5000 AND sal<10000
SELECT * FROM emp WHERE sal BETWEEN 5000 AND 10000

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值