收藏 分销(赏)

SQL学习笔记.doc

上传人:仙人****88 文档编号:11890432 上传时间:2025-08-18 格式:DOC 页数:14 大小:1.12MB 下载积分:10 金币
下载 相关 举报
SQL学习笔记.doc_第1页
第1页 / 共14页
SQL学习笔记.doc_第2页
第2页 / 共14页


点击查看更多>>
资源描述
SQL学习笔记 Ø SQL命名规则 Ø SQL字符类型 Ø SQL基本数据类型 Ø Unicode编码:用两个字节表示一个字符(可以是汉字和字母) Ø 非unicode编码:用一个字节表示一个字母,两个字节表示一个汉字 Ø SQL基本的语法:(增删查改)以下所指条件都可以是i多条件的 Ø 创建数据库:create database 数据库名; Ø 创建表:create table 表名(输入需要的字段及限制约束) Ø 删除表:drop table 表名 Ø 删除行(列):delect from 表名 where 删除条件(当不带删除条件则表示全部删除) Ø 修改表:update 表名 set 修改内容 where 修改条件 Ø 查询表:select 需要查找的字段 from 表名 where 查找条件 Ø 1. SQL语句不区分大小写 2. 外键的语法:表名 数据类型 foregin key references 被指向的表名(被指向表名的指向字段) 3. 一个外键只能指向一个主键,并且外键与主键的数据类型要一致 create database hyf use hyf --表明使用某个数据库 go -----------------------创建表头--------------------------- create table hhs (ID int primary key , --定义主键,在添加数据时主键不允许为空,不许修改, --也不许作为删除时的条件 AGE INT , NAME VARCHAR(50)) -----------------------添加数据--------------------------- --语法:insert into 表名values(按顺序添加,并用逗号隔开) insert into hhs values(110,21,'AAA') insert into hhs values(111,22,'AAA') insert into hhs values(112,23,'AAA') insert into hhs values(113,24,'AAA') insert into hhs (ID ,age) values (115,30) --需要添加部分数据时需要在表名后面添加相应的字段 --简单查询语句 --语法:selete *from 表名 --带条件:select *from 表名where 条件 select *from hhs drop table hhs select *from hhs where age<23 ----------------------------修改(update)---------------------- --修改一个一个值 update hhs set age=age*1.5 where age<23 --将编号为的行age和name进行修改(对多个条件进行修改时需要用逗号隔开 --语法:update 表名set 修改,修改,。。where 修改标识条件 update hhs set age=100,name='bbb' where id=112 --将name为null的行中年龄修改(修改条件的值为空时不可以用等于号而是用'is' update hhs set age=200 where name is null ----------------------------删除(delect)----------------------- --删除所以数 --语法:delete from 表名; delete from hhs --删除指定的数据例如:删除年龄小于并且大于或者年龄为空的人 --delete from 表名where 条件 delete from hhs where (age<100 and age>=22) or name is null Ø SQL高级查询 Ø SQL在查询的字段里面可以使用算术表达式 如select sal*13 from emp where 条件 1. 使用算术 表达式:select 表达式 from 表名 where 条件(可以不要条件) 2. 使用列的别名:select 字段 as 别名 from 表名。。。。 3. 在执行查询时可以直接使用日期进行比较,如:1999-9-9 4. 区间查询:select *from 表名 where bettween num and num 或者:select *from 表名 where 布尔条件 5. 模糊查询:like %:表示0到多个字符 _:表示单个字符 1) 查询首字母为’s’的列:select *from emp where like ‘s%’ 2) 查询第三个字母为’s’的列:select *from emp where like ‘_ _s%’ 6. Where 条件中使用in查询 语法:select *from 表名 where 字段 in(写入要查询的内容) 7. 使用 is null来处理null值:is null(字段,0)含义是:如果不为null则返回字段值,若为null则返回0. 8. 使用order by 来进行排序,默认是asc(升序排列)desc则为降序排列 如;select *from 表名 order by 字段1,字段2.。。。 9. 使用别名来进行排序: 如:select 字段1,字段2,字段3 别名 from 表名 order by 别名 Ø SQL函数查询 1. 使用min()函数求出最小值、max()函数求取最大值 select empname,empsal from list$ where empsal=(select min(empsal) from list$) 2. 使用avg()求取平均值、max()求出总数 Select avg(字段) from 表名 Select sum(字段) from 表名 实例: select empname,empsal from list$ where empsal<(select avg(empsal) from list$)其结果为显示大于平均数的所有数据 3. 使用count()统计数据的行数(个数) Select count(*) from tableName 4. 使用group by 来都查询的结果进行分类统计 Select 统计函数(可写多个),字段(可写多个) from 表名 group by 字段(注意:此字段必须在前面有声明出,并且前面所声明的字段都要在group by 后面实现) 5. 使用having与group by 结合对分组的结果进行筛选 用法:直接加在group by 分组字段 having 筛选条件 小总结: Ø SQL多表查询 1. 多表查询是基于两个或两个以上表之间的查询(也叫跨表查询) 2. 语法:selsct 需要查询的字段 from 表名(多个) where 匹配条件(即主键于外键的关系) select l.empname,l.empage,d.[add] from list$ l,dept$ d where l.deptnum=d.deptnum order by d.dept Ø SQL子查询 1. SQL子查询是嵌入到其他select语句中的查询(也叫嵌套查询) SQL子查询分单行子查询和多行子查询,单行自查询使用“where =”而多行子查询使用”where in” Ø SQL多表查询 Ø MSSQL数据库的备份还原 使用命令行来备份数据库和回复数据库: backup database 需要备份的数据库名 to disk='备份路径' 注:备份路径使用‘/’或‘\\’ restore database 需要恢复的数据库名 to disk=’备份数据库路径’ Ø 数据库的约束 Ø Java对数据库的操作: JAVA对数据库的操作:JDBC-ODBC import java.sql.*; public class Odbc2{ public static void main (String []args){ Connection ct=null; PreparedStatement ps=null; ResultSet rs=null; try { //加载驱动 Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); //得到数据库链接 ct=DriverManager.getConnection("jdbc:odbc:myjdbc","sa","sa"); //操作数据库 ps=ct.prepareStatement("select *from dept$ where dept=?"); //PreparedStatement查询的时候使用问号查询 ps.setString(1, "ww1") ; rs=ps.executeQuery(); while(rs.next() ){ String deptnum=rs.getString(1); String dept =rs.getString(2); String add=rs.getString(3); System.out.println(deptnum+" "+dept+" "+add+" "); } } catch (Exception e) { e.printStackTrace(); }finally{ try { if((rs!=null)){//先创建后关闭、后创建先关闭 rs.close(); } if(ps!=null){ ps.close(); } if(ct!=null){ ct.close(); } } catch (Exception e2) { // TODO: handle exception e2.printStackTrace(); } } } } JAVA操作数据库:JDBC(此操作无需配置ODBC数据源,可直接连接数据库并操作数据库)需要引入连接数据库jar包 executeQuery:查询 executeUpdate:增删改 在取出数据时,若使用*号查找,则需要按原来数据库的编号取出,若用自己写入查找字段则按输入字段编号; package odbc; import java.sql.*; public class Jdbc { public static void main(String[] args) { // TODO Auto-generated method stub Connection ct=null; PreparedStatement ps=null; ResultSet rs=null; try { //加载驱动 Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver"); //得到数据库链接 ct=DriverManager.getConnection("jdbc:microsoft:sqlserver://127.0.0.1:1433;databaseName=myjdbc","sa","sa"); //操作数据库 ps=ct.prepareStatement("select *from dept$"); rs=ps.executeQuery(); while(rs.next()){ String deptnum=rs.getString(1); String dept=rs.getString(2); String add=rs.getString(3); System.out.println(deptnum+" "+dept+" "+add+" "); } } catch (Exception e) { e.printStackTrace(); }finally{ try { if(rs!=null) rs.close(); if(ps!=null) ps.close(); if(ct!=null) ct.close(); } catch (Exception e2) { // TODO: handle exception } } } } 使用java创建数据库、数据表、备份、还原。(execute) import java.sql.*; public class Test { static String url="com.microsoft.jdbc.sqlserver.SQLServerDriver"; static String url2="jdbc:microsoft:sqlserver://127.0.0.1:1433;databaseName=mytest"; public static void main(String[] args) { // TODO Auto-generated method stub Connection ct=null; PreparedStatement ps=null; ResultSet rs=null; try { Class.forName(url); ct=DriverManager.getConnection(url2,"sa","sa"); //创建数据库 //若执行的是ddl语句,则使用的是execute();并且其为一个布尔值; ps=ct.prepareStatement("create database names"); ps.execute(); //创建表 ps=ct.prepareStatement("create table ppse"); ps.execute(); //删除数据库 ps=ct.prepareStatement("delete from names"); ps.execute(); //备份数据库 ps=ct.prepareStatement("backup database names to disk='f:/'"); ps.execute(); //恢复数据库 ps=ct.prepareStatement("restore database names to disk='f:/'"); ps.execute(); } catch (Exception e) { // TODO: handle exception e.printStackTrace(); }finally{ try { if(ps!=null) ps.close(); if(ct!=null) ct.close(); } catch (Exception e2) { // TODO: handle exception e2.printStackTrace(); } } } }
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服