求数据库常用语句。。。最好有解析的。

求数据库常用语句。。。最好有解析的。,第1张

1、说明:创建数据 Create DATABASE database-name 2、说明:删除数据库 drop database dbname 3、说明:备份sql server --- 创建 备份数据的 device USE master EXEC sp_addumpdevice 'disk', 'testBack', 'c:\mssql7backup\MyNwind_1dat' --- 开始 备份 BACKUP DATABASE pubs TO testBack 4、说明:创建新表 create table tabname(col1 type1 [not null] [primary key],col2 type2 [not null],) 根据已有的表创建新表: A:create table tab_new like tab_old (使用旧表创建新表) B:create table tab_new as select col1,col2… from tab_old definition only 5、说明:删除新表 drop table tabname 6、说明:增加一个列 Alter table tabname add column col type 注:列增加后将不能删除。DB2中列加上后数据类型也不能改变,唯一能改变的是增加varchar类型的长度。 7、说明:添加主键: Alter table tabname add primary key(col) 说明:删除主键: Alter table tabname drop primary key(col) 8、说明:创建索引:create [unique] index idxname on tabname(col…) 删除索引:drop index idxname on tabname 注:索引是不可更改的,想更改必须删除重新建。 9、说明:创建视图:create view viewname as select statement 删除视图:drop view viewname 10、说明:几个简单的基本的sql语句 选择:select from table1 where 范围 插入:insert into table1(field1,field2) values(value1,value2) 删除:delete from table1 where 范围 更新:update table1 set field1=value1 where 范围 查找:select from table1 where field1 like ’%value1%’ (所有包含‘value1’这个模式的字符串)---like的语法很精妙,查资料! 排序:select from table1 order by field1,field2 [desc] 总数:select count as totalcount from table1 求和:select sum(field1) as sumvalue from table1 平均:select avg(field1) as avgvalue from table1 最大:select max(field1) as maxvalue from table1 最小:select min(field1) as minvalue from table1[separator] 11、说明:几个高级查询运算词 A: UNION 运算符 UNION 运算符通过组合其他两个结果表(例如 TABLE1 和 TABLE2)并消去表中任何重复行而派生出一个结果表。当 ALL 随 UNION 一起使用时(即 UNION ALL),不消除重复行。两种情况下,派生表的每一行不是来自 TABLE1 就是来自 TABLE2。 B: EXCEPT 运算符 EXCEPT 运算符通过包括所有在 TABLE1 中但不在 TABLE2 中的行并消除所有重复行而派生出一个结果表。当 ALL 随 EXCEPT 一起使用时 (EXCEPT ALL),不消除重复行。 C: INTERSECT 运算符 INTERSECT 运算符通过只包括 TABLE1 和 TABLE2 中都有的行并消除所有重复行而派生出一个结果表。当 ALL 随 INTERSECT 一起使用时 (INTERSECT ALL),不消除重复行。 注:使用运算词的几个查询结果行必须是一致的。 12、说明:使用外连接 A、left outer join: 左外连接(左连接):结果集几包括连接表的匹配行,也包括左连接表的所有行。 SQL: select aa, ab, ac, bc, bd, bf from a LEFT OUT JOIN b ON aa = bc B:right outer join: 右外连接(右连接):结果集既包括连接表的匹配连接行,也包括右连接表的所有行。 C:full outer join: 全外连接:不仅包括符号连接表的匹配行,还包括两个连接表中的所有记录。 select语句:[()表示空格 以下表的名称以 表1 为例] 1,select from 表的名称[表1] 意思是:从表1中查询它的全部内容。 其中:表示全部内容。如果不查询表1中的全部内容,那么查询什么就把什么发在的位置上。例如: select name from 表1 其中的name就是要查询的一项内容。 如果要查询的内容是多项那么用逗号隔开,例如: select name,age from 表1 2,select top 一个数字 from 表1 意思是:从表1中查询前 X 项的全部内容。 可以用表1中的内容表示。意思是:从表1中查询前 X 项某一项的内容。而不是全部内容。 3,select from 表1 where 表中某一项满足的条件。例如: Select from 表1 where submit_date<#2003-11-1#意思是: 从表1中查询满足sumit_date在2003-11-1之前的全部内容。 select from 表1 where 表中某一项满足的条件 and 另一项内容满足的条件。例如: Select from 表1 where submit_date<#2003-11-1# and real_name=“建波” 。意思是: 从表1中查询满足sumit_date在2003-11-1之前和real_name="建波"的全部内容 4,select from 表1 where 表1中某一项满足的条件 like "关键字"。例如: select form 表1 where real_name like "勇"。意思是: 从表1中查询real_name中有 关键字 “勇”的全部内容。 5,select from 表1 order by order 某一项内容 升降顺序。例如: Select from 表1 order by real_name asc 升序排列 Select from 表1 order by real_name desc 降序排列 意思是 从表1中按照 real_name 的升降顺序查询 6,Select from 表1 order by real_name desc,submit_date asc 如果有按多个字段排序,中间用逗号隔开 7,查询满足条件的记录的总数 select count () as total from 表1 where 某一项内容满足的条件 (计数) (总数) Select count () as total from 表1 where submit_date<#2003-11-1#。意思是: 从表1中查询满足sumit_date在2003-11-1之前的总数 8,select sum (某一项) as total 某一项,average(某一项) as average 某一项 from 表1 group by class。例如: Select sum (grade) as total_grade,average(grade) as average_grade from 表1 group by class。意思是: 从表1中查询这个班 grade 的总数 和 这个班 grade 的平均数 Insert语句 主要的功能是向数据库添加新的信息 语法是:insert into 表1 (字段1,字段2,……) value (字段1德值,字段2的值,……) 例如: (1)插入user_name字段: Insert into users(user_name)values("wuyuanzhi") (2)只插入user_name和real_name字段 Insert into users (user_name,real_name) values("yuanzhi","远志") 说明:user_name 是主键,必须插入值,而且还不能跟原来的用户名 重复。 (3)只插入user_name 和 submit_date 字段 insert into users (user_name,submit_date) value ("yuanzhi",#2007-01-01#) (4)假如在users表中增加一个年龄字段age,为数字类型,则为:insert into users (user_name,age) value ("yuanzhi",23) (5)在users表中增加一条完整的记录: insert into users (user_name,password,real_name,tel,email,submit-date) value("yuanzhi","2468912340","远 志","15001016610","wuyuanzhi226@163com",#2007-01-02#) Delete 语句 作用是:可以删去表中无用德记录 语法:delete from 表1 [where 条件] 说明:1,where 条件与select中的用法是一样的,凡是符合条件的记录都会被删除,如果没有符合条件的记录则不删除 2,如果省略where条件,将删除所有数据。 下面是常用的例子: (1)删除user_name为"yuanzhi"的用户 delete from 表1 where user_name="yuanzhi" (2)删除2003年1月1日前注册,并real_name为 "李亚" 的用户 Delete from 表1 where submit_date<#2003-01-01# and real_name="李亚" (3)删除表中所有的数据 Delete from 表1 Update 语句 在实际生活中,数据信息在不断变化,例如用户表中,电话可能会经常变化,在这个时候就可以使用update语句来实现更新数据的功能。 语法:update 数据库名 set 字段1=字段值1,字段2=字段2,……[where 条件] 例如(1)修改user_name为 "yuanzhi" 的用户的电话和e-mail地址。 update 表1 set tel="15001016610",e-mail="wuyuanzhi226@163com" where user_name="yuanzhi" (2)将所有2003年一月一日前注册日期统一更改为2003年一月一日。 update users set submit_date=#2003-01-01# where submit_date<#2003-01-01# (3)假如有年龄字段age,将所有的人的年龄增加10岁 update 表1 set age=age+10这些都是常用的,找你有用的慢慢看哈

