数据库的基本增删改查

	回顾mysql

Sql语句四大类:

1.DDL语句:数据定义语言,用来定义数据库,表,列。
2.DML:数据操作 (增删改) 。
3.DCL:数据控制语言 ,用于定义访问权限。Rm -rf
4.DQL:数据查询语句, 用来查询记录。
单表查询
多表查询
1.1对1
2.多对1
3.多对多

常用类型:
Int :整形
Varchar:可变字符串 最大6w个字节。
Char :固定长度字符串。Char(2)

Date:yyyy-MM-dd
Datetime:yyyy-MM-dd hh:mm:ss

Decimal:浮点数类型

如果存储的字符串长度几乎相等,使用 char定长字符串类型。

注意:字符串类型和日期类型需要加单引号。

Not null :这个列名添加数据时不能为空。

问你某某sql语句怎么优化。
Sql语句他不是写死的。他必须搭配应用场景做相对于的修改。

1.DML语句:
1.1插入数据:
语法:
Insert into 表名(列名1,列名2,…) Values(值1,值2)
INSERT INTO student(s_id,s_name,crete_time) VALUES(7,‘黄正杰’,‘2020-03-19 10:56:00’)

   Insert  into  表名   Values():默认所有列都要按照顺序添加数据。

1.2删除数据:
Where:判断条件
语法:DELETE FROM 表名 where 条件

DELETE FROM student WHERE s_id=4
1.3修改数据:
UPDATE 表名 SET 列名1=值1,列名2=值2 where 条件

UPDATE student SET s_home=‘河南郑州’ WHERE s_name=‘陈长川’

2.DCL语句
2.1创建用户:
CREATE USER 用户名@localhost(ip地址) IDENTIFIED BY ‘密码’

Identified: aɪˈdentɪfaɪd

2.2给用户授权
	语法:
	GRANT  权限1,权限2,权限3   ON  wl18301.*TO  用户名@localhost(ip)

权限:
Create:创造
GRANT :授予
Insert:新增
Delete:删除
Select:查询
Update:修改

2.3:撤销用户权限
语法:
Revoke 权限1,权限2 ON wl18301.*FORM 用户名@localhost(ip)

2.4 查看用户权限
	Show grants for 用户名

2.5 删除用户;
	DROP USER 用户名

3,DQL语句
语法:
Select *(查询所有的列) s_home //要查询的列名
FROM student //要查询的表
Where XXXXXXXXX //查询条件
Order by 字段 DESC(降序排序) ASC(升序排序) //排序条件

1.查询所有数据
SELECT *
FROM student;

2.查询所有人的户籍地。(查询指定列)

SELECT s_name,s_home
FROM student;

3.1条件查询
= ,!= ,<= ,>= >,<
AND:并且
OR :或者
In():查询集合
Not:非
Is null:查询所有为空值的数据

2.查询所有 籍贯在武汉 并且密码不为123456的人的户籍地
SELECT s_name,s_home
FROM student
WHERE s_home=‘湖北武汉’ AND s_password!=‘123456’

3.查询所有 籍贯为湖北孝感 并且id小于5 的人的账户密码
Select s_user, s_password
From student
Where s_home=’湖北孝感’ and s_id<5

4.查询籍贯为湖北武汉 或者 籍贯为湖北孝感的人的所有信息
SELECT *
FROM student
WHERE s_home=‘湖北武汉’ OR s_home=‘湖北孝感’

5.查询 所有 id为 1,3,5的人的所有信息
SELECT *
FROM student
WHERE s_id IN (‘1’,‘3’,‘5’)
6.查询所有 id 不是 1,3,5的人的所有信息
SELECT *
FROM student
WHERE s_id NOT IN (‘1’,‘3’,‘5’)

7.查询所有账户为空的信息。
SELECT *
FROM student
WHERE s_user IS NULL

3.2模糊查询
语法:
Select *
From 表名
Where e_name LIKE ‘值’;
Like: %:可以匹配0-n个字母
_: 可以匹配任意字符。
%值%
1.我要查询所有姓张员工的所有信息
SELECT *
FROM emp
WHERE e_name LIKE ‘张%’;

2.我要查询名字中含有金的员工的信息。
SELECT *
FROM emp
WHERE e_name LIKE ‘%金%’;

3.查询所有不重复员工的工资:
SELECT DISTINCT sal,groups
FROM emp

4.排序:
查询所有人信息,按照工资进行降序排列
SELECT *
FROM emp
ORDER BY sal DESC

查询所有人信息,按照工资进行降序排列,工资相同的情况下,按年龄进行升序排列
SELECT *
FROM emp
ORDER BY sal DESC,age ASC

如果你在sql语句里面做了计算 ±*/ 一定要给我们字段名加上IFNULL()。
查询所有人的工资(底薪+奖金)
SELECT e_name,IFNULL(sal,3000)+IFNULL(comm,0)
FROM emp

聚合函数:
MAX():最大值
MIN():最小值
CONUT():计数
SUM():求和
AVG():平均值
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值