sql连接数据库语句怎么写?sql连接数据库语句范例解析

网友投稿 1227 2023-04-11

sql连接数据库语句怎么写?sql连接数据库语句范例解析

sql连接数据库语句怎么写?sql连接数据库语句范例解析

常用数据库sql语句写法整理

--创建一个用户表

char表示占20个长度的空间 varchar根据实际长度决定空间大小

--复制表

create table users_copy as select * from users;

--增加数据到表中

方式1:insert into users values(1,‘1234’,‘d1’);

方式2:insert into users (id,name)values(2,‘d2’);

--查询数据

最简单的 select * from users;

条件查询 select * from users where id=1 ;

select * from users where id=1 and name=‘d1’ ;(and表示且的意思)

select * from users where id=1 or id=2 ;(or表示或的意思)

select * from users where id in(1,3,4);(or的条件多了,用in)

select * from users where id》=2;(可以有大小条件)

select count(*) from users;(查询有多少条数)

select * from employ where name like ‘%duan%’;(模糊查询)

select * from employ where name like ‘duan%’;(模糊查询,表示以duan开头---结尾反之)

select distinct name from users;(除去重复记录)

select * from employ order by id;(由小到大)

select * from employ order by id desc;(反之顺序排列)

查询的时候可以计算

select name,salary salary*12 from employ;(员工的年薪)

select name,salary+bonus from employ;(员工的月薪)

分组查询

select job, count(*)from emp_ning group by job;

过滤分组结果:having短语

select deptno, count(*)from emp_ning group by deptno having count(*) 》= 5;

子查询(即用某一查询语句代替语句中要写的数据)

select name from emp_ning where salary 》 (select salary

from emp_ning where id = 1002);

--子查询的结果集是多行多列(结果如果返回多行,使用in, 》all, 》any, 《all, 《any)

select name, salary, deptno from emp_ning

where (deptno, salary) in(select deptno, max(salary)from emp_ning group by deptno);

--子查询的结果如果返回一行( 使用单行比较运算符(=, 》, 《, 《=, 》=) )

select name, deptno, salary from emp_ning

where (deptno, salary) =(select deptno, max(salary)from emp_ning where deptno = 10

group by deptno);

关联查询

等值连接:(自连接为特殊情况)

内连接:

select emp.name,dept.dname from emp join dept on emp.deptno =dept.deptno;

外连接:(若为left 表示左边的为驱动表(会全部显示) 右边的为匹配表 反之。。。。)

外连接的结果集 = 内连接的结果集 + 驱动表中在匹配表中找不到匹配记录的 数据和空值的组合

select e.name, d.dname from emp_ning e lright outer join dept_ning d on e.deptno = d.deptno;(dept的全部)

非等值连接:

select e.name,s.salary from emp e join salary s on e.sa

lary between s.lowsal and s.highsal;

查询的总格式:

select 表1.列1, 表1.列2, 表2.列1,表2.列2,。。。。[组函数][单行函数]

from 表1

[left|right|full outer join 表2

on 表1.列1 = 表2.列2

where 条件1 and 条件2[子查询] or 条件3

group by 列

having 组函数的条件[子查询]

order by 列]

--更新数据的语句

update users set pwd=‘1234’ where id=2;

--删除某行

delete from t_user where user_id = 1;

--删除表结构 drop table users;

SQL语句中的函数( mysql为例子)

select *,round(salary*2.12222222,4) from employ;(round函数,省略到小数点后4位的全部信息)

select now();(查询当前时间)

组函数 count / max / min / sum / avg

***数据库中的分页

?表示他们从第几位到第几位(非下标)

mysql中的分页

select * from d_book limit 0,5;

表示从下标为0的开始,每页五条

在mysql中 setnames utf8 可以解决查看数据库时乱码问题

下面是创建一个sqlserver数据库的代码模板,加上一个创建表的模板。开发的时候可以拷贝过去直接改动一下就可以用了。

USE [master]

GO

IF EXISTS(SELECT 1 FROM sysdatabases WHERE NAME=N‘HkTemp’)

BEGIN

DROP DATABASE HkTemp --如果数据库存在先删掉数据库

END

GO

CREATE DATABASE HkTemp

ON

PRIMARY --创建主数据库文件

NAME=‘HkTemp’,

FILENAME=‘E:\Databases\HkTemp.dbf’,

SIZE=5MB,

MaxSize=20MB,

FileGrowth=1MB

LOG ON --创建日志文件

NAME=‘HkTempLog’,

FileName=‘E:\Databases\HkTemp.ldf’,

Size=2MB,

MaxSize=20MB,

FileGrowth=1MB

GO

--添加表

IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N‘Hksj_User’) AND type in (N‘U’))

BEGIN

CREATE TABLE Hksj_User

Id INT IDENTITY(1,1) NOT NULL,

SName NVARCHAR(20) NOT NULL,

SNickName NVARCHAR(20),

SPassWord NVARCHAR(30) NOT NULL,

SCreator NVARCHAR(20),

SPhone NVARCHAR(50),

SIdentifyId NVARCHAR(30),

DLastTimeLogOn DATETIME

PRIMARY KEY CLUSTERED

Id ASC

)WITH (IGNORE_DUP_KEY = OFF) ON [PRIMARY]

) ON [PRIMARY]

END

GO

--添加注释

GO

EXEC sys.sp_addextendedproperty @name=N‘MS_Description’, @value=N‘邮箱’ , @level0type=N‘SCHEMA’,@level0name=N‘dbo’, @level1type=N‘TABLE’,@level1name=N‘Hksj_User’, @level2type=N‘COLUMN’,@level2name=N‘SEmail’

写myeclipse链接sql数据库的类的代码例子

可以用jdbc来连接数据库,完整代码如下:

package com.jdbc.test;

import java.sql.DriverManager;

import java.sql.ResultSet;

import java.sql.Statement;

public class JDBCTest {

public static void main(String[] args) throws Exception {

//1.加载驱动

//Class.forName(“com.microsoft.sqlserver.jdbc.SQLServerDriver”);

//Class.forName(“com.mysql.jdbc.Driver”);

Class.forName(“***.jdbc.driver.***Driver”);

//2.创建数据库连接对象

//Connection conn = DriverManager.getConnection(“jdbc:sqlserver://localhost:1433;databaseName=db”,“sa”,“sqlpass”);

//Connection conn = DriverManager.getConnection(“jdbc:mysql://localhost:3306/db?useUnicode=true&characterEncoding=UTF-8”,“root”,“123456”);

Connection conn = DriverManager.getConnection(“jdbc:***:thin:@localhost:1521:orcl”,“scott”,“***123”);

//3.创建数据库命令执行对象。

Statement stmt = conn.createStatement();

// PreparedStatement ps = conn.prepareStatement(“select * from t_user”);

//4.执行数据库命令

ResultSet rs = stmt.executeQuery(“select * from t_user”);

// ResultSet rs = ps.executeQuery();

//5.处理执行结果

while (rs.next()) {

int id = rs.getInt(“id”);

String username = rs.getString(“username”);

String password = rs.getString(“password”);

System.out.println(id + “\t” + username + “\t” + password);}

//6.释放数据库资源

if (rs != null) {

rs.close();

}

// if (ps != null) {

// ps.close();

// }

if (stmt != null) {

stmt.close();

}

if (conn != null) {

conn.close();

}

}

}

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:【数据库数据恢复】SQL SERVER数据库MDF(NDF)或LDF损坏怎么恢复数据?
下一篇:动力环境监控数据库的简单分析
相关文章