SQL数据库常用命令

创建数据库

create database student;//创建一个名为student的数据库

创建数据库的表

create table student		//定义一个名为student的表
(
sno char(9)  primary key,				
sname char(20),
ssex char(2)  constraint s_check check(ssex in('男','女'))
);

修改基本表

alter table <表名>
add [column] <新列名><数据类型> [完整性约束]
add <表级完整性约束>
drop [column] <列名> [cascade|restrict]
drop constraint<完整性约束名> [cascade|restrict]
alter column <列名><数据类型>;
eg:向student表中增加'入学时间'列。
alter table student add student_time datetime;
eg:student表增加表级完整性约束。
alter table student add primary key(sno);
eg:student表删除'入学时间'列;
alter table student drop column student_time;//注意在删除时需要带上column,增加时随意。
eg:student表删除用户定义的完整性约束
alter table student drop constraint s_check;
eg:修改列的定义
alter table student alter column;

删除基本表

drop table student ;

索引的建立、修改、删除

create unique index <索引名> on <表名>(<列名> asc,<列名> desc,...)
alter index <索引名> rename to <新的索引名>
drop index <索引名>

数据查询

select [all|distinct] <目标列表达式> 
from <表名或视图名> 
[where <条件表达式>]
[group by <列名> [having <表达式>]  ]
[order by <列名> [asc|desc]  ]

常用的查询条件
确定范围: between and ;not between and
确定集合: in ;not in
字符匹配:like ; not like("_"表示单个任意字符;"%"表示任意长度的字符串)
空值:is null;is not null
逻辑运算: and ; or ;not 
聚集函数
count(*)			统计元组个数
count([distinct|all] <列名>) 		统计一列中值的个数
sum() 、avg()、max()、min()
注意:聚集函数只能用于select子句和group by 中的having 子句

数据更新

insert into student(sno,sname)values('1','小王');
insert into student(sno,sname) 子查询;

update <表名> set <列名>=<表达式> [where <条件>];

delete from <表名> [where <条件>];

视图

create view <视图名> (<列名>,<列名>,<列名>)
as 子查询
[with check option]

插、删、改 类似表
sql最全的常用命令语句 询某个数据库的连接数 select count(*) from Master.dbo.SysProcesses where dbid=db_id() --前10名其他等待类型 SELECT TOP 10 * from sys.dm_os_wait_stats ORDER BY wait_time_ms DESC SELECT *FROM sys.dm_os_wait_stats WHERE wait_type like 'PAGELATCH%' OR wait_type like 'LAZYWRITER_SLEEP%' --CPU的压力 SELECT scheduler_id, current_tasks_count, runnable_tasks_count FROM sys.dm_os_schedulers WHERE scheduler_id 500 begin select text,CROSS APPLY master.sys.dm_exec_sql_text(a.sql_handle) from master.sys.sysprocesses a end select text,a.* from master.sys.sysprocesses a CROSS APPLY master.sys.dm_exec_sql_text(a.sql_handle) where a.spid = '51' dbcc inputbuffer(53) with tb as ( select blocking_session_id, session_id,db_name(database_id) as dbname,text from master.sys.dm_exec_requests a CROSS APPLY master.sys.dm_exec_sql_text(a.sql_handle) ), tb1 as ( select a.*,login_time,program_name,client_interface_name,login_name,cpu_time,memory_usage*8 as 'memory_usage(KB)', total_scheduled_time,reads,writes,logical_reads from tb a inner join master.sys.dm_exec_sessions b on a.session_id=b.session_id ) select a.*,connect_time,client_tcp_port,client_net_address from tb1 a inner join master.sys.dm_exec_connections b on a.session_id=b.session_id --当前进程数 select * from master.dbo.sysprocesses order by cpu desc --查看当前活动的进程数 sp_who active --查询是否由于连接没有释放引起CPU过高 select * from master.dbo.sysprocesses where spid> 50 and waittype = 0x0000 and waittime = 0 and status = 'sleeping ' and last_batch < dateadd(minute, -10, getdate()) and login_time 50 and waittype = 0x0000 and waittime = 0 and status = 'sleeping ' and last_batch < dateadd(minute, -60, getdate()) and login_time 1 ORDER BY qs.plan_generation_num SELECT top 50 qt.text AS SQL_text ,SUM(qs.total_worker_time) AS total_cpu_time, SUM(qs.execution_count) AS total_execution_count, SUM(qs.total_worker_time)/SUM(qs.execution_count) AS avg_cpu_time, COUNT(*) AS number_of_statements FROM sys.dm_exec_query_stats qs CROSS APPLY sys.dm_exec_sql_text(qs.sql_handle) as qt GROUP BY qt.text ORDER BY total_cpu_time DESC --统计总的CPU时间 --ORDER BY avg_cpu_time DESC --统计平均单次查询CPU时间 -- 计算可运行状态下的工作进程数量 SELECT COUNT(*) as workers_waiting_for_cpu,s.scheduler_id FROM sys.dm_os_workers AS o INNER JOIN sys.dm_os_schedulers AS s ON o.scheduler_address=s.scheduler_address AND s.scheduler_id<255 WHERE o.state='RUNNABLE' GROUP BY s.scheduler_id
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值