1、使用CREATE DATABASE

该命令将创建一个数据库PostgreSQL的shell提示符,但你应该有适当的权限来创建数据库。默认情况下,创建新的数据库将通过克隆标准系统数据库template1。

语法:

CREATE DATABASE语句的基本语法如下:

CREATE DATABASE dbname;

其中dbname是要创建的数据库的名称。

例子:

下面是一个简单的例子,这将创建testdb 在PostgreSQL模式:

postgres=# CREATE DATABASE testdb;

postgres-#

2、使用createdb的命令

PostgreSQL命令行可执行createdb是是SQL命令CREATE DATABASE一个包装器。此命令和SQL命令CREATE DATABASE之间唯一的区别是,前者可以直接在命令行中运行,它允许的注释被添加到数据库中,全部在一个命令。

语法:

createdb语法如下所示:

createdb [option] [dbname [description]]

参数

下表列出了参数及它们的描述。

参数名称            描述

dbname    The name of a database to create  

description    Specifies a comment to be associated with the newly created database  

options    command-line arguments which createdb accepts  

选项

下表列出了命令行参数CREATEDB接收:

选项                            描述

-D tablespace         Specifies the default tablespace for the database  

-e                     Echo the commands that createdb generates and sends to the server  

-E encoding    Specifies the character encoding scheme to be used in this database  

