Sql50个常用语句
PGSQL基础语句汇总

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 约束⽤于规定表中的数据规则。
sql主键语句

sql主键语句SQL主键语句是数据库中非常重要的一部分,它可以保证数据的唯一性和完整性。
在数据库设计中,主键是一个非常重要的概念,它可以用来唯一标识一条记录。
在本文中,我们将列举出10个常用的SQL主键语句,以帮助读者更好地理解和应用主键。
1. 创建主键在创建表的时候,可以使用PRIMARY KEY关键字来定义主键。
例如:CREATE TABLE students (id INT PRIMARY KEY,name VARCHAR(50),age INT);在上面的例子中,我们定义了一个名为students的表,其中id列被定义为主键。
2. 修改主键如果需要修改主键,可以使用ALTER TABLE语句。
例如:ALTER TABLE studentsDROP PRIMARY KEY,ADD PRIMARY KEY (id, name);在上面的例子中,我们将原来的主键删除,并重新定义了一个由id 和name两列组成的主键。
3. 删除主键如果需要删除主键,可以使用ALTER TABLE语句。
例如:ALTER TABLE studentsDROP PRIMARY KEY;在上面的例子中,我们删除了名为students的表的主键。
4. 复合主键复合主键是由多个列组成的主键。
例如:CREATE TABLE orders (order_id INT,customer_id INT,order_date DATE,PRIMARY KEY (order_id, customer_id));在上面的例子中,我们定义了一个名为orders的表,其中order_id和customer_id两列组成了复合主键。
5. 自增主键自增主键是一种特殊的主键,它可以自动递增。
例如:CREATE TABLE students (id INT AUTO_INCREMENT PRIMARY KEY,name VARCHAR(50),age INT);在上面的例子中,我们定义了一个名为students的表,其中id列被定义为自增主键。
sqlserver alwayson 常用sql语句

sqlserver alwayson 常用sql语句SQL Server AlwaysOn是SQL Server的一个高可用性解决方案,它提供了数据冗余和故障转移功能。
SQL Server AlwaysOn常用的SQL语句有:1、查询某个表的字段名称、类型、长度:SELECT AS fieldname, AS typename, b.length AS fieldlen FROM sysobjects a, syscolumns b, systypes cWHERE a.id = b.id AND b.xtype = c.xtype AND = '表名'ORDER BY b.colid;2、查询出所有的库名:SELECT * FROM master.dbo.sysdatabases WHERE name LIKE 'aa';3、查看实例级别的某个参数XX的配置select * from sys.configurations where name='XX'4、没有系统表可以查询所有数据库下面对象,以下只能在当前数据库下面查select * from sys.all_objects --查询当前数据库的所有架构范围的对象select * from sys.sysobjects --查询当前数据库的所有对象--sys.all_objects、sys.sysobjects 这种视图在每个数据库的系统视图下面都有select * from sys.databases --在当前数据库下可以查询到所有数据库信息,包含是否on状态select * from sys.sysdatabases --在当前数据库下可以查询到所有数据库信息,不包含是否on状态,这个系统视图会在后续的版本中删除sys.databases、sys.sysdatabases这种的视图,在每个数据库的系统视图下面都有sys.processes --没有这个视图select * from sys.sysprocesses --在当前数据库下可以查询所有正在SQL Server 实例上运行的进程的相关信息,也就是所有数据库上的线程,这个系统视图会在后续的版本中删除5、查看某个存储过程的内容sp_helptext pro_name6、显示某个线程号发送到sqlserver数据库的最后一个语句DBCC INPUTBUFFER7、查看某个数据库中是否存在活动事务,有活动事务就一定会写日志DBCC OPENTRAN (dbname)8、监视日志空间DBCC SQLPERF (LOGSPACE)。
海豚调度sql查询语句

