精华内容
下载资源
问答
  • 基础语句 1、显示所有数据库 show databases; 2、 删除数据库 drop database dbName; 3、 创建数据库 create database [if not exists] dbName;(中括判断该数据不存在就可以创建) 4、 切换、使用指定数据库 use ...
    • 基础语句

    1、显示所有数据库
    show databases;

    2、 删除数据库
    drop database dbName;

    3、 创建数据库
    create database [if not exists] dbName;(中括判断该数据不存在就可以创建)

    4、 切换、使用指定数据库
    use dbName;

    5、 显示当前数据库所有的表对象
    show tables;

    6、 显示表结构
    desc tableName;

    7、创建表关系
    create table a1(
    id char(5) not null,
    name varchar(20) not null,
    dept_name varchar(20) not null,
    primary key(id)
    );

    8、查询
    eg: select id from a1;
    eg: select * from a1;

    9、 添加表字段
    添加单列
    alter table a1 add tel varchar(11) default ‘02012345678’;

    添加多列
    alter table a1
    add (
    photo blob,
    birthday date
    );
    上面就同时增加了多列字段

    10、 修改表字段

    修改tel列
    alter table a1 modify tel varchar(15) default ‘02087654321’;

    修改tel列的位置,在第一列显示
    alter table a1 modify tel varchar(15) default ‘02087654321’ first;

    修改tel列的位置,在指定列之后显示
    alter table a1 modify tel varchar(15) default ‘02087654321’ after name;

    注意:alter modify不支持一次修改多个列,但是Oracle支持多列修改。但是MySQL可以通过多个modify的方式完成:

    alter table a1
    modify tel varchar(15) default ‘02087654321’ first,
    modify name varchar(20) after tel;

    11、 删除指定字段
    alter table a1 drop name;

    12、 重命名表数据
    表重命名
    alter table a1 rename to a2;

    字段重命名
    alter table a1 change name u_name varchar(10);
    alter table a1 change sex u_sex varchar(10) after u_name;
    如果需要改变列名建议使用change,如果需要改变数据类型和显示位置可以使用modify

    13、 删除表
    drop table users;
    drop删除表会删除表结构,表对象将不存在数据中;数据也不会存在;表内的对象也不存在,如:索引、视图、约束;

    truncate删除表
    truncate都被当成DDL出来,truncate的作用就是删除该表里的全部数据,保留表结构。相当于DDL中的delete语句。但是truncate比delete语句的速度要快得多。但是truncate不能带条件删除指定数据,只会删除所有的数据。如果删除的表有外键,删除的速度类似于delete。但新版本的MySQL中truncate的速度比delete速度快。

    • 关键语法:

    1、group by

    ① 满足 “select子句中的列名必须为分组列或者列函数”,即如果用group by ,那么你的select语句中选出的要么是你group by里用到的列,要么就是之前所说的如sum、min等列函数的列
    ② 列函数对于group by子句定义的每个组各返回一个结果

    2、having

    ① 通常与group by子句一起使用
    ② WHERE过滤行,HAVING过滤组
    ③ 出现在同一sql中的顺序 WHERE>GROUP BY>HAVING

    3、统计相关(count、sum、max、min、avg)

    展开全文
  • 数据库SELECT COUNT语句

    千次阅读 2019-11-05 09:54:56
    关于数据库中行数统计,无论是MySQL还是Oracle,都有一个函数可以使用,那就是COUNT 尝尝问道以下问题 1、COUNT有几种用法? 2、COUNT(字段名)和COUNT(*)的查询结果有什么不同? 3、COUNT(1)和COUNT(*)之间有...

    关于数据库中行数统计,无论是MySQL还是Oracle,都有一个函数可以使用,那就是COUNT

    尝尝问道以下问题

    1、COUNT有几种用法?

    2、COUNT(字段名)和COUNT(*)的查询结果有什么不同?

    3、COUNT(1)和COUNT(*)之间有什么不同?

    4、COUNT(1)和COUNT(*)之间的效率哪个更高?

    5、为什么《阿里巴巴Java开发手册》建议使用COUNT(*)

    6、MySQL的MyISAM引擎对COUNT(*)做了哪些优化?

    7、MySQL的InnoDB引擎对COUNT(*)做了哪些优化?

    8、上面提到的MySQL对COUNT(*)做的优化,有一个关键的前提是什么?

    9、SELECT COUNT(*) 的时候,加不加where条件有差别吗?

    10、COUNT(*)、COUNT(1)和COUNT(字段名)的执行过程是怎样的?

    认识COUNT

    关于COUNT函数,在MySQL官网中有详细介绍:

    简单翻译一下:

    1、COUNT(expr) ,返回SELECT语句检索的行中expr的值不为NULL的数量。结果是一个BIGINT值。

    2、如果查询结果没有命中任何记录,则返回0

    3、但是,值得注意的是,COUNT(*) 的统计结果中,会包含值为NULL的行数。

     总结一点: 就是COUNT(*)会统计包含NULL行的数据, 而COUNT(列名)不会统计包含NULL行的数据

    COUNT(*)和COUNT(1)


    介绍完了COUNT(*),接下来看看COUNT(1),对于,这二者到底有没有区别,网上的说法众说纷纭。

    有的说COUNT(*)执行时会转换成COUNT(1),所以COUNT(1)少了转换步骤,所以更快。

    还有的说,因为MySQL针对COUNT(*)做了特殊优化,所以COUNT(*)更快。

    那么,到底哪种说法是对的呢?看下MySQL官方文档是怎么说的:

    InnoDB handles SELECT COUNT(*) and SELECT COUNT(1) operations in the same way. There is no performance difference.

    画重点:same way , no performance difference。意思说 同样的方法,没有性能差异。所以,对于COUNT(1)和COUNT(*),MySQL的优化是完全一样的,根本不存在谁比谁快! 

    那既然COUNT(*)和COUNT(1)一样,建议用哪个呢?

    建议使用COUNT(*)!因为这个是SQL92定义的标准统计行数的语法,而且本文只是基于MySQL做了分析,关于Oracle中的这个问题,也是众说纷纭的呢。
     

    COUNT(列名)、COUNT(常量)和COUNT(*)之间的区别

    COUNT(常量) 和 COUNT(*)表示的是直接查询符合条件的数据库表的行数。而COUNT(列名)表示的是查询符合条件的列的值不为NULL的行数

    除了查询得到结果集有区别之外,COUNT(*)相比COUNT(常量) 和 COUNT(列名)来讲,COUNT(*)是SQL92定义的标准统计行数的语法,因为他是标准语法,所以MySQL数据库对他进行过很多优化。

    COUNT(*)的优化

    COUNT(*)是SQL92定义的标准统计行数的语法, MySQL数据库对他进行过很多优化. 

    MyISAM和InnoDB有很多区别,其中有一个关键的区别和我们接下来要介绍的COUNT(*)有关,那就是MyISAM不支持事务,MyISAM中的锁是表级锁;而InnoDB支持事务,并且支持行级锁。

    因为MyISAM的锁是表级锁,所以同一张表上面的操作需要串行进行,所以,MyISAM做了一个简单的优化,那就是它可以把表的总行数单独记录下来,如果从一张表中使用COUNT(*)进行查询的时候,可以直接返回这个记录下来的数值就可以了,当然,前提是不能有where条件。

    MyISAM之所以可以把表中的总行数记录下来供COUNT(*)查询使用,那是因为MyISAM数据库是表级锁,不会有并发的数据库行数修改,所以查询得到的行数是准确的。

    对于InnoDB来说,就不能做这种缓存操作了,因为InnoDB支持事务,其中大部分操作都是行级锁,所以可能表的行数可能会被并发修改,那么缓存记录下来的总行数就不准确了。

    COUNT(*)的目的只是为了统计总行数,所以,他根本不关心自己查到的具体值,所以,他如果能够在扫表的过程中,选择一个成本较低的索引进行的话,那就可以大大节省时间。

    MySQL数据库对于COUNT(*)的优化,这些优化的前提都是查询语句中不包含WHERE以及GROUP BY条件。

     

    COUNT(字段)

    查询就比较简单粗暴了,就是进行全表扫描,然后判断指定字段的值是不是为NULL,不为NULL则累加。

    相比COUNT(*)COUNT(字段)多了一个步骤就是判断所查询的字段是否为NULL,所以他的性能要比COUNT(*)

    总结

    本文介绍了COUNT函数的用法,主要用于统计表行数。主要用法有COUNT(*)、COUNT(字段)和COUNT(1)。

    因为COUNT(*)是SQL92定义的标准统计行数的语法,所以MySQL对他进行了很多优化,MyISAM中会直接把表的总行数单独记录下来供COUNT(*)查询,而InnoDB则会在扫表的时候选择最小的索引来降低成本。当然,这些优化的前提都是没有进行where和group的条件查询。

    在InnoDB中COUNT(*)和COUNT(1)实现上没有区别,而且效率一样,但是COUNT(字段)需要进行字段的非NULL判断,所以效率会低一些。

    因为COUNT(*)是SQL92定义的标准统计行数的语法,并且效率高,所以请直接使用COUNT(*)查询表的行数!

    参考资料:

    不就是SELECT COUNT语句吗,竟然能被面试官虐的体无完肤
    《极客时间——MySQL实战45讲》

    展开全文
  • 数据库,简而言之可视为电子化的文件柜——存储电子文件的处所,用户可以对文件中的数据进行新增、查询、更新、删除等操作。 所谓“数据库”是以一定方式储存在一起、能予多个用户共享、具有尽可能小的冗余度、与...

    数据库介绍

    数据库,简而言之可视为电子化的文件柜——存储电子文件的处所,用户可以对文件中的数据进行新增、查询、更新、删除等操作。
    所谓“数据库”是以一定方式储存在一起、能予多个用户共享、具有尽可能小的冗余度、与应用程序彼此独立的数据集合。

    数据库管理系统-简称(DBMS)

    数据库管理系统(Database Management System)是一种操纵和管理数据库的大型软件,用于建立、使用和维护数据库,简称DBMS。它对数据库进行统一的管理和控制,以保证数据库的安全性和完整性。用户通过DBMS访问数据库中的数据,数据库管理员也通过dbms进行数据库的维护工作。它可使多个应用程序和用户用不同的方法在同时或不同时刻去建立,修改和询问数据库。大部分DBMS提供数据定义语言DDL(Data Definition Language)和数据操作语言DML(Data Manipulation Language),供用户定义数据库的模式结构与权限约束,实现对数据的追加、删除等操作。
    数据库管理系统是数据库系统的核心,是管理数据库的软件。数据库管理系统就是实现把用户意义下抽象的逻辑数据处理,转换成为计算机中具体的物理数据处理的软件。有了数据库管理系统,用户就可以在抽象意义下处理数据,而不必顾及这些数据在计算机中的布局和物理位置。

    数据库管理系统-主要功能

    1.数据定义:DBMS提供数据定义语言DDL(Data Definition Language),供用户定义数据库的三级模式结构、两级映像以及完整性约束和保密限制等约束。DDL主要用于建立、修改数据库的库结构。DDL所描述的库结构仅仅给出了数据库的框架,数据库的框架信息被存放在数据字典(Data Dictionary)中。
    2.数据操作:DBMS提供数据操作语言DML(Data Manipulation Language),供用户实现对数据的追加、删除、更新、查询等操作。
    3.数据库的运行管理:数据库的运行管理功能是DBMS的运行控制、管理功能,包括多用户环境下的并发控制、安全性检查和存取限制控制、完整性检查和执行、运行日志的组织管理、事务的管理和自动恢复,即保证事务的原子性。这些功能保证了数据库系统的正常运行。
    4.数据组织、存储与管理:DBMS要分类组织、存储和管理各种数据,包括数据字典、用户数据、存取路径等,需确定以何种文件结构和存取方式在存储级上组织这些数据,如何实现数据之间的联系。数据组织和存储的基本目标是提高存储空间利用率,选择合适的存取方法提高存取效率。
    5.数据库的保护:数据库中的数据是信息社会的战略资源,所以数据的保护至关重要。DBMS对数据库的保护通过4个方面来实现:数据库的恢复、数据库的并发控制、数据库的完整性控制、数据库安全性控制。DBMS的其他保护功能还有系统缓冲区的管理以及数据存储的某些自适应调节机制等。
    6.数据库的维护:这一部分包括数据库的数据载入、转换、转储、数据库的重组合重构以及性能监控等功能,这些功能分别由各个使用程序来完成。
    7.通信:DBMS具有与操作系统的联机处理、分时系统及远程作业输入的相关接口,负责处理数据的传送。对网络环境下的数据库系统,还应该包括DBMS与网络中其他软件系统的通信功能以及数据库之间的互操作功能。

    数据库的类型

    1. 关系数据库

    ⚫ MySQL
    ⚫ MariaDB(MySQL的代替品,英文维基百科从MySQL转向MariaDB)
    ⚫ Percona Server(MySQL的代替品·)
    ⚫ PostgreSQL
    ⚫ Microsoft Access
    ⚫ Microsoft SQL Server
    ⚫ Google Fusion Tables
    ⚫ FileMaker
    ⚫ Oracle数据库
    ⚫ Sybase
    ⚫ dBASE
    ⚫ Clipper
    ⚫ FoxPro
    ⚫ foshub

    2. 非关系型数据库(NoSQL)

    ⚫ NoSQL
    ⚫ BigTable(Google)
    ⚫ Cassandra
    ⚫ MongoDB
    ⚫ CouchDB
    ⚫ 键值(key-value)数据库
    ⚫ Apache Cassandra(为Facebook所使用):高度可扩展
    ⚫ Dynamo
    ⚫ LevelDB(Google)

    数据库模型

    ⚫ 对象模型
    ⚫ 层次模型(轻量级数据访问协议)
    ⚫ 网状模型(大型数据储存)
    ⚫ 关系模型
    ⚫ 面向对象模型
    ⚫ 半结构化模型
    ⚫ 平面模型(表格模型,一般在形式上是一个二维数组。如表格模型数据Excel)

    数据库的架构

    ⚫ 数据库的架构可以大致区分为三个概括层次:内层、概念层和外层。
    ⚫ 内层:最接近实际存储体,亦即有关数据的实际存储方式。
    ⚫ 外层:最接近用户,即有关个别用户观看数据的方式。
    ⚫ 概念层:介于两者之间的间接层。

    数据库索引

    数据索引的观念由来已久,像是一本书前面几页都有目录,目录也算是索引的一种,只是它的分类较广,例如车牌、身份证字号、条码等,都是一个索引的号码,当我们看到号码时,可以从号码中看出其中的端倪,若是要找的人、车或物品,也只要提供相关的号码,即可迅速查到正确的人事物。
    另外,索引跟字段有着相应的关系,索引即是由字段而来,其中字段有所谓的关键字段(Key Field),该字段具有唯一性,即其值不可重复,且不可为"空值(null)"。例如:在合并数据时,索引便是扮演欲附加字段数据之指向性用途的角色。故此索引为不可重复性且不可为空。

    数据库操作:事务

    事务(transaction)是用户定义的一个数据库操作序列,这些操作要么全做,要么全不做,是一个不可分割的工作单位。 事务的ACID(数据库事务正确执行的四个基本要素的缩写)特性:
    ⚫ 基元性(atomicity)
    ⚫ 一致性(consistency)
    ⚫ 隔离性(isolation)
    ⚫ 持续性(durability)
    ⚫ 事务的并发性是指多个事务的并行操作轮流交叉运行,事务的并发可能会访问和存储不正确的数据,破坏交易的隔离性和数据库的一致性。
    ⚫ 网状数据模型的数据结构 网状模型 满足下面两个条件的基本层次联系的集合为网状模型。

    1. 允许一个以上的结点无双亲;
    2. 一个结点可以有多于一个的双亲。

    转载参考地址:https://baike.baidu.com/item/数据库/103728?fr=aladdin

    数据库基本----SQL语句大全

    一、基础
    
        1、说明:创建数据库
        Create DATABASE database-name
    
        2、说明:删除数据库
        drop database dbname
    
        3、说明:备份sql server
        --- 创建 备份数据的 device
        USE master
        EXEC sp_addumpdevice 'disk', 'testBack', 'c:/mssql7backup/MyNwind_1.dat'
        --- 开始 备份
        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、说明:几个高级查询运算词
        AUNION 运算符
        UNION 运算符通过组合其他两个结果表(例如 TABLE1TABLE2)并消去表中任何重复行而派生出一个结果表。当 ALLUNION 一起使用时(即 UNION ALL),不消除
    
    重复行。两种情况下,派生表的每一行不是来自 TABLE1 就是来自 TABLE2BEXCEPT 运算符
        EXCEPT 运算符通过包括所有在 TABLE1 中但不在 TABLE2 中的行并消除所有重复行而派生出一个结果表。当 ALLEXCEPT 一起使用时 (EXCEPT ALL),不消除重复行。
        CINTERSECT 运算符
        INTERSECT 运算符通过只包括 TABLE1TABLE2 中都有的行并消除所有重复行而派生出一个结果表。当 ALLINTERSECT 一起使用时 (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.c
        B: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 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 '"&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,a.username,b.adddate from table a,(select max(adddate) adddate from table where table.title=a.title) b
    
        6、说明:外连接查询(表名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.c
    
        7、说明:在线视图查询(表名1:a
        select * 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 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 table1.field1=table2.field1
    
        11、说明:四表联查问题:
        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、说明:日程安排提前五分钟提醒
        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.排序字段
    
        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、说明:包括所有在 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、说明:删除重复记录
        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 3
    
        23、说明:初始化表table1
    
        TRUNCATE TABLE table1
    
        24、说明:选择从1015的记录
        select top 5 * from (select top 15 * from table order by id asc) table_别名 order by id desc
    
    三、技巧
    
        11=11=2的使用,在SQL语句组合时用的较多
    
        “where 1=1” 是表示选择全部   “where 1=2”全部不选,
        如:
        if @strWhere !='
        begin
            set @strSQL = 'select count(*) as Total from [' + @tblName + '] where ' + @strWhere
        end
        else
            begin
                set @strSQL = 'select count(*) as Total from [' + @tblName + ']'
            end
    
        我们可以直接写成
        set @strSQL = 'select count(*) as Total from [' + @tblName + '] where 1=1 安定 '+ @strWhere
    
        2、收缩数据库
        --重建索引
        DBCC REINDEX
        DBCC INDEXDEFRAG
        --收缩数据和日志
        DBCC SHRINKDB
        DBCC SHRINKFILE
    
        3、压缩数据库
        dbcc shrinkdatabase(dbname)
    
        4、转移数据库给新用户以已存在用户权限
        exec sp_change_users_login 'update_one','newname','oldname'
        go
    
        5、检查备份集
        RESTORE VERIFYONLY from disk='E:/dvbbs.bak'
    
        6、修复数据库
        Alter DATABASE [dvbbs] SET SINGLE_USER
        GO
        DBCC CHECKDB('dvbbs',repair_allow_data_loss) WITH TABLOCK
        GO
        Alter DATABASE [dvbbs] SET MULTI_USER
        GO
    
        7、日志清除
        SET NOCOUNT ON
        DECLARE @LogicalFileName sysname,
                 @MaxMinutes INT,
                 @NewSize INT
    
    
        USE     tablename             -- 要操作的数据库名
        Select   @LogicalFileName = 'tablename_log',   -- 日志文件名
        @MaxMinutes = 10,               -- Limit on time allowed to wrap log.
                 @NewSize = 1                   -- 你想设定的日志文件的大小(M)
    
        -- Setup / initialize
        DECLARE @OriginalSize int
        Select @OriginalSize = size
           FROM sysfiles
           Where name = @LogicalFileName
        Select 'Original Size of ' + db_name() + ' LOG is ' +
                 CONVERT(VARCHAR(30),@OriginalSize) + ' 8K pages or ' +
                 CONVERT(VARCHAR(30),(@OriginalSize*8/1024)) + 'MB'
           FROM sysfiles
           Where name = @LogicalFileName
        Create 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 expired
               AND @OriginalSize = (Select size FROM sysfiles Where name = @LogicalFileName)
               AND (@OriginalSize * 8 /1024) > @NewSize
           BEGIN -- Outer loop.
             Select @Counter = 0
             WHILE   ((@Counter < @OriginalSize / 16) AND (@Counter < 50000))
               BEGIN -- update
                 Insert DummyTrans VALUES ('Fill Log')
                 Delete DummyTrans
                 Select @Counter = @Counter + 1
               END
             EXEC (@TruncLog)
           END
        Select 'Final Size of ' + db_name() + ' LOG is ' +
                 CONVERT(VARCHAR(30),size) + ' 8K pages or ' +
                 CONVERT(VARCHAR(30),(size*8/1024)) + 'MB'
         FROM sysfiles
         Where name = @LogicalFileName
        Drop TABLE DummyTrans
        SET NOCOUNT OFF
    
        8、说明:更改某个表
        exec sp_changeobjectowner 'tablename','dbo'
    
        9、存储更改全部表
    
        Create PROCEDURE dbo.User_ChangeObjectOwnerBatch
        @OldOwner as NVARCHAR(128),
        @NewOwner as NVARCHAR(128)
        AS
    
        DECLARE @Name   as NVARCHAR(128)
        DECLARE @Owner   as NVARCHAR(128)
        DECLARE @OwnerName   as NVARCHAR(128)
    
        DECLARE curObject CURSOR FOR
        select 'Name'   = name,
           'Owner'   = user_name(uid)
        from sysobjects
        where user_name(uid)=@OldOwner
        order by name
    
        OPEN   curObject
        FETCH NEXT FROM curObject INTO @Name, @Owner
        WHILE(@@FETCH_STATUS=0)
        BEGIN
        if @Owner=@OldOwner
        begin
           set @OwnerName = @OldOwner + '.' + rtrim(@Name)
           exec sp_changeobjectowner @OwnerName, @NewOwner
        end
        -- select @name,@NewOwner,@OldOwner
    
        FETCH NEXT FROM curObject INTO @Name, @Owner
        END
    
        close curObject
        deallocate curObject
        GO
    
    
        10SQL SERVER中直接循环写入数据
        declare @i int
        set @i=1
        while @i<30
        begin
           insert into test (userid) values(@i)
           set @i=@i+1
        end 
    
    
    转载:https://blog.csdn.net/guocuifang655/article/details/3988515
    
    展开全文
  • 知识点:使用SQL语句创建完整版数据库、使用SQL语句创建表、数据库表创建好以后新增加字段、修改字段、删除字段的方法。删除数据库表和数据库的方法。 需要掌握的知识: SQL Server数据库第一课:常用数据库介绍、...

    知识点:使用SQL语句创建完整版数据库、使用SQL语句创建表、数据库表创建好以后新增加字段、修改字段、删除字段的方法。删除数据库表和数据库的方法。

    需要掌握的知识:

    SQL Server数据库第一课:常用数据库介绍、数据库基本概念了解、登录SQL Server数据库的方法

    SQL Server数据库第二课:创建数据库表、完善数据库表的设计、建立数据库表之间的关系

    SQL Server数据库第三课2:使用create语句新建数据库、数据库表

    部分英语单词代表的意思:

    database:数据库 table:表 column:列 create:创建 use:使用
    primary:主要的 unique:唯一的
    展开全文
  • 程序中,你跟数据的交互,需要向数据库拿数据更改数据库数据等,这些操作,本身不是程序完成的,而是程序发命令给数据库去做的,不管是通过sql语句方式,还是存储过程方式,都是让数据库去做。在程序中,你如果...
  • 如果要删除数据表中所有数据只要遍历一下数据库再删除就可以了,清除所有数据我们可以使用搜索出所有表名,构造为一条SQL语句进行清除了,这里我一一给各位同学介绍。 使用sql删除数据库中所有表是不难的,...
  • 01 前言Python链接数据库的方式有几种,但是原理都是一样的,总共可以分为两个步骤,第一步是与数据库建立链接,第二步执行sql查询语句,这篇将分别介绍如何与数据库链接...
  • ADO+MFC数据库编程常用语句

    千次阅读 2014-06-30 16:32:12
    //用这种方法添加数据就必须用open 语句执行SQL语句 m_pRecordset->PutCollect("name", _variant_t(m_Name)); m_pRecordset->PutCollect("age", atol(m_Age)); m_pRecordset->Update(); m_pRecordset->...
  • 1.sql语句中的单行注释 2.多行注释 3. 新建数据库 4.删除数据库 5. 创建表 6.MySQL 删除数据表 7.MySQL 插入数据 8.MySQL 查询数据 9.MySQL UPDATE 更新记录 10.MySQL DELETE 语句删除记录 11.MySQL LIKE 模糊查询 ...
  • 数据库数据整合

    千次阅读 2019-02-28 13:39:41
    系统开发一段时间上线之后,由于功能业务复杂,数据量较大,为了监控也是运维一部分,需要对数据库数据进行检查,整合。一般会对一些关键数据进行定期检查,对于库存之类的,基本是每天都需要检查整合。每天可以...
  • 开发工具与关键技术:SQL数据库 SQL数据库基础 作者:何钦波 撰写时间:2019/ 6 / 28 SQL数据库基础编程和语句 一、SQL DML 和 DDL 可以把 SQL 分为两个部分:数据操作语言 (DML) 和 数据定义语言 (DDL)。 SQL ...
  • 用SQL语句更新就没问题,用SqlCommandBuilder更新只有DataGridView控件更新了而数据库里面并没有更新,然后发现是这个原因。 SqlConnection con; SqlDataAdapter da; DataSet ds; DataTable dt;
  • Oracle数据库数据高速缓存技术

    千次阅读 2018-08-28 16:54:58
    01.Oracle数据库数据高速缓存技术的实现原理 一、 空闲缓存块。 二、 命中缓存块。 三、 脏缓存块。 02.Oracle数据库进行优化建议: 1、为Oracle数据库配置尽量大的内存。 2、在对数据进行查询操作时,尽量...
  • 数据库基本_SQL语句大全

    万次阅读 多人点赞 2017-05-23 14:27:45
    mysql教程 ■ 在DOS命令行启动MYSQL服务: net start mysql ■在DOS命令行停止MYSQL服务: net stop mysql ■查看被监听的端口: ...■创建数据库用户:只有根用户(root)才有创建新用户的权限 CREATE USER u
  • Python批量操作文件写入数据库及从数据库数据

    万次阅读 多人点赞 2020-07-20 12:55:23
    博主工作长期需使用到数据库查询数据,因而接触到了数据库的一些皮毛知识。但是数据库和办公网不能互通,远端访问也没法实现,所以长期以来查询数据都相当麻烦。近期博主在自己的工作电脑上搭建了一个的MySQL数据库...
  • 如果不懂sql的基本使用的话,先看一下本人...数据库的增删查改有两种方式,一种是直接通过db对象调用相应的增删查改方法,另一种就是使用语句进行增删查改,下边我简单的将一些常用的语句核心发给大家: 其中查询语句
  • SQLite数据库存储数据

    千次阅读 2016-10-26 20:53:28
    SQLite数据库,SQLite存储数据
  • 用OleDb的方式向Access数据里写数据,示例源码如下: string sql="select * from MultiTable"; OleDbDataAdapter oleSub=new OleDbDataAdapter(sql,oleCn); OleDbCommandBuilder cb1=new OleDbCommandBuilder...
  • Qt实用技巧:使用QTableView、QSqlTableMode与QSqlDatabase对数据库数据进行操作 需求 编写应用软件的过程中,需要对保存的数据进行动态的设置,当程序运行的时查询数据库获取相关配置项进行设置。 原理 使用将...
  • ABAP数据库 更新数据

    2018-11-07 14:00:25
    ABAP数据库 更新数据
  • 为什么使用数据库数据库工作流程什么是数据库管理系统开发常见数据库管理系统关系型数据库非关系型数据库nosql数据库数据库的结构化查询语言(sql)编写sql 语句的一个规范:数据库中的数据类型:连接数据库 :sql 分为...
  • 使用JDBC修改数据库中的数据,其操作方法是和添加数据差不多的,只不过在修改数据的时候还要用到UPDATE语句来实现的,例如:把图书信息id为1的图书数量改为100,其sql语句是:update book set bookCount=100 where ...
  • 这几天学习公司系统的数据流向。主要涉及到几个表的数据。但是表中的数据有上百万条,所以如果出现sql语句没有带...公司用到的数据库是sqlserver,所以下列的sql语句主要是针对sqlserver数据库的,其他数据库大同小异。
  • 在MySQL数据库中使用C执行SQL语句

    千次阅读 2006-08-20 19:35:00
    从下列章节中,Neil Matthew和Richard Stones使用详尽的MySQL C接口向我们介绍了如何在MySQL数据库中执行SQL语句。他们将讨论返回数据语句,例如INSERT以及不返回数据语句,例如UPDATE和 DELETE。然后,他们将...
  • 开发工具和关键技术:SQL Server 2014,SQL DDL语句 作者:金建勇 撰写时间:2019年6月13日 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 说到数据库大家肯定也都不陌生,因为学编程首先要掌握的就是...
  • 在 MySQL 数据库中使用 C 执行 SQL 语句Professional Linux Programming 的摘录 Neil Matthew 和 Richard StonesWrox Press Ltd2001 年 1 月内容:执行 SQL 语句不返回数据的 SQL 语句返回数据语句全部立即数据...
  • Oracle数据库数据操作和控制语言详解 SQL语言共分为四大类:数据查询语言DQL,数据操纵语言DML, 数据定义语言DDL,数据控制语言DCL。其中用于定义数据的结构,比如 创建、修改或者删除数据库;DCL用于定义数据库...
  • 在 MySQL 数据库中使用 C 执行 SQL语句内容:执行 SQL 语句不返回数据的 SQL 语句返回数据语句全部立即数据检索的函数mysql_fetch_rowmysql_fetch_rowmysql_data_seekmy_sql_row_tell, mysql_row_seekmysql_free_...
  • 数据库基本概念整理及常用SQL语句

    千次阅读 多人点赞 2017-08-10 21:13:19
    数据库也是计算机类笔试面试中不可避免会遇到的考点,尤其是银行和部分传统软件类公司。这里根据整理的资料,对数据库的相关知识也做个总结... Data:数据,是数据库中存储的基本对象,是描述事物的符号记录。  2. Da

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 114,458
精华内容 45,783
关键字:

修改数据库数据的关键语句