-l locale    Specifies the locale to be used in this database  

-T template    Specifies the template database from which to build this database  

--help    Show help about dropdb command line arguments, and exit  

-h host    Specifies the host name of the machine on which the server is running  

-p port    Specifies the TCP port or the local Unix domain socket file extension on which the server is listening for connections  

-U username    User name to connect as  

-w    Never issue a password prompt  

-W    Force createdb to prompt for a password before connecting to a database  

打开命令提示符,然后去是PostgreSQL安装所在的目录。进入到bin目录,执行下面的命令创建一个数据库。

createdb -h localhost -p 5432 -U postgress testdb

password

上面的命令会提示Postgres的默认的PostgreSQL管理用户的密码,以便提供密码和继续创建新的数据库。

一旦创建数据库时可以使用上述方法,可以检查它在列表中的数据库使用l即反斜线el命令如下:

postgres-# l

                            List of databases

  Name    |  Owner   | Encoding | Collate | Ctype |   Access privileges  

-----------+----------+----------+---------+-------+-----------------------

postgres  | postgres | UTF8     | C       | C     |

template0 | postgres | UTF8     | C       | C     | =c/postgres          +

          |          |          |         |       | postgres=CTc/postgres

template1 | postgres | UTF8     | C       | C     | =c/postgres          +

          |          |          |         |       | postgres=CTc/postgres

testdb    | postgres | UTF8     | C       | C     |

(4 rows)

postgres-#

PostgreSQL的CREATE TABLE语句是用来在任何指定的的数据库中创建一个新表。 yiibaicom

语法

CREATE TABLE语句的基本语法如下:

CREATE TABLE table_name(

column1 datatype,

column2 datatype,

column3 datatype,

columnN datatype,

PRIMARY KEY( one or more columns )

);

CREATE TABLE是告诉数据库系统关键字,创建一个新的表。独特的名称或标识如下表CREATE TABLE语句。当前数据库中的表最初是空的,并且将所拥有的用户发出的命令。

然后在括号内来定义每一列的列表,在表中是什么样的数据类型。其语法变得更清晰,下面的例子。

实例

下面是一个例子,它创建了一个公司ID作为主键的表和NOT NULL的约束显示这些字段不能为NULL,同时创建该表的记录:

CREATE TABLE COMPANY(

ID INT PRIMARY KEY NOT NULL,

NAME TEXT NOT NULL,

AGE INT NOT NULL,

ADDRESS CHAR(50),

SALARY REAL

);