海豚调度sql查询语句海豚调度是一种常用的数据库管理工具,用于执行SQL查询语句以获取所需的数据。
本文将介绍一些常见的SQL查询语句,以帮助读者更好地使用海豚调度进行数据库查询。
一、SELECT语句SELECT语句是SQL中最常用的查询语句,用于从数据库中获取数据。
格式如下:SELECT column1, column2, ...FROM table_nameWHERE condition;其中,column1, column2表示要查询的表中的列名,table_name表示要查询的表名,condition是查询条件,可选。
例如,要查询学生表(student)中所有学生的姓名和年龄,可以使用以下SELECT语句:SELECT name, ageFROM student;二、WHERE子句WHERE子句用于指定查询条件,过滤出满足条件的数据。
常见的WHERE子句操作符有以下几种:1.等于操作符(=):用于判断两个值是否相等。
例如,要查询年龄为18岁的学生可以使用以下查询语句:SELECT nameFROM studentWHERE age = 18;2.大于操作符(>):用于判断一个值是否大于另一个值。
例如,要查询成绩大于80分的学生可以使用以下查询语句:SELECT nameFROM studentWHERE score > 80;3.小于操作符(<):用于判断一个值是否小于另一个值。
例如,要查询年龄小于20岁的学生可以使用以下查询语句:SELECT nameFROM studentWHERE age < 20;4.组合操作符(AND、OR):用于结合多个条件进行查询。
例如,要查询年龄在18到20之间的学生可以使用以下查询语句:SELECT nameFROM studentWHERE age >= 18 AND age <= 20;三、ORDER BY子句ORDER BY子句用于对查询结果进行排序,可以按照某一列的升序或降序排列。
(完整word版)SQL常用的增删改查语句、视屏笔记

SQL:结构化查询语言,是国际化标准组织采纳的标准数据库语言作用:数据库管理员可以用利用次语言操作数据库系统,即:SQL是一种能够被数据库系统读懂的操作语言。
T—SQL是微软公司针对SQL Server这种关系数据库所定义的一种SQL语言,用户可以完成Server数据库中的所有操作。
SQL的分类:(1):数据定义语言,DDL用来创建数据库和数据库中的各种对象数据库中的对象包括:表、视图、索引、存储过程、触发器DDL常用的命令包括:create、alter、drop(2):数据操纵语言,DML可以完成对数据库中数据的查询、更新、删除、插入的功能DML常用的命令包括:select、update、delete、insert(3)数据控制语言,DCLDCL常用的命令包括:grant、revoke、deny(4)数据类型1、数字数据类型a、整型数据类型:bigint、int、smallint、tinyintb、浮点数据类型:float、realc、固定精度数据类型:decimal、numericd、货币数据类型:money、smallmoney将数据格式转换成字符串方法:STR(ID);---ID为数据类型,STR(ID)为字符串2、字符数据类型:varchar、char、text、nchar、nvarchar、ntext区别char和varchar数据类型:char数据类型是存放固定长度的字符Varchar数据类型是存放动态长度的字符char(14),实际放入到数据库的字符长度为14个字符,如果实际存储的长度小于定义的长度,那么数据库会在次字符串后面加上3个空格1、insert语句:insert语句是属于SQL语言中的DML作用:为表插入数据你向一个表中插入一条新记录,但有一个字段没有提供数据。
在这种情况下,有下面的四种可能:1、如果该字段有一个缺省值(默认值),该值会被使用。
2、如果该字段可以接受空值,而且没有缺省值,则会被插入空值。
用友U8维护人员数据库管理常用的SQL语句

