mysql--语句SQL

SQL:重中之重。结构化查询语言。
面向关系的数据库:数据是结构化的。非结构化数据:图片,音频,视频,二进制文件。
面向对象的数据库:使用的不是SQL ,而是类SQL,或者和SQL完全无关。

SQL:

1.数据定义语言:DDL:create Dop Alter Truncate。要求低。
Create database employee Charset set ‘utf-8’;
CREATE TABLE student(id int UNSIGNED auto_increment PRIMARY KEY,name
VARCHAR(5));
CREATE:表示创建数据库相关对象。包括:库,表,视图,触发器,函数,存储,索

DROP:表示放弃(删除)数据库相关对象。
ALTER:表示修改数据库相关对象。
TRUNCATE:清空表中的内容。应用于表。
如无特殊情况,一般都是使用图形界面操作。

2.数据控制语言:DCL:对mysql的用户进行授权和取消授权,无要求。
国内一般不进行权限授权。

3.数据操作语言:DML:insert, update, delete,要求精通
功能无法使用图形界面替代
4.数据查询语言:DQL:select, 要求精通
功能无法使用图形界面替代

不同数据库之间,还有自己拓展的独立的SQL。

– DQL语句
– 1.表查询
select * from employee_table;

– 2.指定列查询
select id ,eid ,ename from employee_table;

– 3.给列取别名 as 可以省略
select id 编号, eid as 员工号 from employee_table;

– 4.查询计算列(统计列)
select id 序号,eid 员工号, esalary*2 as 双倍薪水 from employee_table;

select id 序号,eid 员工号, esalary*2 as 双倍薪水 ,id+eid 无意义 from employee_table;

– 5.where 条件查询,对指定列进行条件筛选 = >= <= < > !=
select id 序号,eid 员工号, esalary*2 as 双倍薪水 from employee_table where eid =’ 1 ’ ;

select * from employee_table where esex = ‘女’;

select * from employee_table where esalary!=2000.0;

select * from employee_table where esalary>2000.0;

– 6.可以使用比较运算符来比较日期,并且日期可以使用字符串
select * FROM employee_table where birthday >‘1990-1-1’;

– 7.between 关键字,使用频率一般,可以使用比较运算符来替代,包含边界
select * FROM employee_table where esalary between 1555 and 2000;

– 8.like 字符串模糊匹配
select * from employee_table where ename like ‘张%’;
select * from employee_table where ename like ‘%三’;
select * from employee_table where ename like ‘%四%’;
– 9.表示单个字符
select * from employee_table where ename like '张
’;

– 10.正则表达式
select * from employee_table where ename regexp ‘\w{0,2}’;

– 11.子查询,等号子查询,只能返回一个结果
select * from employee_table where did =(select did from department_table where did = ‘1’);

– 12. 嵌套子查询
select * from employee_table where did =(select did from department_table where dname like ‘人事%’);

– 13.and or not 逻辑运算符 ()可以提升优先级
select * from employee_table where ename like ‘张%’ and not esalary >3000;

– 14.in子查询
select * from employee_table where id in(1,2);
select * from employee_table where did in (select did from department_table where dname like ‘人事%’);

– 15.all,any 关键词
– 大于all 等同大于最大的,大于any 等同于大于最小的
select * from employee_table where esalary <all(select esalary from employee_table where ename like ‘李%%’);

select * from employee_table where esalary <any(select esalary from employee_table where ename like ‘李%%’);

– 16.max , min
select max(eage) from employee_table where esalary <3000;
select max(eage) from employee_table;
select min(eage) from employee_table

– 17.去重distinct.慎用,对于数据规模比较大的表,性能影响严重。
select DISTINCT ename from employee_table;

– 18.排序,很重要,但容易被忽略,默认按照插入时间排序,排序默认按升序排列
– asc 升序,可以省略 desc 降序,
select * from employee_table ORDER BY eid ;
select * from employee_table ORDER BY eid DESC ;

– 多列排序
select * from employee_table ORDER BY eid, id desc;

– 19.行限定查询
– 限制行数,从第一行开始,相当于limit 0,2
select * from employee_table limit 2 ;
– 限定查询起始位置,限定行数范围
select * from employee_table limit 2,4;

– 20.聚合查询,聚合函数,分组统计 max,min,avg,sum,count
– 只能查询分组列和聚合函数列
select count(0) from employee_table;
select did,count(id) from employee_table GROUP BY did;
select esex,count(*) from employee_table GROUP BY esex;

select did, count(*),max(esalary),min(esalary),avg(esalary),sum(esalary) from employee_table GROUP BY did;

select count(0) FROM employee_table GROUP BY esex;
– count 对null值不进行统计,所以一般是用来统计表的记录数,都会使用count(0)
– count(*)也可以统计列数,但是性能比较低

由于自己主学java方面,所以对于SQL语句得要求还是挺高的,因为到时候做项目得时候,对数据库得操作一般写在java程序里,并不在可视化图形工具上使用。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

A little sea pig

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值