文档章节

sql语句

zuodev
 zuodev
发布于 2016/04/20 21:29
字数 1183
阅读 7
收藏 0

hibernate中的查询语句

查询所有:

sql

List<Customer> allCustomer = session.createSQLQuery("select * from t_customer")

                .addEntity(Customer.class).list();

hql

List<Customer> allCustomer = session.createQuery("from Customer").list();

        //全限定类名,起别名

List<Customer> allCustomer = session.createQuery("select c from Customer c").list();

qbc

List<Customer> allCustomer = session.createCriteria(Customer.class).list();

sql的书写与执行顺序

书写顺序:

select 字段... from 表 where 条件 group by 字段 having 条件 order by 字段;

执行顺序:

from >where >group by  >having > select  >order by

数据库

1、创建数据库:create database heima character set utf8 collate utf8_general_ci

2、查看所有数据库:show databases;

        查看创建语句:show create database asin; 

3、修改数据库的编码格式:alter database asin character set gbk;

4、删除数据库

语法:drop database 数据库名称

示例:drop database asin;

5、进入和切换:use 数据库名称  显示当前:select database();

数据表

1、创建表

语法:create table 表名称(

               字段名称 数据类型 [约束],   -- 注释

               字段名称 数据类型 [约束],   -- 横杆和文字之间有空格

               字段名称 数据类型 [约束],

               ... ...

          );"

主键:id  int  primary  key [auto_increment(主键是int)]

非空约束:not null

示例:name  varchar(20)  not null

唯一性约束:unique

示例:idcard  varchar(18)  unique

默认约束:default  默认值

示例:age  int  default 25

2、查看数据表

查看当前数据库中的所有数据表:show tables;

查看数据表的创建语句:show create table 表名;

查看数据表的结构:desc 表名;

3、删除表

语法:drop table 表名;

示例:drop table user;

4、修改数据表

修改表名称:rename table 旧名称 to 新名称;

修改表的编码:alter table 表名 character set 编码;

示例:alter table info character set gbk;


增加字段:alter table 表名 add 字段名称 类型 [约束]

示例:alter table info add idcard varchar(18) unique;


修改字段:alter table 表名 change 旧字段名称 新字段名称 数据类型 [约束]

示例:alter table info change idcard shenfenzheng varchar(20);


修改字段的类型:alter table 表名 modify 字段名 数据类型;

示例:alter table info modify shenfenzheng int;


删除字段:alter table 表名 drop 字段;

示例:alter table info drop shenfenzheng;

五、对数据的单表操作 增加 删除 修改(DML)

1、插入数据

语法:insert into 表名(字段1,字段2,...字段n)  values(值1,值2,...值n); 

示例:insert into info(id,username,password,gender,age,email,salary,state,role,registTime)

values(1,'zhangsan','123','male',28,'zs@163.com',5000,0,'vip','2015-10-10 10:10:10');

2、修改数据

语法:update 表名 set 字段=值,字段=值...... [where 条件]

示例:update info set salary=10000,age=82 where id=1;

3、删除数据

语法:delete from 表名 [where 条件];

示例:delete from info where username='lisi';

六、数据查询操作 (DQL)

查询student表的第2条到4条记录

mysql> SELECT * FROM student LIMIT 1,3;

从student表中查询计算机系和英语系的学生的信息

mysql> SELECT * FROM student WHERE department IN ('计算机系','英语系');

1、查询全部

select * from info;

select id,username,....registTime from info;

2、查询部分

select username,salary from user;

3、去重查询

select distinct dept from user;

select distinct username,password,salary from user;

4、运算查询

select username,salary+10000 from user;

注意:null参与数学运算时还是null

函数ifnull   

select username,ifnull(salary,0)+10000 from user;

取别名

select username,ifnull(salary,0)+10000 as 薪资 from user;   //其中as可以省略

5、聚合函数

sum(字段名)

查询公司每月用于员工薪资的支出

select sum(salary) from user;

count(字段名)

select count(*) from user;

select count(salary) from user;

max(字段名);

select max(salary) from user;

min(字段名)

select min(salary) from user;

avg(字段名)

select avg(salary) from user;

6、排序查询

order by 字段名称 

select * from user order by salary desc;  默认升序

desc:降序   asc:升序

select * from user order by salary desc,id asc;

7、条件查询

单条件查询

select * from user where salary=8500;

符号:=    >     <     >=     <=    !=     <>

多条件查询

select * from user where salary=8000 and age<20;

select * from user where gender='女' or age<20;

