谁能教我几句最常用的SQL语句
语 句 功 能 数据操作 SELECT 从数据库表中检索数据行和列 INSERT 向数据库表添加新数据行 DELETE 从数据库表中删除数据行 UPDATE 更新数据库表中的数据 数据定义 CREATE TABLE 创建一个数据库表 DROP TABLE 从数据库中删除表 ALTER TABLE 修改数据库表结构 CREATE VIEW 创建一个视图 DROP VIEW 从数据库中删除视图 CREATE INDEX 为数据库表创建一个索引 DROP INDEX 从数据库中删除索引 CREATE PROCEDURE 创建一个存储过程 DROP PROCEDURE 从数据库中删除存储过程 CREATE TRIGGER 创建一个触发器 DROP TRIGGER 从数据库中删除触发器 CREATE SCHEMA 向数据库添加一个新模式 DROP SCHEMA 从数据库中删除一个模式 CREATE DOMAIN 创建一个数据值域 ALTER DOMAIN 改变域定义 DROP DOMAIN 从数据库中删除一个域 数据控制 GRANT 授予用户访问权限 DENY 拒绝用户访问 REVOKE 解除用户访问权限 事务控制 COMMIT 结束当前事务 ROLLBACK 中止当前事务 SET TRANSACTION 定义当前事务数据访问特征 程序化SQL DECLARE 为查询设定游标 EXPLAN 为查询描述数据访问计划 OPEN 检索查询结果打开一个游标 FETCH 检索一行查询结果 CLOSE 关闭游标 PREPARE 为动态执行准备SQL 语句 EXECUTE 动态地执行SQL 语句 DESCRIBE 描述准备好的查询 局部变量 declare @id char(10) set @id = ‘10010001’ select @id = ‘10010001’ 全局变量 必须以@@开头 IF ELSE declare @x int @y int @z int select @x = 1 @y = 2 @z=3 if @x > @y print ‘x > y’ 打印字符串’x > y’ else if @y > @z print ‘y > z’ else print ‘z > y’ CASE use pangu update employee set e_wage = case when job_level = ‘1’ then e_wage*1。
08 when job_level = ‘2’ then e_wage*1。07 when job_level = ‘3’ then e_wage*1。
06 else e_wage*1。 05 end WHILE CONTINUE BREAK declare @x int @y int @c int select @x = 1 @y=1 while @x =表达式的最小整数返回的数据类型与表达式相同可为 INTEGER/MONEY/REAL/FLOAT 类型 FLOOR(numeric_expression) 返回 AS [ length ]) CONVERT() 函数语法如下 CONVERT() ([ length ], [, style]) select cast(100+99 as char) convert(varchar(12), getdate()) 运行结果如下 199 Jan 15 2000 日期函数 DAY() 函数返回date_expression 中的日期值 MONTH() 函数返回date_expression 中的月份值 YEAR() 函数返回date_expression 中的年份值 DATEADD( , ,) 函数返回指定日期date 加上指定的额外日期间隔number 产生的新日期 DATEDIFF( , ,) 函数返回两个指定日期在datepart 方面的不同之处 DATENAME( , ) 函数以字符串的形式返回日期的指定部分 DATEPART( , ) 函数以整数值的形式返回日期的指定部分 GETDATE() 函数以DATETIME 的缺省格式返回系统当前的日期和时间 系统函数 APP_NAME() 函数返回当前执行的应用程序的名称 COALESCE() 函数返回众多表达式中第一个非NULL 表达式的值 COL_LENGTH(, ) 函数返回表中指定字段的长度值 COL_NAME(, ) 函数返回表中指定字段的名称即列名 DATALENGTH() 函数返回数据表达式的数据的实际长度 DB_ID([‘database_name’]) 函数返回数据库的编号 DB_NAME(database_id) 函数返回数据库的名称 HOST_ID() 函数返回服务器端计算机的名称 HOST_NAME() 函数返回服务器端计算机的名称 IDENTITY([, seed increment]) [AS column_name]) IDENTITY() 函数只在SELECT INTO 语句中使用用于插入一个identity column列到新表中 /*select identity(int, 1, 1) as column_name into newtable from oldtable*/ ISDATE() 函数判断所给定的表达式是否为合理日期 ISNULL(, ) 函数将表达式中的NULL 值用指定值替换 ISNUMERIC() 函数判断所给定的表达式是否为合理的数值 NEWID() 函数返回一个UNIQUEIDENTIFIER 类型的数值 NULLIF(, ) NULLIF 函数在expression1 与expression2 相等时返回NULL 值若不相等时则返回expression1 的值 。
常用sql语句
1. 查看数据库的版本 select @@version 2. 查看数据库所在机器操作系统参数 exec master..xp_msver 3. 查看数据库启动的参数 sp_configure 4. 查看数据库启动时间 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) 5. 查看所有数据库名称及大小 sp_helpdb 重命名数据库用的SQL sp_renamedb ‘old_dbname’, ‘new_dbname’ 6. 查看所有数据库用户登录信息 sp_helplogins 查看所有数据库用户所属的角色信息 sp_helpsrvrolemember 修复迁移服务器时孤立用户时,可以用的fix_orphan_user脚本或者LoneUser过程 更改某个数据对象的用户属主 sp_changeobjectowner [@objectname =] ‘object’, [@newowner =] ‘owner’ 注意:更改对象名的任一部分都可能破坏脚本和存储过程。 把一台服务器上的数据库用户登录信息备份出来可以用add_login_to_aserver脚本 查看某数据库下,对象级用户权限 sp_helprotect 7. 查看链接服务器 sp_helplinkedsrvlogin 查看远端数据库用户登录信息 sp_helpremotelogin 8.查看某数据库下某个数据对象的大小 sp_spaceused @objname 还可以用sp_toptables过程看最大的N(默认为50)个表 查看某数据库下某个数据对象的索引信息 sp_helpindex @objname 还可以用SP_NChelpindex过程查看更详细的索引情况 SP_NChelpindex @objname clustered索引是把记录按物理顺序排列的,索引占的空间比较少。
对键值DML操作十分频繁的表我建议用非clustered索引和约束,fillfactor参数都用默认值。 查看某数据库下某个数据对象的的约束信息 sp_helpconstraint @objname9.查看数据库里所有的存储过程和函数 use @database_name sp_stored_procedures 查看存储过程和函数的源代码 sp_helptext ‘@procedure_name’ 查看包含某个字符串@str的数据对象名称 select distinct object_name(id) from syscomments where text like ‘%@str%’ 创建加密的存储过程或函数在AS前面加WITH ENCRYPTION参数 解密加密过的存储过程和函数可以用sp_decrypt过程 10.查看数据库里用户和进程的信息 sp_who 查看SQL Server数据库里的活动用户和进程的信息 sp_who ‘active’ 查看SQL Server数据库里的锁的情况 sp_lock 进程号150是SQL Server系统内部用的,进程号大于50的才是用户的连接进程. spid是进程编号,dbid是数据库编号,objid是数据对象编号 查看进程正在执行的SQL语句 dbcc inputbuffer () 推荐大家用经过改进后的sp_who3过程可以直接看到进程运行的SQL语句 sp_who3 检查死锁用sp_who_lock过程 sp_who_lock 11.查看和收缩数据库日志文件的方法 查看所有数据库日志文件大小 dbcc sqlperf(logspace) 如果某些日志文件较大,收缩简单恢复模式数据库日志,收缩后@database_name_log的大小单位为M backup log @database_name with no_log dbcc shrinkfile (@database_name_log, 5) 12.分析SQL Server SQL 语句的方法: set statistics time {on | off} set statistics io {on | off} 图形方式显示查询执行计划 在查询分析器>查询>显示估计的评估计划(D)CtrlL 或者点击工具栏里的图形 文本方式显示查询执行计划 set showplan_all {on | off} set showplan_text { on | off } set statistics profile { on | off } 13.出现不一致错误时,NT事件查看器里出3624号错误,修复数据库的方法 先注释掉应用程序里引用的出现不一致性错误的表,然后在备份或其它机器上先恢复然后做修复操作 alter database [@error_database_name] set single_user 修复出现不一致错误的表 dbcc checktable(‘@error_table_name’,repair_allow_data_loss) 或者可惜选择修复出现不一致错误的小型数据库名 dbcc checkdb(‘@error_database_name’,repair_allow_data_loss) alter database [@error_database_name] set multi_user CHECKDB 有3个参数: repair_allow_data_loss 包括对行和页进行分配和取消分配以改正分配错误、结构行或页的错误,以及删除已损坏的文本对象,这些修复可能会导致一些数据丢失。
修复操作可以在用户事务下完成以允许用户回滚所做的更改。 如果回滚修复,则数据库仍会含有错误,应该从备份进行恢复。
如果由于所提供修复等级的缘故遗漏某个错误的修复,则将遗漏任何取决于该修复的修复。 修复完成后,请备份数据库。
repai*_**st 进行小的、不耗时的修复操作,如修复非聚集索引中的附加键。 这些修复可以很快完成,并且不会有丢失数据的危险。
repair_rebuild 执行由 repai*_**st 完成的所有修复,包括需要较长时间的修复(如重建索引)。 执行这些修复时不会有丢失数据的危险。
添加、删除、修改使用*e(Sql)命令执行操作 ╔╗ ☆ 数据记录筛选 ☆ ╚╝ 注意:单双引号的用法可能有误(没有测式) Sql = “Select Distinct 字段名 From 数据表” Distinct函数,查询数据库存表内不重复的记录 Sql = “Select Count(*) From 。
数据库中常用的sql语句有哪些
1.检索数据 SELECT prod_nameFROM Products;#检索单列 SELECT prod_id, prod_name, prod_priceFROMProducts;#检索多列 SELECT * FROM Products;#检索所有列 SELECT DISTINCTvend_id FROMProducts;#检索不同的值 SELECTprod_name FROM Products LIMIT 5;#返回不超过5行数据 SELECTprod_name FROM Products LIMIT 5 OFFSET 5;#返回从第5行起的5行数据。
LIMIT指定返回的行数,LIMIT带的OFFSET指定从哪儿开始。2.排序检索数据 SELECTprod_name FROMProducts ORDER BYprod_name;#排序数据 SELECT prod_id, prod_price, prod_name FROMProducts ORDER BY prod_price, prod_name;#按多个列排序 SELECT prod_id, prod_price, prod_name FROMProducts ORDER BY 2, 3;#按列位置排序,第三行表示先按prod_price, 再按prod_name进行排序 SELECT prod_id, prod_price, prod_name FROMProducts ORDER BY prod_priceDESC, prod_name;#prod_price列以降序排序,而prod_name列(在每个价格内)仍然按标准的升序排序3.过滤数据 SELECT prod_name, prod_price FROMProducts WHERE prod_price#检查单个值 SELECT prod_name, prod_price FROMProducts WHERE vend_id ‘DLL01’;#不匹配检查 SELECT prod_name, prod_price FROMProducts WHERE prod_priceBETWEEN 5 AND 10;#范围值检查 SELECT cust_name FROMCUSTOMERS WHERE cust_emailIS NULL;#空值检查4.高级数据过滤 SELECTprod_id, prod_price, prod_name FROMProducts WHERE vend_id = ‘DLL01’ANDprod_price #AND操作符 SELECTprod_name, prod_price FROMProducts WHEREvend_id=’DLL01′ OR vend_id=’BRS01’;#OR操作符 SELECTprod_name, prod_price FROMProducts WHERE (vend_id = ‘DLL01’ORvend_id=’BRS01’) ANDprod_price >= 10;#求值顺序 AND的优先级高于OR SELECTprod_name, prod_price FROMProducts WHERE vend_idIN (‘DLL01′,’BRS01’) ORDER BY prod_name;#IN操作符 SELECT prod_name FROMProducts WHERE NOTvend_id = ‘DLL01’ ORDER BY prod_name;#NOT 操作符 SELECT prod_name FROMProducts WHEREvend_id ‘DLL01’ ORDER BY prod_name;#NOT 操作符。
SQL语言基本语句有哪些
表的建立 关系数据库的主要特点之一就是用表的方式组织数据。
表是SQL语言存放数据、查找数据以及更新数据的基本数据结构。在SQL语言中,表有严格的定义,它是一种二维表,对于这种表有如下规定:每一张表都有一个名字,通常称为表名或关系名。
表名必须以字母开头,最大长度为30个字符。2)一张表可以由若干列组成,列名唯一,列名也称作属性名。
3)表中的一行称为一个元组,它相当于一条记录。4)同一列的数据必须具有相同的数据类型。
5)表中的每一个列值必须是不可分割的基本数据项。
sql基本语句有哪些
查询语句select * from table;
select * from table where 条件1=数值 and 条件2=数值;
select * from table where id in (select id from table);两表关联
select a.a,b.b,c.c from table1 a,table2 b,table3 c where *1=*2;
插入语句insert into table (字段1,字段2,字段3,……)
values (数值1,数值2,数值3,……);
更新语句update 表名 set 数值 where=id = 1;
添加列语句alter table 表名
add (列名1 类型1,列名2 类型2,列名3 类型3,……);
修改列类型alter table 表名
modify (列名1 类型1,列名2 类型2,列名3 类型3,……);
删除列语句alter table 表名
drop column 列名s;
显示查询时间set timing on;
删除表语句deltet table 表名;
清空表数据truncate table 表名;
修改列名 ALTER TABLE emp RENAME COLUMN comm TO newa;