《sql学习笔记》由会员分享,可在线阅读,更多相关《sql学习笔记(14页珍藏版)》请在金锄头文库上搜索。
1、SQL 学习笔记学习笔记 SQL 命名规则 SQL 字符类型 SQL 基本数据类型 Unicode 编码:用两个字节表示一个字符编码:用两个字节表示一个字符(可以是汉字和字母可以是汉字和字母) 非非 unicode 编码:用一个字节表示一个字母,两个字节表示一个汉字编码:用一个字节表示一个字母,两个字节表示一个汉字SQL 基本的语法:(增删查改)以下所指条件都可以是 i 多条件的 创建数据库:创建数据库:create database 数据库名;数据库名; 创建表:创建表:create table 表名(输入需要的字段及限制约束)表名(输入需要的字段及限制约束) 删除表:删除表:drop ta
2、ble 表名表名 删除行删除行(列列):delect from 表名表名 where 删除条件删除条件(当不带删除条件则表示全部删除当不带删除条件则表示全部删除) 修改表:修改表:update 表名表名 set 修改内容修改内容 where 修改条件修改条件 查询表:查询表:select 需要查找的字段需要查找的字段 from 表名表名 where 查找条件查找条件1.SQL 语句不区分大小写2.外键的语法:表名 数据类型 foregin key references 被指向的表名(被指向表名的指向字段)3.一个外键只能指向一个主键,并且外键与主键的数据类型要一致create database
3、 hyfuse 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 h
4、hs 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=22) or name is null SQL 高级查询 SQL 在查询的字段里面可以使用算术表达式 如 select sal*13 from emp where 条件1. 使用算术 表达式
5、:select 表达式 from 表名 where 条件(可以不要条件)2. 使用列的别名:select 字段 as 别名 from 表名。 。 。 。3. 在执行查询时可以直接使用日期进行比较,如:1999-9-94. 区间查询: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 wher
6、e 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 函数查询
7、函数查询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()统计数据的行数(个
8、数)Select count(*) from tableName4. 使用 group by 来都查询的结果进行分类统计Select 统计函数(可写多个),字段(可写多个) from 表名 group by 字段(注意:此字段必须在前面有声明出,并且前面所声明的字段都要在 group by 后面实现)5. 使用 having 与 group by 结合对分组的结果进行筛选用法:直接加在 group by 分组字段 having 筛选条件小总结: SQL 多表查询多表查询1. 多表查询是基于两个或两个以上表之间的查询(也叫跨表查询) 2. 语法:selsct 需要查询的字段 from 表名(多个
9、) 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 da
10、tabase 需要备份的数据库名 to disk=备份路径 注:备份路径使用/或restore database 需要恢复的数据库名 to disk=备份数据库路径 数据库的约束数据库的约束 Java 对数据库的操作:对数据库的操作:JAVA 对数据库的操作:对数据库的操作:JDBC-ODBCimport java.sql.*;public class Odbc2 public static void main (String args) Connection ct=null; PreparedStatement ps=null; ResultSet rs=null; try /加载驱动 Cl
11、ass.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.getStri
12、ng(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 excepti
13、on e2.printStackTrace(); JAVA 操作数据库:操作数据库:JDBC(此操作无需配置此操作无需配置 ODBC 数据源数据源,可直接连接数据库并操可直接连接数据库并操作数据库作数据库)需要引入连接数据库需要引入连接数据库 jar 包包executeQuery:查询查询 executeUpdate:增删改:增删改在取出数据时,若使用*号查找,则需要按原来数据库的编号取出,若用自己写入查找字段则按输入字段编号; package odbc; import java.sql.*; public class Jdbc public static void main(String a
14、rgs) / 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“); /操作数据库 p
15、s=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.SQLServerD