让我们创建一个表,在随后的章节中,我们将在练习中使用:

CREATE TABLE DEPARTMENT(

ID INT PRIMARY KEY NOT NULL,

DEPT CHAR(50) NOT NULL,

EMP_ID INT NOT NULL

);

可以验证已成功创建使用\d命令,将用于列出了附加的数据库中的所有表。

testdb-# \d

以上PostgreSQL的表会产生以下结果:

List of relations

Schema | Name | Type | Owner

--------+------------+-------+----------

public | company | table | postgres

public | department | table | postgres

(2 rows)

使用\d表名来描述每个表如下所示:

testdb-# \d company

以上PostgreSQL的表会产生以下结果:

Table "publiccompany"

Column | Type | Modifiers

-----------+---------------+-----------

id | integer | not null

name | text | not null

age | integer | not null

address | character(50) |

salary | real |

join_date | date |

Indexes:

"company_pkey" PRIMARY KEY, btree (id)

一、基础

1、说明:创建数据库

CREATE DATABASE database-name

2、说明:删除数据库

drop database dbname

3、说明:备份sql server

--- 创建 备份数据的 device

USE master

EXEC sp_addumpdevice 'disk', 'testBack', 'c:\mssql7backup\MyNwind_1dat'

--- 开始 备份

BACKUP DATABASE pubs TO testBack

4、说明:创建新表

create table tabname(col1 type1 [not null] [primary key],col2 type2 [not null],)

根据已有的表创建新表:

A:create table tab_new like tab_old (使用旧表创建新表)

B:create table tab_new as select col1,col2… from tab_old definition only

5、说明:删除新表

drop table tabname

6、说明:增加一个列

Alter table tabname add column col type

注:列增加后将不能删除。DB2中列加上后数据类型也不能改变,唯一能改变的是增加varchar类型的长度。

7、说明:添加主键: Alter table tabname add primary key(col)

说明:删除主键: Alter table tabname drop primary key(col)

8、说明:创建索引:create [unique] index idxname on tabname(col…)

删除索引:drop index idxname

注:索引是不可更改的,想更改必须删除重新建。

9、说明:创建视图:create view viewname as select statement

删除视图:drop view viewname

10、说明:几个简单的基本的sql语句

选择:select from table1 where 范围

插入:insert into table1(field1,field2) values(value1,value2)

删除:delete from table1 where 范围

更新:update table1 set field1=value1 where 范围

查找:select from table1 where field1 like ’%value1%’ ---like的语法很精妙,查资料!

排序:select from table1 order by field1,field2 [desc]

总数:select count as totalcount from table1

求和:select sum(field1) as sumvalue from table1

平均:select avg(field1) as avgvalue from table1

最大:select max(field1) as maxvalue from table1

最小:select min(field1) as minvalue from table1

11、说明:几个高级查询运算词

A: UNION 运算符

UNION 运算符通过组合其他两个结果表(例如 TABLE1 和 TABLE2)并消去表中任何重复行而派生出一个结果表。当 ALL 随 UNION 一起使用时(即 UNION ALL),不消除重复行。两种情况下,派生表的每一行不是来自 TABLE1 就是来自 TABLE2。

B: EXCEPT 运算符

EXCEPT 运算符通过包括所有在 TABLE1 中但不在 TABLE2 中的行并消除所有重复行而派生出一个结果表。当 ALL 随 EXCEPT 一起使用时 (EXCEPT ALL),不消除重复行。

C: INTERSECT 运算符

INTERSECT 运算符通过只包括 TABLE1 和 TABLE2 中都有的行并消除所有重复行而派生出一个结果表。当 ALL 随 INTERSECT 一起使用时 (INTERSECT ALL),不消除重复行。

注:使用运算词的几个查询结果行必须是一致的。

12、说明:使用外连接

A、left (outer) join:

