实用sql语句拾零

SQl Server数据库

1新建表:

create table users(

userid int primary key identity(1,1),--用户编号(主键、自增长)
idcard varchar(20) not null,--身份证号
uname varchar(30) not null,--姓名
sex varchar(10) not null,
age int not null,
tel varchar(20) null,--电话
address varchar(30) not null,--地址
partymemberid int foreign key references 表名(该表主键)--设置外键

)

2.插入:

insert into users values(,'','',);

3.查询:

select * from 表名;

select * from 表名 where usreid=X;

select count(*) from 表名;  --查询该表数据总数

select count(*) from 表名  where usreid=X;  --按条件查询该表数据总数

select count(*) from 表名 whereuname like '%"+X+"%'";  --按条件模糊查询该表数据总数

select top 5 * from 表名 usersid not in (select top 5usersid from 表名 order byusersid asc)order by usersid asc --分页显示所有

select top 5 * from partymember where unit='湖文' and partymemberid not in (select top 5 partymemberid from partymember where  unit='湖文' order by partymemberid asc)order by partymemberid asc   --按条件查询后分页显示

select top 16 users.uname,partymember.* from partymember inner join users on users.idcard=partymember.idcard where unit like '%学%' and partymemberid not in (select top 0 partymemberid from partymember inner join users on users.idcard=partymember.idcard where unit like '%学%' order by partymemberid asc)order by partymemberid asc--按条件模糊查询后分页显示

4.更新数据:

update 表名 set uname='dzl' where userid=X

5.删除数据:

delete from 表名 where userid=X

6.清空表:

truncate table 表名

7.删除表:

drop table 表名


设置数据库为多用户:

 ALTER DATABASE [数据库名] SET MULTI_USER



MySql数据库


创建表(auto_increment 表示自增长,enum枚举类型以下拉框的形式展现):

CREATE TABLE test(
id int auto_increment PRIMARY KEY,
name VARCHAR(20) NOT NULL,
sex VARCHAR(2) NOT NULL,

types ENUM('jpg','png','gif')

)


分页查询:

select * from 表名 where userid limit "+ (PageNo - 1)* 16+ ",16;(16代表一页显示16条数据)

按条件模糊查询后分页显示:

select * from 表名 where uname LIKE '%" + input+ "%' and userid limit "+ (PageNo - 1)* 16+ ",16;



Oracle数据库

常用命令

desc 表名 --用于显示表结构

ed --打开编辑窗口,编辑完后输入"/"再回车

commit   提交

rollback   回滚 

order by   --排序– ASC(ascend) : 升序

DESC(descend) : 降序

•ROUND: 四舍五入

ROUND(45.926, 2)  45.93


•TRUNC:  截断

TRUNC(45.926, 2)  45.92


•MOD: 求余

MOD(1600, 300)                     100


select to_char(sysdate,'yyyy-MM-dd  HH:mm:ss')from dual;


设置id自增长:

例:(1)创建一个测试表test

create  table  test
(id  int  primary  key ,
name  varchar2(10)
);
(2)创建一个序列
create  sequence  test_seq increment  by  1 start  with 
minvalue 1 maxvalue 9999999999999 nocache 
order ;
(3) 触发器实现
create  or  replace  trigger  test_trigger
before  insert  on  test
for  each 
row
begin
      select   test_seq.Nextval  into :new.id  from  dual;
end ;
(4)测试
insert into test (namevalues ('子龙');

分页查询(查询第21到第40条数据):

SELECT *

  FROM (SELECT a.*, ROWNUM rn

          FROM (SELECT *

                  FROM 表名) a

         WHERE ROWNUM <= 40)

 WHERE rn >= 21

分页显示(一页显示16条数据):

SELECT *FROM (SELECT a.*, ROWNUM rn FROM (SELECT * FROM users) a WHERE ROWNUM <= "+ PageNo* 16+ ") WHERE rn >"+ (PageNo - 1)* 16+";

按条件模糊查询后分页显示:

SELECT *FROM (SELECT a.*, ROWNUM rn FROM (SELECT * FROM users) a WHERE ROWNUM <= "+ PageNo* 16+ ") WHERE idcardLIKE '%" + input+ "%'and  rn > "+ (PageNo - 1)* 16+";

查询前10条数据(按id排序):

select * from (select * from users order by userid )where rownum <=10


设置主外键:

create table 表名(
    partymemberid int primary key,
    adress varchar(30) not null,
    unit varchar(30) not null,
    worktime varchar(20) null,
    jointime varchar(20) not null,
    note varchar(50) null,
    idcard varchar(18),
    foreign KEY(idcard) REFERENCES 主表(主表中的主键)
   );


ON DELETE CASCADE( 级联删除):当父表中的列被删除时,子表中相对应的列也被删除
ON DELETE SET NULL( 级联置空):子表中相应的列置空

1.新建表:

create table 表名(

id number(10),

name varchar(20)

);


2.查询语句(select),注意每条语句都要以;结尾

select * from 表名; 查询表中所有数据

select 列名,列名 from 表名; 查询指定列的数据

select 列名  as "别名",列名 别名, 列名 "别名"from 表名 ; 查询指定列的数据并为列指定别名

select distinct 列名 from 表名;· 过滤掉重复行

例:     选择在1994年雇用的员工的姓名和雇用时间

a)  select last_name,hire_date