select * from user where gender='女' or age<20 and salary>6000;

范围查询

between...and...

select * from user where salary>7000 and salary <10000;

select * from user where salary between 7000 and 10000;    包括端点

枚举查询 in()

select * from user where salary=8000 or salary=8500;

select * from  user where salary in(8000,8500);

模糊查询  like

select * from user where username like '张%';     //%代表任意个字符

select * from user where username like '张_';      //_代表任意一个字符

is null  is not null

8、分组查询 group by      having

需求:查询每个部分的薪水综合

select dept,sum(salary) from user group by dept;

在上面基础上在筛选 总工资大于10000;

select dept,sum(salary) from user group by dept having sum(salary)>10000;

where与having的区别?

where是对分组前的数据进行筛选  having是对分组后的数据进行筛选的

having可以对别名进行查询

select username,salary as sal from user having sal>5000;

select dept,sum(salary) from user where salary>4500 group by dept having sum(salary)>10000 order by sum(salary) desc;


© 著作权归作者所有

共有 人打赏支持
zuodev
粉丝 0
博文 37
码字总数 18402
作品 0
静安
高级程序员
私信 提问
oracle 开发中动态SQL的使用方法

oracle 开发中动态SQL的使用方法 一般的PL/SQL程序设计中,在DML和事务控制的语句中可以直接使用SQL,但是DDL语句及系统控制语句却不能在PL/SQL中直接使用,要想实现在PL/SQL中使用DDL语句及...

陆朋
2013/07/24
0
0
SQL Server里简单参数化的痛苦

一般来说,如果你处理所谓的安全执行计划(Safe Execution Plan),SQL Server自动参数化你的SQL语句:不管提供的参数值,查询总必须通向一样的执行计划。如果你的执行计划里有书签查找,这就...

范大脚脚
2017/11/14
0
0
学习动态性能表 第四篇-(1)-V$SQLTEXT

学习动态性能表 第四篇-(1)-V$SQLTEXT   本视图包括Shared pool中SQL语句的完整文本,一条SQL语句可能分成多个块被保存于多个记录内。   注:V$SQLAREA只包括头1000个字符。 V$SQLTEXT中...

jimbuster
2008/03/30
0
0
从JDBC到Mybatis

从JDBC到Mybatis JDBC操作数据库过程 加载JDBC驱动 建立并获取数据库连接 创建JDBC Statements对象 设置SQL语句的传入参数 执行SQL语句并获取查询结果 对查询结果进行转换处理并将处理结果返...

wjk_snail
2016/06/21
10
0
oracle sql monitor

动态性能视图V$SQLMONITOR,该视图用以显示Oracle监视的SQL语句信息。V$SQLMONITOR、v$sqlplanmonitor中的信息将被实时刷新,频率为每秒1次。SQL语句执行完成后,监视信息将不会被立即删除,...

lych528
07/11
0
0

没有更多内容

加载失败,请刷新页面

加载更多

码云项目100,水一发

简单回顾一下: 早期构想最多的,是希望能将PHP一些类和编码分区做得更细,所以很多尝试。但不得不说,PHP的功能过于单一,是的,也许写C/C++扩展,可以解决问题,那我为什么不用C#或者Golan...

曾建凯
今天
3
0
Spring应用学习——AOP

1. AOP 1. AOP:即面向切面编程,采用横向抽取机制,取代了传统的继承体系的重复代码问题,如下图所示,性能监控、日志记录等代码围绕业务逻辑代码,而这部分代码是一个高度重复的代码,也就...

江左煤郎
今天
4
0
eclipse的版本

Eclipse各版本代号一览表 Eclipse的设计思想是:一切皆插件。Eclipse核心很小,其它所有功能都以插件的形式附加于Eclipse核心之上。 Eclipse基本内核包括:图形API(SWT/Jface),Java开发环...

mdoo
今天
3
0
SpringBoot源码:启动过程分析(一)

本文主要分析 SpringBoot 的启动过程。 SpringBoot的版本为:2.1.0 release,最新版本。 一.时序图 还是老套路,先把分析过程的时序图摆出来:时序图-SpringBoot2.10启动分析 二.源码分析 首...

Jacktanger
今天
6
0
小白带你认识netty(二)之netty服务端启动(上)

上一章 中的标准netty启动代码中,ServerBootstrap到底是如何启动的呢?这一章我们来瞅下。 server.group(bossGroup, workGroup);server.channel(NioServerSocketChannel.class).optio...

天空小小
今天
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部