左外连接(左连接):结果集几包括连接表的匹配行,也包括左连接表的所有行。

SQL: select aa, ab, ac, bc, bd, bf from a LEFT OUT JOIN b ON aa = bc

B:right (outer) join:

右外连接(右连接):结果集既包括连接表的匹配连接行,也包括右连接表的所有行。

C:full/cross (outer) join:

全外连接:不仅包括符号连接表的匹配行,还包括两个连接表中的所有记录。

12、分组:Group by:

一张表,一旦分组 完成后,查询后只能得到组相关的信息。

组相关的信息:(统计信息) count,sum,max,min,avg 分组的标准)

在SQLServer中分组时:不能以text,ntext,image类型的字段作为分组依据

在selecte统计函数中的字段,不能和普通的字段放在一起;

13、对数据库进行 *** 作:

分离数据库: sp_detach_db; 附加数据库:sp_attach_db 后接表明,附加需要完整的路径名

14如何修改数据库的名称:

sp_renamedb 'old_name', 'new_name'

二、提升

1、说明:复制表(只复制结构,源表名:a 新表名:b) (Access可用)

法一:select into b from a where 1<>1(仅用于SQlServer)

法二:select top 0 into b from a

2、说明:拷贝表(拷贝数据,源表名:a 目标表名:b) (Access可用)

insert into b(a, b, c) select d,e,f from b;

3、说明:跨数据库之间表的拷贝(具体数据使用绝对路径) (Access可用)

insert into b(a, b, c) select d,e,f from b in ‘具体数据库’ where 条件

例子:from b in '"&ServerMapPath("")&"\datamdb" &"' where

4、说明:子查询(表名1:a 表名2:b)

select a,b,c from a where a IN (select d from b ) 或者: select a,b,c from a where a IN (1,2,3)

5、说明:显示文章、提交人和最后回复时间

select atitle,ausername,badddate from table a,(select max(adddate) adddate from table where tabletitle=atitle) b

6、说明:外连接查询(表名1:a 表名2:b)

select aa, ab, ac, bc, bd, bf from a LEFT OUT JOIN b ON aa = bc

7、说明:在线视图查询(表名1:a )

select from (SELECT a,b,c FROM a) T where ta > 1;

8、说明:between的用法,between限制查询数据范围时包括了边界值,not between不包括

select from table1 where time between time1 and time2

select a,b,c, from table1 where a not between 数值1 and 数值2

9、说明:in 的使用方法

select from table1 where a [not] in (‘值1’,’值2’,’值4’,’值6’)

10、说明:两张关联表,删除主表中已经在副表中没有的信息

delete from table1 where not exists ( select from table2 where table1field1=table2field1 )

11、说明:四表联查问题:

select from a left inner join b on aa=bb right inner join c on aa=cc inner join d on aa=dd where

12、说明:日程安排提前五分钟提醒

SQL: select from 日程安排 where datediff('minute',f开始时间,getdate())>5

13、说明:一条sql 语句搞定数据库分页

select top 10 b from (select top 20 主键字段,排序字段 from 表名 order by 排序字段 desc) a,表名 b where b主键字段 = a主键字段 order by a排序字段

具体实现:

关于数据库分页:

declare @start int,@end int

@sql nvarchar(600)

set @sql=’select top’+str(@end-@start+1)+’+from T where rid not in(select top’+str(@str-1)+’Rid from T where Rid>-1)’

exec sp_executesql @sql

注意:在top后不能直接跟一个变量,所以在实际应用中只有这样的进行特殊的处理。Rid为一个标识列,如果top后还有具体的字段,这样做是非常有好处的。因为这样可以避免 top的字段如果是逻辑索引的,查询的结果后实际表中的不一致(逻辑索引中的数据有可能和数据表中的不一致,而查询时如果处在索引则首先查询索引)

14、说明:前10条记录

select top 10 form table1 where 范围