b)  from employees

c)    where to_char(hire_date,'yyyy')='1994'

例:    选择雇用时间在1998-02-01到1998-05-01之间的员工姓名,job_id和雇用时间

a)  select last_name,job_id,hire_date

b)  from employees

c)  --where hire_date between '1-2月-1998' and '1-5月-1998'

d)      where to_char(hire_date,'yyyy-mm-dd')between'1998-02-01'and'1998-05-01'


多表连接查询(有相同的列):连接 n个表,至少需要n-1个连接条件

等值连接:

SELECT  table1.column, table2.column

FROM  table1, table2

WHERE  table1.column1=table2.column2;

或(使用别名)

SELECT e.employee_id,e.last_name,e.department_id,

      d.department_id,d.location_id

FROM  employees e , departments d

WHERE e.department_id =d.department_id;


非等值连接:

SELECT e.last_name,e.salary,j.grade_level

FROM  employees e, job_gradesj

WHERE e.salary

      BETWEEN j.lowest_sal ANDj.highest_sal;

•内连接: 合并具有同一列的两个以上的表的行, 结果集中不包含一个表与另一个表不匹配的行
•外连接: 两个表在连接过程中除了返回满足连接条件的行以外 还返回左(或右)表中不满足条件的行 ,这种连接称为左(或右)外连接。没有匹配的行时, 结果表中相应的列为空(NULL). 外连接的 WHERE子句条件类似于内部连接, 但 连接条件中没有匹配行的表的列后面要加 外连接运算符 , 即用圆括号括起来的加 (+)
•满 外连接:两个表在连接过程中 除了返回满足连接条件的行以外还返回两个表中不满足条件的行 ,这种连接称为满 外连接。


右外连接:

SELECT e.last_name,e.department_id,d.department_name

FROM  employees e, departments d

WHERE e.department_id(+) =d.department_id ;

左外连接:

SELECT e.last_namee.department_idd.department_name

FROM  employees e, departments d

WHERE e.department_id = d.department_id(+);


满外连接:

SELECT e.last_name,e.department_id,d.department_name

FROM   employees e

FULL OUTER JOIN departments d

ON   (e.department_id= d.department_id);



使用 ON 子句创建多表连接:

SELECT employee_id, city,department_name

FROM  employees e

JOIN  departments d

ON    d.department_id =e.department_id

JOIN  locations l

ON    d.location_id =l.location_id;

可以使用GROUP BY子句将表中的数据分成若干组:

SELECT   department_id, AVG(salary)

FROM     employees

GROUP BY department_id ;

过滤分组:HAVING子句:

SELECT   department_id, MAX(salary)

FROM     employees

GROUP BY department_id

HAVING   MAX(salary)>10000 ;


修改表:

alter table test drop column sex;   删除一列

alter table test rename column 原列名 to 新列名; 重命名一个列

alter table test modify name varchar(10); 可修改列的数据类型、尺寸和默认值






  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
基于C++&OPENCV 的全景图像拼接 C++是一种广泛使用的编程语言,它是由Bjarne Stroustrup于1979年在新泽西州美利山贝尔实验室开始设计开发的。C++是C语言的扩展,旨在提供更强大的编程能力,包括面向对象编程和泛型编程的支持。C++支持数据封装、继承和多态等面向对象编程的特性和泛型编程的模板,以及丰富的标准库,提供了大量的数据结构和算法,极大地提高了开发效率。12 C++是一种静态类型的、编译式的、通用的、大小写敏感的编程语言,它综合了高级语言和低级语言的特点。C++的语法与C语言非常相似,但增加了许多面向对象编程的特性,如类、对象、封装、继承和多态等。这使得C++既保持了C语言的低级特性,如直接访问硬件的能力,又提供了高级语言的特性,如数据封装和代码重用。13 C++的应用领域非常广泛,包括但不限于教育、系统开发、游戏开发、嵌入式系统、工业和商业应用、科研和高性能计算等领域。在教育领域,C++因其结构化和面向对象的特性,常被选为计算机科学和工程专业的入门编程语言。在系统开发领域,C++因其高效性和灵活性,经常被作为开发语言。游戏开发领域中,C++由于其高效性和广泛应用,在开发高性能游戏和游戏引擎中扮演着重要角色。在嵌入式系统领域,C++的高效和灵活性使其成为理想选择。此外,C++还广泛应用于桌面应用、Web浏览器、操作系统、编译器、媒体应用程序、数据库引擎、医疗工程和机器人等领域。16 学习C++的关键是理解其核心概念和编程风格,而不是过于深入技术细节。C++支持多种编程风格,每种风格都能有效地保证运行时间效率和空间效率。因此,无论是初学者还是经验丰富的程序员,都可以通过C++来设计和实现新系统或维护旧系统。3

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值