⽤友U8维护⼈员数据库管理常⽤的SQL语句本⽂提供了维护时数据库管理中的常⽤SQL语句,供⼤家交流学习。
⼀、查看数据库启动时间select convert(varchar(30),login_time,120) from master..sysprocesses where spid=1 /*查看数据库服务器名和实例名 */print Server Name.........: + convert(varchar(30),@@SERVERNAME)print Instance............: + convert(varchar(30),@@SERVICENAME)⼆、查看所有数据库名称及⼤⼩sp_helpdb /*查看某个特定数据库的名称及⼤⼩及存储位置*/exec sp_helpdb UFDATA_002_2008 /*重命名数据库⽤的SQL */sp_renamedb old_dbname , new_dbname三、查看数据库的版本select @@version四、查看数据库所在机器操作系统参数exec master..xp_msver五、查看数据库启动的参数sp_configure六、查看所有数据库⽤户登录信息sp_helplogins /*查看所有数据库⽤户所属的⾓⾊信息 */sp_helpsrvrolemember /*修复迁移服务器时孤⽴⽤户时,可以⽤的fix_orphan_user脚本或者LoneUser过程 *//*更改某个数据对象的⽤户属主*/sp_changeobjectowner [@objectname =] object , [@newowner =] owner /*注意: 更改对象名的任⼀部分都可能破坏脚本和存储过程。
把⼀台服务器上的数据库⽤户登录信息备份出来可以⽤add_login_to_aserver脚本 */七、查看链接服务器sp_helplinkedsrvlogin /*查看远端数据库⽤户登录信息 */sp_helpremotelogin⼋、查看某数据库下某个数据对象的⼤⼩sp_spaceused @objname /*还可以⽤sp_toptables过程看最⼤的N(默认为50)个表 *//*查看某数据库下某个数据对象的索引信息 */sp_helpindex @objname/*还可以⽤SP_NChelpindex过程查看更详细的索引情况 */SP_NChelpindex @objname /*clustered索引是把记录按物理顺序排列的,索引占的空间⽐较少。
sql创建表语句
sql创建表语句篇一:常用的sql建表语句新建表:create table [表名]([自动编号字段] int IDENTITY (1,1) PRIMARY KEY ,[字段1] nVarChar(50) default \'默认值\' null ,[字段2] ntext null ,[字段3] datetime,[字段4] money null ,[字段5] int default 0,[字段6] Decimal (12,4) default 0,[字段7] image null ,)删除表:Drop table [表名]插入数据:INSERT INTO [表名] (字段1,字段2) VALUES (100,\'\') 删除数据:DELETE FROM [表名] WHERE [字段名]>100更新数据:UPDATE [表名] SET [字段1] = 200,[字段2] = \'\' WHERE[字段三] = \'HAIWA\'新增字段:ALTER TABLE [表名] ADD [字段名] NVARCHAR (50) NULL删除字段:ALTER TABLE [表名] DROP COLUMN [字段名]修改字段:ALTER TABLE [表名] ALTER COLUMN [字段名] NVARCHAR (50) NULL 重命名表:(Access 重命名表,请参考文章:在Access数据库中重命名表) sp_rename \'表名\', \'新表名\', \'OBJECT\'新建约束:ALTER TABLE [表名] ADD CONSTRAINT 约束名CHECK ([约束字段] <= \'2000-1-1\') 删除约束:ALTER TABLE [表名] DROP CONSTRAINT 约束名新建默认值ALTER TABLE [表名] ADD CONSTRAINT 默认值名DEFAULT\'\' FOR [字段名]删除默认值ALTER TABLE [表名] DROP CONSTRAINT 默认值名删除Sql Server 中的日志,减小数据库文件大小dump transaction 数据库名with no_logbackup log 数据库名with no_logdbcc shrinkdatabase(数据库名)exec sp_dboption \'数据库名\', \'autoshrink\', \'true\'\\\'添加字段通用函数Sub AddColumn(TableName,ColumnName,ColumnType)Conn.Execute(\Alter Table \&TableName&\ Add \&ColumnName&\ \&ColumnType&\\)End Sub\\\'更改字段通用函数Sub ModColumn(TableName,ColumnName,ColumnType)Conn.Execute(\Alter Table \&TableName&\ Alter Column\&ColumnName&\ \&ColumnType&\\) End Sub\\\'检查表是否存在sql=\select count(*) as dida from sysobjects where id = object_id(N\'[所有者].[表名]\') and OBJECTPROPERTY(id, N\'IsUserTable\') = 1\set rs=conn.execute(sql)response.write rs(\dida\)\'返回一个数值,0代表没有,1代表存在判断表的存在:select * from sysobjects where id = object_id(N\'[dbo].[tablename]\') and OBJECTPROPERTY(id, N\'IsUserTable\') = 1 某个表的结构select * from syscolumns where id = object_id(N\'[dbo].[你的表名]\') and OBJECTPROPERTY(id, N\'IsUserTable\') = 1篇二:数据库建表操作SQL语句大全新建表:create table [表名]([自动编号字段] int IDENTITY (1,1) PRIMARY KEY ,[字段1] nVarChar(50) default '默认值' null ,[字段2] ntext null ,[字段3] datetime,[字段4] money null ,[字段5] int default 0,[字段6] Decimal (12,4) default 0,[字段7] image null ,)删除表:Drop table [表名]插入数据:INSERT INTO [表名] (字段1,字段2) VALUES (100,'')删除数据:DELETE FROM [表名] WHERE [字段名]>100更新数据:UPDATE [表名] SET [字段1] = 200,[字段2] = '' WHERE [字段三] = 'HAIWA'新增字段:ALTER TABLE [表名] ADD [字段名] NVARCHAR (50) NULL删除字段:ALTER TABLE [表名] DROP COLUMN [字段名]修改字段:ALTER TABLE [表名] ALTER COLUMN [字段名] NVARCHAR (50) NULL重命名表:(Access 重命名表,请参考文章:在Access 数据库中重命名表)sp_rename '表名', '新表名', 'OBJECT'新建约束:ALTER TABLE [表名] ADD CONSTRAINT 约束名CHECK ([约束字段] <= '2000-1-1')删除约束:ALTER TABLE [表名] DROP CONSTRAINT 约束名新建默认值ALTER TABLE [表名] ADD CONSTRAINT 默认值名DEFAUL T '' FOR [字段名] 删除默认值ALTER TABLE [表名] DROP CONSTRAINT 默认值名删除sql server 中的日志,减小数据库文件大小dump transaction 数据库名with no_logbackup log 数据库名with no_logdbcc shrinkdatabase(数据库名)exec sp_dboption '数据库名', 'autoshrink', 'true'\'添加字段通用函数Sub AddColumn(TableName,ColumnName,ColumnType)Conn.Execute(Alter Table &TableName& Add &ColumnName& &ColumnType&) End Sub\'更改字段通用函数Sub ModColumn(TableName,ColumnName,ColumnType)Conn.Execute(Alter Table &TableName& Alter Column &ColumnName& &ColumnType&) End Sub\'检查表是否存在sql=select count(*) as dida from sysobjects where id = object_id(N'[所有者].[表名]') and OBJECTPROPERTY(id, N'IsUserTable') = 1 set rs=conn.execute(sql)response.write rs(dida)'返回一个数值,0代表没有,1代表存在判断表的存在:select * from sysobjects where id = object_id(N'[dbo].[tablename]') and OBJECTPROPERTY(id, N'IsUserTable') = 1 某个表的结构select * from syscolumns where id = object_id(N'[dbo].[你的表名]') and OBJECTPROPERTY(id, N'IsUserTable') = 1篇三:SQL语句创建学生信息数据库表的示例用SQL语句创建如下三个基本表:学生表(Student)、课程表(Course)、学生选课表(SC),结构如下所示Student表结构Create table Student ()Course表结构Create table course ()SC表结构Cno varchar(10) primary key, Cname varchar(20) not null, Ccredit int check(Sctedit>0), Semester int check(Semester>0), Period int check(Period>0)Sno varchar(7) primary key, Sname varchar(10) not null,Ssex char (2) check(Ssex=‘男’or Ssex=’女’), Sage int check(Sage between 15 and 45), Sdept varchar(20) default(‘计算机系’)Create table SC ( )Sno varchar(7) foreign key references student(Sno), Cno varchar(10) foreign key references course(Cno), Grade intcheck(Grade between 0 and 100), Primary key (Sno,Cno)1.查询学生选课表中的全部数据。
Sqlite常用sql语句
Sqlite常⽤sql语句sqlite常⽤sql语句--返回UTC时间select CURRENT_TIMESTAMP;--返回本地时间select datetime(CURRENT_TIMESTAMP,'localtime');--时间转换,时间转换时要求: yyyy-MM-dd,例如: 2008-08-09SELECT datetime('2008-12-22') AS [My Time];SELECT datetime('2008-12-22') AS "My Time";--必须为双引号SELECT date('now', 'localtime');--返回本地⽇期SELECT time('now', 'localtime');--返回本地当前时间select CURRENT_TIME;--返回当前UTC时间select CURRENT_DATE;--返回当前UTC⽇期select julianday('2008-12-22') - julianday('2008-12-21');--⽇期⽐较--Compute the current date.SELECT date('now');--Compute the last day of the current month.SELECT date('now','start of month','+1 month','-1 day');--Compute the date and time given a unix timestamp 1092941466.SELECT datetime(1092941466, 'unixepoch');--Compute the date and time given a unix timestamp 1092941466, and compensate for your local timezone. SELECT datetime(1092941466, 'unixepoch', 'localtime');--Compute the current unix timestamp.SELECT strftime('%s','now');--Compute the number of days since the signing of the US Declaration of Independent.SELECT julianday('now') - julianday('1776-07-04');--Compute the number of seconds since a particular moment in 2004:SELECT strftime('%s','now') - strftime('%s','2004-01-01 02:34:56');--Compute the date of the first Tuesday in October for the current year.SELECT date('now','start of year','+9 months','weekday 2');--Compute the time since the unix epoch in seconds (like strftime('%s','now') except includes fractional part): SELECT (julianday('now') - 2440587.5)*86400.0;Select rowid,* From keys order by rowid asc Limit 5 Offset 5 ;--SQLite分页显⽰,表⽰跳过5⾏,再取5⾏,即第⼆页。
渗透常用SQL注入语句大全
渗透常用S Q L注入语句大全Prepared on 22 November 20201.判断有无注入点 ;and1=1and1=22.猜表一般的表的名称无非是adminadminuseruserpasspassword 等.. and0<>(selectcount(*)from*)and0<>(selectcount(*)fromadmin)—判断是否存在admin 这张表3.猜帐号数目如果遇到0<返回正确页面1<返回错误页面说明帐号数目就是1个 and0<(selectcount(*)fromadmin)and1<(selectcount(*)fromadmin)4.猜解字段名称在len()括号里面加上我们想到的字段名称.1 2 3 and 1=(selectcount(*)fromadminwherelen(*)>0)–and 1=(selectcount(*)fromadminwherelen(用户字段名称name)>0) and 1=(selectcount(*)fromadminwherelen(_blank>密码字段名称password)>0)5.猜解各个字段的长度猜解长度就是把>0变换直到返回正确页面为止1 2 3 4 5 6 78 and 1=(selectcount(*)fromadminwherelen(*)>0)and 1=(selectcount(*)fromadminwherelen(name)>6)错误 and 1=(selectcount(*)fromadminwherelen(name)>5)正确长度是6 and 1=(selectcount(*)fromadminwherelen(name)=6)正确 and 1=(selectcount(*)fromadminwherelen(password)>11)正确 and 1=(selectcount(*)fromadminwherelen(password)>12)错误长度是12 and 1=(selectcount(*)fromadminwherelen(password)=12)正确6.猜解字符and1=(selectcount(*)fromadminwhereleft(name,1)=a)—猜解用户帐号的第一位 and1=(selectcount(*)fromadminwhereleft(name,2)=ab)—猜解用户帐号的第二位 就这样一次加一个字符这样猜,猜到够你刚才猜出来的多少位了就对了,帐号就算出来了 and1=(selecttop1count(*)fromAdminwhereAsc(mid(pass,5,1))=51)–这个查询语句可以猜解中文的用户和_blank>密码.只要把后面的数字换成中文的ASSIC 码就OK.最后把结果再转换成字符.1 2 3 4 =1,,,=1–;insertintousersvalues(666,attacker,foobar,0xffff )–UNIONSelectTOP 1COLUMN_blank>_NAMEFROMINFORMATION_blank>>_NAME=logintab5 6 7 8 9 le-UNIONSelectTOP 1COLUMN_blank>_NAMEFROMINFORMATION_blank>>_NAME=logintab leWhereCOLUMN_blank>_NAMENOTIN(login_blank>_id)-UNIONSelectTOP 1COLUMN_blank>_NAMEFROMINFORMATION_blank>>_NAME=logintab leWhereCOLUMN_blank>_NAMENOTIN(login_blank>_id,login_blank>_name)- UNIONSelectTOP 1login_blank>_nameFROMlogintable-UNIONSelectTOP 1passwordFROMlogintablewherelogin_blank>_name=Rahul – 看_blank>服务器打的补丁=出错了打了SP4补丁 and1=(select@@VERSION)–看_blank>数据库连接账号的权限,返回正常,证明是_blank>服务器角色sysadmin 权限。
用友erp常用SQL语句
--查询用友版本号use ufsystemgoselect * from UA_Versiongo----------------------------------------------------------------- --查看系统用户信息表use ufsystemselect cUser_Id as操作员编码cUser_Name as操作员名称nState as是否停用iAdmin as是否帐套主管理cDept as所属部门cBelongGrp as所在组nState as是否停用from UA_User--查看具有帐套主管身份的操作员select cUser_Id as操作员编码cUser_Name as操作员名称from UA_User where iAdmin=1;--查看被停用的操作员select cUser_Id as操作员编码cUser_Name as操作员名称from UA_User where nState=1;--帐套主子表相关信息use ufsystem--帐套主表selectcAcc_Id as账套号cAcc_Name as账套名称cAcc_Path as账套路径iYear as启用会计期年iMonth as启用会计期月cAcc_Master as账套主管cCurCode as本币代码cCurName as本币名称cUnitName as单位名称cUnitAbbre as单位简称cUnitAddr as单位地址cUnitZap as 邮政编码cUnitTel as 联系电话cUnitFax as 传真cUnitEMail as 电子邮件cUnitTaxNo as 税号cUnitLP as 法人cEntType as 企业类型cTradeKind as 行业类型cIsCompanyVer as 是否集团版cDomain as 域名cDescxription as备注cOrgCode as机构编码iSysID as账套内部标识from ua_account--帐套子表select cAcc_Id as账套号iYear as账套年度cSub_Id as模块标识bIsDelete as是否删除bClosing as是否关闭iModiPeri as会计期间dSubSysUsed as启用会计日期cUser_Id as操作员dSubOriDate as启用自然日期from ua_account_sub--当客户的数据在其它机器上做的升级然后拷回到原机器/*拷回的数据,通过‘系统管理’在原机器上引入后,并不会在ufsystem数据库中的ua_account_sub这个帐套子表中回写上一年度的bClosing字段来关闭上一年度*/--比如002帐套结转后年度为2010则用于关闭上一(2009)年度的sql如下:select * from ua_account_sub where cAcc_Id='002' and iYear=2008 update ua_account_sub set bclosing=0where cAcc_Id='002' and iYear=2008-------------------------------------------------------------------清除异常任务及单据锁定use ufsystemdelete from ua_taskdelete from ua_taskloggodelete from ufsystem..ua_taskdelete from ufsystem..ua_taskloggoSelect *From ua_taskWhere(cacc_id='***') --注:(***为账套号)--科目锁定的解决/*XX科目已经被用户[XX]锁定”或“科目(xxxxxx)正在被机器(xxxx)上的用户(xxx)进行(xxxx)操作锁定请稍候再试”。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Sql50个常用语句 Student(S#,Sname,Sage,Ssex) 学生表 Course(C#,Cname,T#) 课程表 SC(S#,C#,score) 成绩表 Teacher(T#,Tname) 教师表
问题: 1、查询“001”课程比“002”课程成绩高的所有学生的学号; select a.S# from (select s#,score from SC where C#='001') a,(select s#,score from SC where C#='002') b where a.score>b.score and a.s#=b.s#; 2、查询平均成绩大于60分的同学的学号和平均成绩; select S#,avg(score) from sc group by S# having avg(score) >60; 3、查询所有同学的学号、姓名、选课数、总成绩; select Student.S#,Student.Sname,count(SC.C#),sum(score) from Student left Outer join SC on Student.S#=SC.S# group by Student.S#,Sname 4、查询姓“李”的老师的个数; select count(distinct(Tname)) from Teacher where Tname like '李%'; 5、查询没学过“叶平”老师课的同学的学号、姓名; select Student.S#,Student.Sname from Student where S# not in (select distinct( SC.S#) from SC,Course,Teacher where SC.C#=Course.C# and Teacher.T#=Course.T# and Teacher.Tname='叶平'); 6、查询学过“001”并且也学过编号“002”课程的同学的学号、姓名; select Student.S#,Student.Sname from Student,SC where Student.S#=SC.S# and SC.C#='001'and exists( Select * from SC as SC_2 where SC_2.S#=SC.S# and SC_2.C#='002'); 7、查询学过“叶平”老师所教的所有课的同学的学号、姓名; select S#,Sname from Student where S# in (select S# from SC ,Course ,Teacher where SC.C#=Course.C# and Teacher.T#=Course.T# and Teacher.Tname='叶平' group by S# having count(SC.C#)=(select count(C#) from Course,Teacher where Teacher.T#=Course.T# and Tname='叶平')); 8、查询课程编号“002”的成绩比课程编号“001”课程低的所有同学的学号、姓名; Select S#,Sname from (select Student.S#,Student.Sname,score ,(select score from SC SC_2 where SC_2.S#=Student.S# and SC_2.C#='002') score2 from Student,SC where Student.S#=SC.S# and C#='001') S_2 where score2 9、查询所有课程成绩小于60分的同学的学号、姓名; select S#,Sname from Student where S# not in (select Student.S# from Student,SC where S.S#=SC.S# and score>60); 10、查询没有学全所有课的同学的学号、姓名; select Student.S#,Student.Sname from Student,SC where Student.S#=SC.S# group by Student.S#,Student.Sname having count(C#) <(select count(C#) from Course); 11、查询至少有一门课与学号为“1001”的同学所学相同的同学的学号和姓名; select S#,Sname from Student,SC where Student.S#=SC.S# and C# in select C# from SC where S#='1001'; 12、查询至少学过学号为“001”同学所有一门课的其他同学学号和姓名; select distinct SC.S#,Sname from Student,SC where Student.S#=SC.S# and C# in (select C# from SC where S#='001'); 13、把“SC”表中“叶平”老师教的课的成绩都更改为此课程的平均成绩; update SC set score=(select avg(SC_2.score) from SC SC_2 where SC_2.C#=SC.C# ) from Course,Teacher where Course.C#=SC.C# and Course.T#=Teacher.T# and Teacher.Tname='叶平'); 14、查询和“1002”号的同学学习的课程完全相同的其他同学学号和姓名; select S# from SC where C# in (select C# from SC where S#='1002') group by S# having count(*)=(select count(*) from SC where S#='1002'); 15、删除学习“叶平”老师课的SC表记录; Delect SC from course ,Teacher where Course.C#=SC.C# and Course.T#= Teacher.T# and Tname='叶平'; 16、向SC表中插入一些记录,这些记录要求符合以下条件:没有上过编号“003”课程的同学学号、2、 号课的平均成绩; Insert SC select S#,'002',(Select avg(score) from SC where C#='002') from Student where S# not in (Select S# from SC where C#='002'); 17、按平均成绩从高到低显示所有学生的“数据库”、“企业管理”、“英语”三门的课程成绩,按如下形式显示: 学生ID,,数据库,企业管理,英语,有效课程数,有效平均分 SELECT S# as 学生ID ,(SELECT score FROM SC WHERE SC.S#=t.S# AND C#='004') AS 数据库 ,(SELECT score FROM SC WHERE SC.S#=t.S# AND C#='001') AS 企业管理 ,(SELECT score FROM SC WHERE SC.S#=t.S# AND C#='006') AS 英语 ,COUNT(*) AS 有效课程数, AVG(t.score) AS 平均成绩 FROM SC AS t GROUP BY S# ORDER BY avg(t.score) 18、查询各科成绩最高和最低的分:以如下形式显示:课程ID,最高分,最低分 SELECT L.C# As 课程ID,L.score AS 最高分,R.score AS 最低分 FROM SC L ,SC AS R WHERE L.C# = R.C# and L.score = (SELECT MAX(IL.score) FROM SC AS IL,Student AS IM WHERE L.C# = IL.C# and IM.S#=IL.S# GROUP BY IL.C#) AND R.Score = (SELECT MIN(IR.score) FROM SC AS IR WHERE R.C# = IR.C# GROUP BY IR.C# ); 19、按各科平均成绩从低到高和及格率的百分数从高到低顺序 SELECT t.C# AS 课程号,max(course.Cname)AS 课程名,isnull(AVG(score),0) AS 平均成绩 ,100 * SUM(CASE WHEN isnull(score,0)>=60 THEN 1 ELSE 0 END)/COUNT(*) AS 及格百分数 FROM SC T,Course where t.C#=course.C# GROUP BY t.C# ORDER BY 100 * SUM(CASE WHEN isnull(score,0)>=60 THEN 1 ELSE 0 END)/COUNT(*) DESC 20、查询如下课程平均成绩和及格率的百分数(用"1行"显示): 企业管理(001),马克思(002),OO&UML (003),数据库(004) SELECT SUM(CASE WHEN C# ='001' THEN score ELSE 0 END)/SUM(CASE C# WHEN '001' THEN 1 ELSE 0 END) AS 企业管理平均分 ,100 * SUM(CASE WHEN C# = '001' AND score >= 60 THEN 1 ELSE 0 END)/SUM(CASE WHEN C# = '001' THEN 1 ELSE 0 END) AS 企业管理及格百分数 ,SUM(CASE WHEN C# = '002' THEN score ELSE 0 END)/SUM(CASE C# WHEN '002' THEN 1 ELSE 0 END) AS 马克思平均分 ,100 * SUM(CASE WHEN C# = '002' AND score >= 60 THEN 1 ELSE 0 END)/SUM(CASE WHEN C# = '002' THEN 1 ELSE 0 END) AS 马克思及格百分数 ,SUM(CASE WHEN C# = '003' THEN score ELSE 0 END)/SUM(CASE C# WHEN '003' THEN 1 ELSE 0 END) AS UML平均分 ,100 * SUM(CASE WHEN C# = '003' AND score >= 60 THEN 1 ELSE 0 END)/SUM(CASE WHEN C# = '003' THEN 1 ELSE 0 END) AS UML及格百分数 ,SUM(CASE WHEN C# = '004' THEN score ELSE 0 END)/SUM(CASE C# WHEN '004' THEN 1 ELSE 0 END) AS 数据库平均分 ,100 * SUM(CASE WHEN C# = '004' AND score >= 60 THEN 1 ELSE 0 END)/SUM(CASE WHEN C# = '004' THEN 1 ELSE 0 END) AS 数据库及格百分数 FROM SC 21、查询不同老师所教不同课程平均分从高到低显示 SELECT max(Z.T#) AS 教师ID,MAX(Z.Tname) AS 教师姓名,C.C# AS 课程ID,MAX(C.Cname) AS 课程名称,AVG(Score) AS 平均成绩 FROM SC AS T,Course AS C ,Teacher AS Z where T.C#=C.C# and C.T#=Z.T#