]]>Sql语法明一览(转)http://www.aygfsteel.com/hefang/articles/324466.html何方何方Fri, 25 Jun 2010 09:15:00 GMThttp://www.aygfsteel.com/hefang/articles/324466.htmlhttp://www.aygfsteel.com/hefang/comments/324466.htmlhttp://www.aygfsteel.com/hefang/articles/324466.html#Feedback0http://www.aygfsteel.com/hefang/comments/commentRss/324466.htmlhttp://www.aygfsteel.com/hefang/services/trackbacks/324466.html--数据操作
SELECT --从数据库表中索数据行和列
INSERT --向数据库表添加新数据?br />
DELETE --从数据库表中删除数据?br />
UPDATE --更新数据库表中的数据
--数据定义
CREATE TABLE --创徏一个数据库?br />
DROP TABLE --从数据库中删除表
ALTER TABLE --修改数据库表l构
CREATE VIEW --创徏一个视?br />
DROP VIEW --从数据库中删除视?br />
CREATE INDEX --为数据库表创Z个烦?br />
DROP INDEX --从数据库中删除烦?br />
CREATE PROCEDURE --创徏一个存储过E?br />
DROP PROCEDURE --从数据库中删除存储过E?br />
CREATE TRIGGER --创徏一个触发器
DROP TRIGGER --从数据库中删除触发器
CREATE SCHEMA --向数据库d一个新模式
DROP SCHEMA --从数据库中删除一个模?br />
CREATE DOMAIN --创徏一个数据值域
ALTER DOMAIN --改变域定?br />
DROP DOMAIN --从数据库中删除一个域
--数据控制
GRANT --授予用户讉K权限
DENY --拒绝用户讉K
REVOKE --解除用户讉K权限
--事务控制
COMMIT --l束当前事务
ROLLBACK --中止当前事务
SET TRANSACTION --定义当前事务数据讉K特征
--E序化SQL
DECLARE --为查询设定游?br />
EXPLAN --为查询描q数据访问计?br />
OPEN --索查询结果打开一个游?br />
FETCH --索一行查询结?br />
CLOSE --关闭游标
PREPARE --为动态执行准备SQL 语句
EXECUTE --动态地执行SQL 语句
DESCRIBE --描述准备好的查询
---局部变?br />
declare @id char(10)
--set @id = '10010001'
select @id = '10010001'
---全局变量
---必须以@@开?br />
--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 < 3
begin
print @x --打印变量x 的?br />
while @y < 3
begin
select @c = 100*@x + @y
print @c --打印变量c 的?br />
select @y = @y + 1
end
select @x = @x + 1
select @y = 1
end
--WAITFOR
--?{待1 时2 分零3 U后才执行SELECT 语句
waitfor delay ’01:02:03’
select * from employee
--?{到晚上11 炚w8 分后才执行SELECT 语句
waitfor time ’23:08:00’
select * from employee
***SELECT***
select *(列名) from table_name(表名) where column_name operator value
ex:(宿主)
select * from stock_information where stockid = str(nid)
stockname = 'str_name'
stockname like '% find this %'
stockname like '[a-zA-Z]%' --------- ([]指定值的范围)
stockname like '[^F-M]%' --------- (^排除指定范围)
--------- 只能在用like关键字的where子句中用通配W?
or stockpath = 'stock_path'
or stocknumber < 1000
and stockindex = 24
not stock*** = 'man'
stocknumber between 20 and 100
stocknumber in(10,20,30)
order by stockid desc(asc) --------- 排序Qdesc-降序Qasc-升序
order by 1,2 --------- by列号
stockname = (select stockname from stock_information where stockid = 4)
--------- 子查?br />
--------- 除非能确保内层select只返回一个行的|
--------- 否则应在外层where子句中用一个in限定W?br />
select distinct column_name form table_name --------- distinct指定索独有的列|不重?br />
select stocknumber ,"stocknumber + 10" = stocknumber + 10 from table_name
select stockname , "stocknumber" = count(*) from table_name group by stockname
--------- group by 表按行分组,指定列中有相同的?br />
having count(*) = 2 --------- having选定指定的组
select *
from table1, table2
where table1.id *= table2.id -------- 左外部连接,table1中有的而table2中没有得以null表示
table1.id =* table2.id -------- 叛_部连?
select stockname from table1
union [all] ----- union合ƈ查询l果集,all-保留重复?br />
select stockname from table2
***insert***
insert into table_name (Stock_name,Stock_number) value ("xxx","xxxx")
value (select Stockname , Stocknumber from Stock_table2)---value为select语句
action add aggregate all
alter after and as
asc avg avg_row_length auto_increment
between bigint bit binary
blob bool both by
cascade case char character
change check checksum column
columns comment constraint create
cross current_date current_time current_timestamp
data database databases date
datetime day day_hour day_minute
day_second dayofmonth dayofweek dayofyear
dec decimal default delayed
delay_key_write delete desc describe
distinct distinctrow double drop
end else escape escaped
enclosed enum explain exists
fields file first float
float4 float8 flush foreign
from for full function
global grant grants group
having heap high_priority hour
hour_minute hour_second hosts identified
ignore in index infile
inner insert insert_id int
integer interval int1 int2
int3 int4 int8 into
if is isam join
key keys kill last_insert_id
leading left length like
lines limit load local
lock logs long longblob
longtext low_priority max max_rows
match mediumblob mediumtext mediumint
middleint min_rows minute minute_second
modify month monthname myisam
natural numeric no not
null on optimize option
optionally or order outer
outfile pack_keys partial password
precision primary procedure process
processlist privileges read real
references reload regexp rename
replace restrict returns revoke
rlike row rows second
select set show shutdown
smallint soname sql_big_tables sql_big_selects
sql_low_priority_updates sql_log_off sql_log_update sql_select_limit
sql_small_result sql_big_result sql_warnings straight_join
starting status string table
tables temporary terminated text
then time timestamp tinyblob
tinytext tinyint trailing to
type use using unique
unlock unsigned update usage
values varchar variables varying
varbinary with write when
where year year_month zerofill
--创表
use mydata;
create table dept
(
deptno int primary key, --主键
dname varchar(14),
loc varchar(13)
);
---创徏另一张表
create table emp
(
empno int primary key,
name varchar(10),
job varchar(10),
mgr int,
hiredate datetime,
sal double,
comm double,
deptno int,
foreign key (deptno) references dept(deptno)
);
---查询有多数据库
show databases;
---查询数据库下有多张?br />
show tables;
---查询表结?br />
desc emp;
----表里有多数?br />
select * from emp;
---插入数据
insert into dept values(1,'a','a');
---删除数据
delete form dept where dept.deptno =1;
---更新数据
delete dept set dname ='d' where deptno =5;
---提交
commit
---MySql单的排序 从第五个开始取Q取2条数?br />
select * from dept order by deptno limit 5,2;
Q数据库中的自动递增会媄响我们写E序Q?br />
---自动递增
create table test1
(
id int primary key auto_increment,
title varchar(255)
);
---创徏索引Qcreate [unique] index idxname on tabname(col….)
---删除索引Qdrop index idxname
---索引是不可更改的Q想更改必须删除重新建?/p>
---创徏视图Qcreate view viewname as select statement
---删除视图Qdrop view viewname
---几个单的基本的sql语句
--选择Q?br />
select * from table1 where 范围
--插入Q?br />
insert into table1(field1,field2) values(value1,value2)
--删除Q?br />
delete from table1 where 范围
--更新Q?br />
update table1 set field1=value1 where 范围
--查找Q?br />
select * from table1 where field1 like ’%value1%’ ---like的语
--排序Q?br />
select * from table1 order by field1,field2 [desc]
--LQ?br />
select count as totalcount from table1
--求和Q?br />
select sum(field1) as sumvalue from table1
--q_Q?br />
select avg(field1) as avgvalue from table1
--最大:
select max(field1) as maxvalue from table1
--最:
select min(field1) as minvalue from table1
--随机查询数据
select newid()
---查询所有表
select name from sysobjects where type='u'
--查询表中有几个列
select name from syscolumns where id=object_id('transinfo')
--初始化表
truncate table test
---压羃数据?br />
dbcc shrinkdatabase('testssh')
--转移数据库给新用户以已存在用h?br />
exec sp_change_users_login 'update_one','whb','sa'
go
--查备份集
RESTORE VERIFYONLY from disk='E:\dvbbs.bak'
---日志清除
SET NOCOUNT ON
DECLARE @LogicalFileName sysname,
@MaxMinutes INT,
@NewSize INT
----SQL SERVER中直接@环写入数?br />
declare @i int
set @i=1
while @i<30
begin
insert into test (userid) values(@i)
set @i=@i+1
end
---存储更改全部?br />
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