数据库基础操作语句
- 格式:doc
- 大小:46.50 KB
- 文档页数:15
PGSQL基础语句汇总⼀、pgsql⾥⾯的数据类型不再介绍:⼆、常⽤基本语句2.1、CREATE DATABASE dbname; 创建数据库create database Demo1;注意:createdb 命令位于 PostgreSQL安装⽬录/bin 下,执⾏创建数据库的命令: $ cd /Library/PostgreSQL/11/bin/ $ createdb -h localhost -p 5432 -U postgres Demo1 password ******2.2、DROP DATABASE [ IF EXISTS ] dbname; 删除数据库drop database Demo1;注意: dropdb 名位于 PostgreSQL安装⽬录/bin 下,执⾏删除数据库的命令: $ cd /Library/PostgreSQL/11/bin/ $ dropdb -h localhost -p 5432 -U postgres runoobdb password ******2.3、DROP TABLE 语句来删除表格,包含表格数据、规则、触发器DROP TABLE Demo1; 或者 drop table department, company;2.4、PostgreSQL 模式(SCHEMA)可以看着是⼀个表的集合,⼀个模式可以包含视图、索引、数据类型、函数和操作符 相同的对象名称可以被⽤于不同的模式中⽽不会出现冲突, 例如 schema1 和 myschema 都可以包含名为 mytable 的表。
使⽤模式的优势:1、允许多个⽤户使⽤⼀个数据库并且不会互相⼲扰。
2、将数据库对象组织成逻辑组以便更容易管理。
3、第三⽅应⽤的对象可以放在独⽴的模式中,这样它们就不会与其他对象的名称发⽣冲突。
2.4.1、创建语法:# create schema myschema;# create table pany( ID INT NOT NULL, NAME VARCHAR (20) NOT NULL, AGE INT NOT NULL, ADDRESS CHAR (25), SALARY DECIMAL (18, 2), PRIMARY KEY (ID) ); 2.4.2、删除语法: 删除⼀个为空的模式(其中的所有对象已经被删除): DROP SCHEMA myschema; 删除⼀个模式以及其中包含的所有对象: DROP SCHEMA myschema CASCADE;2.5、插⼊语句:INSERT INTO TABLE_NAME (column1, column2, column3,...columnN)VALUES (value1, value2, value3,...valueN);所有字段插⼊值或者 INSERT INTO TABLE_NAMEVALUES (value1,value2,value3,...valueN);案例:# INSERT INTO COMPANY (ID,NAME,AGE,ADDRESS,SALARY,JOIN_DATE) VALUES (1, 'Paul', 32, 'California', 20000.00,'2001-07-13');所有字段插⼊值或者 INSERT INTO COMPANY VALUES (1, 'Paul', 32, 'California', 20000.00,'2001-07-13');2.6、查询语句:SELECT column1, column2,...columnN FROM table_name;案例:SELECT * FROM company;SELECT * FROM COMPANY WHERE SALARY > 50000; =或!=或 >=、IS NOT NULL;案例2: # SELECT (17 + 6) AS ADDITION ;# SELECT COUNT(*) AS "RECORDS" FROM COMPANY;PostgreSQL 还内置了⼀些数学函数,如: 1、avg() :返回⼀个表达式的平均值 2、sum() :返回指定字段的总和 3、count() :返回查询的记录总数2.7、更新数据库表中数据语法:UPDATE table_name SET column1 = value1,column2 = value2...., columnN = valueN WHERE [condition];案例:# UPDATE COMPANY SET SALARY = 15000 WHERE ID = 3;2.8、DELETE 语句来删除 PostgreSQL 表中的数据DELETE FROM table_name WHERE [condition];案例:DELETE FROM table_name WHERE [condition];2.9、查询数据 limit 或 OFFSET案例:=# SELECT * FROM COMPANY LIMIT 4;偏移 offset# SELECT * FROM COMPANY LIMIT 3 OFFSET 2;2.10、DISTINCT 关键字与 SELECT 语句⼀起使⽤,⽤于去除重复记录,只获取唯⼀的记录案例:SELECT DISTINCT name FROM COMPANY;2.11、PostgreSQL 约束⽤于规定表中的数据规则。
数据库基础语句
数据库基础语句是指在数据库中进行数据操作时所使用的一些基本语句,包括数据查询、插入、更新和删除等操作。
以下是一些常用的数据库
基础语句:1.SELECT语句:用于查询数据库中的数据,可以指定要查询
的列、表、条件等。
2.INSERT语句:用于向数据库中插入新的数据,可
以指定要插入的表、列和值。
3.UPDATE语句:用于更新数据库中的数据,可以指定要更新的表、列和条件。
4.DELETE语句:用于删除数据库中的
数据,可以指定要删除的表和条件。
5.CREATE语句:用于创建新的数据库、表、视图、索引等对象。
6.ALTER语句:用于修改数据库中已有的对象,如表结构、列属性等。
7.DROP语句:用于删除数据库中的对象,如表、视图、索引等。
8.TRUNCATE语句:用于清空表中的数据,但不删除
表本身。
以上是一些常用的数据库基础语句,掌握这些语句可以进行基本
的数据操作。
同时,还需要注意SQL语句的语法和规范,以避免出现错误。
数据库基本操作语句1、select 语句SELECT 语句用于从数据库中选取数据,结果被存储在一个结果表中,称为结果集。
SELECT 列名称FROM 表名称;或SELECT *FROM 表名称;2、select distinct 语句SELECT DISTINCT 语句用于返回唯一不同的值。
在表中,一个列可能会包含多个重复值,有时您也许希望仅仅列出不同(distinct)的值。
DISTINCT 关键词用于返回唯一不同的值。
SELECT DISTINCT 列名称FROM 表名称;3、where 子句WHERE 子句用于提取那些满足指定条件的记录。
SELECT *FROM 表名称WHERE 列名称运算符值;运算符:大于、等于、小于、between、like…SQL 使用单引号来引用字符;如果是数值,不需要加引号4、and 和or 运算符AND & OR 运算符用于基于一个以上的条件对记录进行过滤。
如果第一个条件和第二个条件都成立,则AND 运算符显示一条记录。
如果第一个条件和第二个条件中只要有一个成立,则OR 运算符显示一条记录。
SELECT * FROM 表名称WHERE 列1 = 值1AND (列2 = 值2 OR 列2 = 值3);5、order by 语句ORDER BY 关键字用于对结果集进行排序。
ORDER BY 关键字用于对结果集按照一个列或者多个列进行排序。
ORDER BY 关键字默认按照升序(ASC)对记录进行排序。
如果需要按照降序对记录进行排序,您可以使用DESC 关键字。
SELECT * FROM 表名称ORDER BY 列名称ASC|DESC;6、insert into 语句INSERT INTO 语句用于向表中插入新记录。
第一种形式无需指定要插入数据的列名,只需提供被插入的值即可:INSERT INTO 表名称VALUES (值1,值2,...);第二种形式需要指定列名及被插入的值:INSERT INTO 表名称(列1,列2,...)VALUES (值1,值2,...);7、update 语句UPDATE 语句用于更新表中已存在的记录。
数据库的基本增删改查语句数据库的基本增删改查语句是数据库操作中最基础、最常用的语句,用于对数据库中的数据进行增加、删除、修改和查询。
下面列举了10个常用的增删改查语句,并对其进行了详细的描述。
一、增加数据(INSERT)INSERT语句用于向数据库表中插入新的数据记录。
其基本语法如下:INSERT INTO 表名 (字段1, 字段2, ...) VALUES (值1, 值2, ...);其中,表名为要插入数据的表名,字段1、字段2为要插入数据的字段名,值1、值2为要插入的具体数值。
二、删除数据(DELETE)DELETE语句用于从数据库表中删除数据记录。
其基本语法如下:DELETE FROM 表名 WHERE 条件;其中,表名为要删除数据的表名,条件为指定的删除条件。
三、修改数据(UPDATE)UPDATE语句用于修改数据库表中的数据记录。
其基本语法如下:UPDATE 表名 SET 字段1=值1, 字段2=值2, ... WHERE 条件;其中,表名为要修改数据的表名,字段1、字段2为要修改数据的字段名,值1、值2为要修改的新数值,条件为指定的修改条件。
四、查询数据(SELECT)SELECT语句用于从数据库表中查询数据记录。
其基本语法如下:SELECT 字段1, 字段2, ... FROM 表名 WHERE 条件;其中,字段1、字段2为要查询的字段名,表名为要查询的表名,条件为指定的查询条件。
五、插入多条数据(INSERT INTO SELECT)INSERT INTO SELECT语句用于将查询结果插入到另一个表中。
其基本语法如下:INSERT INTO 表名(字段1, 字段2, ...) SELECT 字段1, 字段2, ... FROM 表名 WHERE 条件;其中,表名为要插入数据的表名,字段1、字段2为要插入数据的字段名,SELECT语句用于指定要插入的数据来源。
六、删除多条数据(DELETE FROM SELECT)DELETE FROM SELECT语句用于根据查询结果删除表中的数据记录。
SQL数据库基础语法SQL语句的概述SQL语⾔的分类 数据定义语⾔(Data Definition Language)主要⽤于修改、创建和删除数据库对象,其中包括CREATE ALTER DROP语句。
数据查询语⾔(Data Query Language)主要⽤于查询数据库中的数据,其主要是SELECT语句,SELECT语句包括五个⼦句,分别是FROM WHERE HAVING GROUP BY和WITH语句。
数据操作语⾔(Data Manipulation Language)主要⽤于更新数据库⾥数据表中的数据,包括INSERT UODATE DELETE语句。
数据控制语⾔(Data Control Language)主要⽤于授予和回收访问数据库的某种权限。
包括GRANT REVOKE等语句。
事物控制语⾔,主要⽤于数据库对事物的控制,保证数据库中数据的⼀致性,包括COMMIT ROLLBACK语句。
常⽤的数据类型 MYSQL: SQL语句的书写规范 SQL语句中不区分关键字的⼤⼩写 SQL语句中不区分列名和对象名的⼤⼩写 SQL语句对数据库中数据的⼤⼩写敏感 SQL语句中使⽤--注释时,--后⾯⾄少有⼀个空格,多⾏注释⽤/* */ 数据库的创建与删除 (1)数据库的创建: CREATE DATABASE database_name; 在中书写SQL语句时,在SQL语句后⾯都要加上分号 (2)数据库的删除 DROP DATABASE database_name;数据表的创建与更新 数据库中的表 (1)数据记录:在数据表中的每⼀⾏被称为数据记录 (2)字段:数据表中的每⼀列被称为字段 (3)主键(PRIMARY KEY):作为数据表中唯⼀的表⽰,保证了每⼀天数记录的唯⼀性。
逐渐在关系数据库中约束实体完整性。
所谓实体完整性,是指对数据表⾏的约束。
(4)外键(FOREIGN KEY):外键⽤来定义表与表之间的关系。
sql修改数据基本语句SQL语言是关系型数据库管理系统中最为重要的语言之一,其可以帮助我们对数据库进行修改、查询、删除操作等。
在 SQL 中,修改数据是一种非常基本的操作,因此,本文将介绍 SQL 中修改数据的基本语句及其应用。
SQL 修改数据基本语句SQL 中,修改数据的基础语句为 UPDATE,该语法格式如下:```UPDATE table_name SET column_name = new_value WHEREcolumn_name = specific_value;```其中 UPDATE 关键字用于指定需要修改数据的表名,SET 关键字用于指定需要修改的列名和新值,WHERE 关键字用于指定需要修改的数据的条件或条件集。
具体步骤如下:步骤 1:打开数据库在开始之前,我们需要打开数据库并连接到需要修改数据的表。
步骤 2:编写 SQL 语句根据需要修改的数据和条件编写 SQL 语句,语法格式已在上述介绍中给出。
步骤 3:执行 SQL 语句使用 SQL 客户端执行上述 SQL 语句,便可以完成数据的修改操作。
SQL 修改数据应用实例下面,我们以一个简单的实例来说明 SQL 修改数据的操作流程。
假设我们有一张员工信息表,其中包含以下列:- 唯一标识符(ID)- 员工姓名(Name)- 薪资(Salary)需求:我们需要将 ID=1001 的员工姓名修改为“张三”。
1. 打开 SQL 客户端在打开 SQL 客户端后,连接到需要修改数据的表。
2. 编写 SQL 语句根据需求,编写修改员工信息的 SQL 语句:```UPDATE employee SET Name = '张三' WHERE ID = 1001;```3. 执行 SQL 语句执行上述 SQL 语句,数据就可以被成功修改。
当我们再次查询该表中 ID=1001 的员工信息时,会发现该员工姓名已经被修改为“张三”。
总结SQL 修改数据是 SQL 语言的基本操作之一,其语法格式较为简单。
•例1:查询全体学生的学号与姓名。
SELECT Sno, Sname FROM Student例2.查询全体学生的姓名、学号、所在系SELECT Sname, Sno, SdeptFROM Student•例3.查询全体学生的记录SELECT Sno,Sname,Ssex, Sage, SdeptFROM Student•例5.查询全体学生的姓名和出生年份所在系,并在出生年份列前加入一个列,此列的每行数据均为“出生年份”常量值。
SELECT Sname,'出生年份:', 2010-SageFROM Student例6.查询选修了课程的学生的学号SELECT Sno FROM SC•例7.查询计算机系全体学生的姓名。
SELECT Sname FROM StudentWHERE Sdept = '计算机系‘•例8.查询年龄在20岁以下的学生的姓名及年龄。
SELECT Sname, Sage FROM StudentWHERE Sage < 20或SELECT Sname, Sage FROM StudentWHERE NOT Sage >= 20•例9.查询考试成绩有不及格的学生的学号SELECT DISTINCT Sno FROM SCWHERE Grade < 60•例10.查询年龄在20~23岁之间的学生的姓名、所在系和年龄。
SELECT Sname, Sdept, Sage FROM StudentWHERE Sage BETWEEN 20 AND 23SELECT Sname, Sdept, Sage FROM StudentWHERE Sage >= 20 AND Sage<= 23•例11.查询年龄不在20~23之间的学生姓名、所在系和年龄。
SELECT Sname, Sdept, Sage FROM StudentWHERE Sage NOT BETWEEN 20 AND 23SELECT Sname, Sdept, Sage FROM StudentWHERE Sage < 20 or Sage> 23•例12.查询2009年6月份出版的全部图书的详细信息。
Oracle数据库基础知识:SELECT语句Oracle数据库基础知识:SELECT语句SELECT语句是指用来查询、添加、和删除数据库中数据的语句, 和删除数据库中数据的语句 , 它们是 SELECT 、 INSERT 、 UPDATE 、DELETE等. 下面是Oracle数据库基础知识——SELECT语句,希望对大家有所帮助!普通用户连接conn scott/tiger超级管理员连接conn “sys/sys as sysdba”Disconnect 断开连接把SQL存到文件 save c:\1.txtEd c:\1.txt编辑SQL语句@c:\1.txt运行SQL语句Desc emp描述EMP结构Select * from tab 查看该用户下大所有对象Show user显示当前用户书写SQL语句的原则大小写不敏感,但单引和双引内的大小写是敏感的。
切记!关键字不能缩写可以分行书写,但关键字不能被跨行书写,单引内也不要跨行书写。
一般每个子句是一行可以排版来增加可读性字符串用单引列的别名用双引SELECT语句1、简单的Select语句Select * from table 不指定查询的字段Select attr1,attr2 from table指定查询某些字段Select attr1,attr2 from table where attr1=xxx查询符合条件的指定字段2、使用算术表达式 + - / *表达式的运算是有优先级的,和程序中的.一样,先乘除后加减,括号强制优先级.+ - * /先乘除,后加减,括号强制优先级Select ename,12*sal+300 from emp;Select ename,12*(sal+300) from emp;3、连接运算符 ||4、使用字段别名 as别名的使用原则1。
区分同名列的名称2。
非法的表达式合法化3。
按照你的意愿显示列的名称4。
特殊的别名要双引5。
初学者必读的SQL数据库基础教程SQL数据库是一种常用的数据库管理系统,广泛应用于各种软件开发和数据管理领域。
对于初学者来说,掌握SQL数据库的基础知识是非常重要的。
本文将从数据定义语言、数据操作语言、数据查询语言和数据控制语言等方面,为初学者提供一份必读的SQL数据库基础教程。
第一章数据定义语言(DDL)数据定义语言(DDL)是SQL数据库中用来定义数据库结构的语言。
它包括创建、修改和删除数据库、表、列以及其他对象的操作。
在SQL中,创建数据库使用CREATE DATABASE语句,创建表使用CREATE TABLE语句,修改表结构使用ALTER TABLE语句,删除表使用DROP TABLE语句等。
初学者在学习时应该了解这些常用的DDL语句,并能够正确地使用它们。
第二章数据操作语言(DML)数据操作语言(DML)是SQL数据库中用来对数据库中的数据进行操作的语言。
它包括插入、更新和删除数据的操作。
在SQL中,插入数据使用INSERT INTO语句,更新数据使用UPDATE语句,删除数据使用DELETE FROM语句等。
初学者需要熟悉这些基本的DML语句,并能够通过它们来操作数据库中的数据。
第三章数据查询语言(DQL)数据查询语言(DQL)是SQL数据库中用来查询数据库中的数据的语言。
它包括SELECT语句和一些用于过滤、排序和聚合数据的函数。
初学者需要掌握SELECT语句的基本用法,了解如何使用WHERE子句进行条件过滤,如何使用ORDER BY子句进行排序,以及如何使用GROUP BY子句进行数据聚合。
第四章数据控制语言(DCL)数据控制语言(DCL)是SQL数据库中用来控制数据库访问权限和事务处理的语言。
它包括GRANT和REVOKE语句用于授权和撤销权限,以及BEGIN TRANSACTION、COMMIT和ROLLBACK语句用于管理事务。
初学者需要了解如何使用DCL语句来管理数据库的安全性和事务一致性。
mysql基础语句汇总MySQL是一种常用的关系型数据库管理系统,它支持多种基础语句来操作数据库。
下面列举了十个常用的MySQL基础语句,用于对数据库进行增删改查等操作。
1. 创建数据库:CREATE DATABASE database_name;通过此语句可以创建一个新的数据库。
其中database_name为你想要创建的数据库的名称。
2. 创建表:CREATE TABLE table_name (column1 datatype,column2 datatype,column3 datatype,...);通过此语句可以在数据库中创建一个新的表。
其中table_name为你想要创建的表的名称,column1、column2等为表的列名,datatype为列的数据类型。
3. 插入数据:INSERT INTO table_name (column1, column2, column3, ...)VALUES (value1, value2, value3, ...);通过此语句可以向表中插入新的数据。
其中table_name为你想要插入数据的表的名称,column1、column2等为表的列名,value1、value2等为要插入的数据值。
4. 更新数据:UPDATE table_nameSET column1 = value1, column2 = value2, ...WHERE condition;通过此语句可以更新表中的数据。
其中table_name为你想要更新数据的表的名称,column1、column2等为要更新的列名和新的数据值,condition为更新的条件。
5. 删除数据:DELETE FROM table_nameWHERE condition;通过此语句可以删除表中的数据。
其中table_name为你想要删除数据的表的名称,condition为删除的条件。
6. 查询数据:SELECT column1, column2, ...FROM table_nameWHERE condition;通过此语句可以从表中查询数据。
一、基础1、说明:创建数据库CREATE DATABASE database-name2、说明:删除数据库drop database dbname3、说明:备份sql server--- 创建备份数据的deviceUSE masterEXEC sp_addumpdevice 'disk', 'testBack', 'c:\mssql7backup\MyNwind_1.dat'--- 开始备份BACKUP DATABASE pubs TO testBack4、说明:创建新表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 only5、说明:删除新表drop table tabname6、说明:增加一个列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 viewname10、说明:几个简单的基本的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 table111、说明:几个高级查询运算词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 a.a, a.b, a.c, b.c, b.d, b.f from a LEFT OUT JOIN b ON a.a = b.cB:right outer join:右外连接(右连接):结果集既包括连接表的匹配连接行,也包括右连接表的所有行。
C:full outer join:全外连接:不仅包括符号连接表的匹配行,还包括两个连接表中的所有记录。
二、提升1、说明:复制表(只复制结构,源表名:a 新表名:b) (Access可用)法一:select * into b from a where 1<>1法二:select top 0 * into b from a2、说明:拷贝表(拷贝数据,源表名: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 '"&Server.MapPath("."&"\data.mdb" &"' 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 a.title,ername,b.adddate from table a,(select max(adddate) adddate from table where table.title=a.title) b6、说明:外连接查询(表名1:a 表名2:b)select a.a, a.b, a.c, b.c, b.d, b.f from a LEFT OUT JOIN b ON a.a = b.c7、说明:在线视图查询(表名1:aselect * from (SELECT a,b,c FROM a) T where t.a > 1;8、说明:between的用法,between限制查询数据范围时包括了边界值,not between不包括select * from table1 where time between time1 and time2select a,b,c, from table1 where a not between 数值1 and 数值29、说明:in 的使用方法select * from table1 where a [not] in (‘值1’,’值2’,’值4’,’值6’)10、说明:两张关联表,删除主表中已经在副表中没有的信息delete from table1 where not exists ( select * from table2 where table1.field1=table2.field111、说明:四表联查问题:select * from a left inner join b on a.a=b.b right inner join c on a.a=c.c inner join d on a.a=d.d where .....12、说明:日程安排提前五分钟提醒SQL: select * from 日程安排where datediff('minute',f开始时间,getdate())>513、说明:一条sql 语句搞定数据库分页select top 10 b.* from (select top 20 主键字段,排序字段from 表名order by 排序字段desc) a,表名b where b.主键字段= a.主键字段order by a.排序字段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 tb.b=ta.b)16、说明:包括所有在T ableA 中但不在T ableB和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、说明:删除重复记录Delete from tablename where id not in (select max(id) from tablename group by col1,col2,...)20、说明:列出数据库里所有的表名select name from sysobjects where type='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 323、说明:初始化表table1TRUNCATE TABLE table124、说明:选择从10到15的记录select top 5 * from (select top 15 * from table order by id asc) table_别名order by id desc三、技巧1、1=1,1=2的使用,在SQL语句组合时用的较多“where 1=1”是表示选择全部“where 1=2”全部不选,如:if @strWhere !='beginset @strSQL = 'select count(*) as Total from [' + @tblName + '] where ' + @strWhereendelsebeginset @strSQL = 'select count(*) as Total from [' + @tblName + ']'end我们可以直接写成set @strSQL = 'select count(*) as Total from [' + @tblName + '] where 1=1 安定'+ @strWhere2、收缩数据库--重建索引DBCC REINDEXDBCC INDEXDEFRAG--收缩数据和日志DBCC SHRINKDBDBCC SHRINKFILE3、压缩数据库dbcc shrinkdatabase(dbname)4、转移数据库给新用户以已存在用户权限exec sp_change_users_login 'update_one','newname','oldname'go5、检查备份集RESTORE VERIFYONLY from disk='E:\dvbbs.bak'6、修复数据库ALTER DATABASE [dvbbs] SET SINGLE_USERGODBCC CHECKDB('dvbbs',repair_allow_data_loss) WITH TABLOCK GOALTER DATABASE [dvbbs] SET MULTI_USERGO7、日志清除SET NOCOUNT ONDECLARE @LogicalFileName sysname,@MaxMinutes INT,@NewSize INTUSE tablename -- 要操作的数据库名SELECT @LogicalFileName = 'tablename_log', -- 日志文件名@MaxMinutes = 10, -- Limit on time allowed to wrap log.@NewSize = 1 -- 你想设定的日志文件的大小(M)-- Setup / initializeDECLARE @OriginalSize intSELECT @OriginalSize = sizeFROM sysfilesWHERE name = @LogicalFileNameSELECT 'Original Size of ' + db_name() + ' LOG is ' +CONVERT(VARCHAR(30),@OriginalSize) + ' 8K pages or ' + CONVERT(VARCHAR(30),(@OriginalSize*8/1024)) + 'MB'FROM sysfilesWHERE name = @LogicalFileNameCREATE TABLE DummyTrans(DummyColumn char (8000) not null)DECLARE @Counter INT,@StartTime DATETIME,@TruncLog VARCHAR(255)SELECT @StartTime = GETDATE(),@TruncLog = 'BACKUP LOG ' + db_name() + ' WITH TRUNCATE_ONLY' DBCC SHRINKFILE (@LogicalFileName, @NewSize)EXEC (@TruncLog)-- Wrap the log if necessary.WHILE @MaxMinutes > DATEDIFF (mi, @StartTime, GETDATE()) -- time has not expiredAND @OriginalSize = (SELECT size FROM sysfiles WHERE name = @LogicalFileName)AND (@OriginalSize * 8 /1024) > @NewSizeBEGIN -- Outer loop.SELECT @Counter = 0WHILE ((@Counter < @OriginalSize / 16) AND (@Counter < 50000))BEGIN -- updateINSERT DummyTrans VALUES ('Fill Log')DELETE DummyTransSELECT @Counter = @Counter + 1ENDEXEC (@TruncLog)ENDSELECT 'Final Size of ' + db_name() + ' LOG is ' +CONVERT(VARCHAR(30),size) + ' 8K pages or ' +CONVERT(VARCHAR(30),(size*8/1024)) + 'MB'FROM sysfilesWHERE name = @LogicalFileNameDROP TABLE DummyTransSET NOCOUNT OFF8、说明:更改某个表exec sp_changeobjectowner 'tablename','dbo'9、存储更改全部表CREATE PROCEDURE er_ChangeObjectOwnerBatch @OldOwner as NVARCHAR(128),@NewOwner as NVARCHAR(128)ASDECLARE @Name as NVARCHAR(128)DECLARE @Owner as NVARCHAR(128)DECLARE @OwnerName as NVARCHAR(128)DECLARE curObject CURSOR FORselect 'Name' = name,'Owner' = user_name(uid)from sysobjectswhere user_name(uid)=@OldOwnerorder by nameOPEN curObjectFETCH NEXT FROM curObject INTO @Name, @Owner WHILE(@@FETCH_STATUS=0)BEGINif @Owner=@OldOwnerbeginset @OwnerName = @OldOwner + '.' + rtrim(@Name) exec sp_changeobjectowner @OwnerName, @NewOwner end-- select @name,@NewOwner,@OldOwnerFETCH NEXT FROM curObject INTO @Name, @Owner ENDclose curObjectdeallocate curObjectGO10、SQL SERVER中直接循环写入数据declare @i intset @i=1while @i<30begininsert into test (userid) values(@i) set @i=@i+1end。