`
kris_feng
  • 浏览: 10203 次
社区版块
存档分类
最新评论

sql小结

阅读更多

 

SQL基础语法: http://www.w3school.com.cn/sql
建立索引提高查询效率的原则,一般是给在where中经常查询的关键字段加
关键字:select、distinct(不重复出现的值)、where、order by(排序DESC降序)、insert、update、delete
union(多个表联合、作用类似合并):联合表的操作字段必须类型匹配。
limit(偏移量,取出条目数量); 放在结尾处     
exits:跨表连接词,可以连接内表和外表的字段进行条件表达式
MySql:连接数据库   mysql   -h  ip(localhost) -user root -p 密码留白
show databases;显示所有数据库  create data base mydata; use mydata;选中指定数据库  show tables;显示表  desc mytables;
基本增删改查;
建表:声明列  基本字段
create table msg(
id int,
title varchar(60),
name varchar(10),
content varchar(100)
);   
增加列:
alter table msg add age tinyint unsigned;   一定要指定类型
插入行:
insert into msg
(id,title,name,content)
values
(1,'2号','zhu','我是三号'),
(2,'2号','zhang','我是四号'),
(3,'3号','laozi','我是五号');

修改行:
update msg set id ='4' where name = 'zhang';
删除行:
delete  from msg where id = '2';
修改列:
alter table msg change column name newname varchar(10);
删除列:
alter table msg drop name;
select *from msg;  
select name,content from msg where id>2;
删除表:
drop table msg;
 
查询:where、order by、having、group    列名在使用中可以当做变量使用
where(表达式like、>、<、=、in、not、and、or、<>不等于、between):select(查找行)where(查找列表达式)
group by:一般用于统计(将具备共性的字段组合一起),配合max、min、avg、count、sum使用
having:区别于where的在表中取数据,having可以对正在使用的数据进行条件查找
案例1:
create table class(
id tinyint not null default 0,name varchar(4) not null default '',course varchar(8) not null default '',score tinyint not null default 0)engine=innodb default charset=utf8; 

insert into class (id,name,course,score)values
(1,"张三","数学",90),(2,"张三","语文",20),(3,"张三","地理",100),(4,"张三","政治",40),
(5,"李四","数学",100),(6,"李四","语文",10),(7,"李四","政治",25),(8,"王五","数学",30),
(9,"王五","语文",80),(10,"赵六","数学",90),(11,"赵六","语文",80),(12,"赵六","地理",70);
 
查询两门以上挂科的学生平均成绩:
select name,sum(score <60) >=2 as gks,avg(score) from class group by name having gks >=1;
显示学生成绩最高的两个单科:
select id,name,course,score from class order by score desc limit 3;
 
连接表:    左连接则以左为准右补NULL,右反之   inner查询左右表都具备的数据才显示  外连接
左连接select 列1 列2 列N from 
tableA left join tableB 
On tableA 列 = tableB 列    
where group by having ... ...
外连接:通过union实现
select boy.*,girl.* from boy left join girl on boy.flower=girl.flower
union
select  boy.*,girl.*  from boy right join girl on boy.flower=girl.flower;
 
触发器:四要素监视地点(表)监视事件(操作)触发事件触发事件     
new监视新增行信息,old监视撤销行信息
 delimiter $ 修改结束符,方便sql中执行多条SQL语句
create trigger triggerName
after/before insert/update/delete on tableName
for each row
Begin
SQL语句
end;     
模板代码:
监视增
create trigger tg2
after insert on o
for each row
begin
update g set num = num -new.much where id = new.gid;
end$
监视删
create trigger tg3
after delete on o
for each row
begin
update g set num = num + old.much where id = old.gid;
end$
监视改
create trigger tg4
after update on o
for each row
begin
update g set num = num + old.much -new.much where id = new.gid;
end$
 
备份:增量备份、整体备份
备份
mysqldump.exe以导表为例
mysqldump -u root -psystem 库名 表1 表2 > 文件名.sql   导出的是建表语句 
省略表名则导入库中所有表
mysqldump -u root -psystem -B  库名1 库名2 >文件名.sql 导出多个库库
mysqldump -u root -psystem -A  > 文件名.sql   导出所有库
恢复:
Mysql> source 文件名.sql; 读取sql文件读取(以库位单位恢复)  
Mysql> use 库名    在库目录下source .sql 即表恢复
导出的是
 
索引:
索引的主要所用是增加查询效率,在一定程度上会影响其他增删改的操作,
      一般在在where使用频繁的列上加
      尽量索引散列值
普通索引:增加查询速度
唯一索引:unique index 行上的值不能重复
主键索引:primary key 根据主键索引
全文索引:fulltext
 
查看索引:show index from 表名;
建立索引:alter table 表名 add index/unique/fulltext/primary  索引名(列名)
删除索引:alter table 表名 drop index 索引名; 
 
JDBC运行方式:
1.导入相对应的数据库驱动:如mysql的
2.注册驱动,三种方式 a.通过new驱动对象 b.设置system属性  c.classforname加载(推荐该方式)
3.连接数据库连接(数据库基础信息,用户名,密码)
4.创建语句  封装SQL语句
5.执行语句  执行SQL语句
6.处理结果
7.关闭资源   
 
一、在处理数据库敏感词传入如:'or 1 or',采用设置PreparedStatement执行sql,可以对关键字进行预处理。
二、DataBaseMetaData dbma = conn.getDataMeta();   获取数据库元素信息,如数据库名、版本
分享到:
评论

相关推荐

    常用sql小结

    常用sql小结,描述了在日常数据库开发中经常用到的sql语句,以及对这些语句进行了相应的总结。

    SQL小结作业.docx

    SQL小结作业.docx 在这个资源中,我们可以提炼出以下知识点: 知识点1:创建数据库 在SQL中,创建数据库可以使用CREATE DATABASE语句,例如:Create database abcOn(name='abc',Filename='e:\abc.mdf')logOn(name...

    SQL小结

    这个“SQL小结”涵盖了SQL的基本概念、语法、查询技巧以及在实际应用中的常见操作。通过这篇文档,我们可以深入理解SQL的核心知识,并提升数据库管理能力。 1. SQL基础: SQL分为四大类型的操作:数据查询(DQL)、...

    DB2 sql 小结

    本人应用db2过程中的一些总结,以及在使用的时候的一些注意事项

    SQL语句总结

    SQL小结

    SQL LOADER错误小结

    在使用SQL*Loader进行数据加载时,我们可能会遇到多种错误情况。SQL*Loader是一个Oracle数据库提供的工具,用于高效地从平面文件批量导入数据。以下是一些常见错误的总结及其解决方案: 1. **编码错误导致的乱码...

    个人 sql 学习小结

    个人 sql 学习小结 sql基础学习总结,

    SQL增删改查小结

    在这个“SQL增删改查小结”中,我们重点讨论了SQL的基本语句、数据库引擎、数据库对象以及如何执行CRUD操作(创建、读取、更新、删除)。 首先,数据库引擎的选择对数据库性能有很大影响。ISAM引擎在读取操作上速度...

    sql server 高级查询语句小结

    sql server 高级查询语句小结 讲述sql高级查询语句小结

    SQL知识小结-联查附例子

    SQL是Structured Query Language的缩写,是用于管理关系数据库的标准语言。本文主要总结了SQL中的基本操作:增、删、改、查,并给出了相应的实例。 一、增(INSERT) 插入数据是向数据库添加新记录的过程。插入单行...

    sqlserver 中时间为空的处理小结

    现将几种主要情况进行小结: 一、如何输入NULL值 如果不输入null值,当时间为空时,会默认写入”1900-01-01″,在业务处理时很麻烦。 ctrl+0即可输入NULL值。 二、如何在sql语句中判断为NULL的时间字段 假设表为:...

    数据库简单SQL语句小结,菜鸟不可不看

    数据库简单SQL语句小结,菜鸟不可不看数据库简单SQL语句小结,菜鸟不可不看

    SQL Server的链接服务器技术小结

    SQL Server 链接服务器技术小结 链接服务器技术是 SQL Server 中的一种功能,允许用户从一个 SQL Server 数据库访问其他数据库管理系统中的数据。这种技术可以帮助用户实现数据集成和数据交换,提高数据共享和协作...

    SQL server 和C#中的DateTime使用小结

    SQL Server 和 C# 中的 DateTime 使用小结 SQL Server 中的日期函数是数据库管理系统中非常重要的一部分,它提供了多种日期函数来操作日期类型的数据。同时,在 C# 中也提供了多种方法来处理日期类型的数据。本文将...

    SQL Server 最佳实践分析器使用小结

    SQL Server 最佳实践分析器使用小结 SQL Server 最佳实践分析器是 Microsoft SQL Server 开发团队开发的一个数据库管理工具,可以检测设计的数据库是否遵循 SQL Server 操作和管理的最佳实践准则。这些准则公认有助...

    PL/SQL Developer 使用技巧小结

    ### PL/SQL Developer 使用技巧小结 #### 一、PL/SQL Developer 记住登录密码功能 在使用 PL/SQL Developer 进行数据库操作时,频繁地输入用户名和密码可能会带来不便。为了提高工作效率,我们可以设置让 PL/SQL ...

    SQL SEVER常用语句小结

    根据提供的文件信息,我们可以总结出一系列关于SQL Server的常用语句及操作方法。这些语句在数据库管理和数据操作中非常实用。以下是对标题、描述以及部分文件内容中的关键知识点进行详细解析: ### 1. 创建表 ####...

    小结SQLServer连接失败错误及解决

    北京 在使用SQLServer的过程中,用户遇到的最多的问题莫过于连接失败了。一般而言,有以下两种连接SQLServer的方式,一是利用SQLServer自带的客户端工具,如企业管理器、查询分析器、事务探查器等;二是利用用户...

    PL SQL编程经验小结

    这些经验小结涵盖了PL/SQL中的关键概念和技术,包括数据处理优化、时间控制、数据返回以及游标的有效利用,旨在提升开发者的编程效率和代码质量。通过理解和应用这些知识,可以更好地应对复杂的数据库编程任务。

    1034543354315878mysql小结.sql

    1034543354315878mysql小结.sql

Global site tag (gtag.js) - Google Analytics