15、说明:选择在每一组b值相同的数据中对应的a最大的记录的所有信息(类似这样的用法可以用于论坛每月排行榜,每月热销产品分析,按科目成绩排名,等等)

select a,b,c from tablename ta where a=(select max(a) from tablename tb where tbb=tab)

16、说明:包括所有在 TableA 中但不在 TableB和TableC 中的行并消除所有重复行而派生出一个结果表

(select a from tableA ) except (select a from tableB) except (select a from tableC)

17、说明:随机取出10条数据

select top 10 from tablename order by newid()

18、说明:随机选择记录

select newid()

19、说明:删除重复记录

1),delete from tablename where id not in (select max(id) from tablename group by col1,col2,)

2),select distinct into temp from tablename

delete from tablename

insert into tablename select from temp

评价: 这种 *** 作牵连大量的数据的移动,这种做法不适合大容量但数据 *** 作

3),例如:在一个外部表中导入数据,由于某些原因第一次只导入了一部分,但很难判断具体位置,这样只有在下一次全部导入,这样也就产生好多重复的字段,怎样删除重复字段

alter table tablename

--添加一个自增列

add column_b int identity(1,1)

delete from tablename where column_b not in(

select max(column_b) from tablename group by column1,column2,)

alter table tablename drop column column_b

20、说明:列出数据库里所有的表名

select name from sysobjects where type='U' // U代表用户

21、说明:列出表里的所有的列名

select name from syscolumns where id=object_id('TableName')

22、说明:列示type、vender、pcs字段,以type字段排列,case可以方便地实现多重选择,类似select 中的case。

select type,sum(case vender when 'A' then pcs else 0 end),sum(case vender when 'C' then pcs else 0 end),sum(case vender when 'B' then pcs else 0 end) FROM tablename group by type

显示结果:

type vender pcs

电脑 A 1

电脑 A 1

光盘 B 2

光盘 A 2

手机 B 3

手机 C 3

23、说明:初始化表table1

TRUNCATE TABLE table1

24、说明:选择从10到15的记录

select top 5 from (select top 15 from table order by id asc) table_别名 order by id desc

DDL是指“死线”和“最后期限”。

DDL是deadline的英文缩写,是大学里的流行词,一般指某任务截止的最后期限,尤指大学里各种待完成的任务。

DDL的其他含义:

DDl也是数据库模式定义的简写(Data Definition Language),是用于描述数据库中要存储的现实世界实体的语言。

数据库模式定义语言并非程序设计语言,DDL数据库模式定义语言是SQL语言(结构化查询语言)的组成部分。SQL语言包括四种主要程序设计语言类别的语句:数据定义语言(DDL),数据 *** 作语言(DML),数据控制语言(DCL)和事务控制语言(TCL)。

数据字典和数据库内部结构信息是创建该模式所对应的数据库的依据,根据这些信息创建每个数据库对应的逻辑结构;对数据库数据的访问、查询也根据模式信息决定数据存取的方式和类型,以及数据之间的关系和对数据的完整性约束。

一、

创建数据库1

语法:

//database_name

为数据库的名字CREATE

DATABASE

database_name

一、

创建表1

语法:CREATE

TABLE

table_name

(

{

column_name

data_type

[

<特殊参数>]

}

[

,n

]

)

建表例:学号姓名性别年龄班级最多20个字,主键最多10个字最多1个字

最多10个字

create

table

B(

编号int

Identity(1,1),

学号varchar(20)

Primary

Key,

姓名varchar(10)

not

null,

性别varchar(2)

not

null)

以上就是关于求数据库常用语句。。。最好有解析的。全部的内容,包括:求数据库常用语句。。。最好有解析的。、postgresql 创建数据库问题、怎样用postgresql建表,建数据库等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/sjk/9391303.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-27
下一篇 2023-04-27

发表评论

登录后才能评论

评论列表(0条)

保存