sql语句
博客专区 > zuodev 的博客 > 博客详情
sql语句
zuodev 发表于2年前
sql语句
  • 发表于 2年前
  • 阅读 5
  • 收藏 0
  • 点赞 1
  • 评论 0

腾讯云 技术升级10大核心产品年终让利>>>   

摘要: hibernate、DML、DQL等

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;


共有 人打赏支持
粉丝 0
博文 37
码字总数 18402
×
zuodev
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: