SQL常用命令

下面是一些常用的SQL语句,对于初学者非常实用

SQL 结构化查询语言
分为两个部分:数据操作语言 (DML) 和 数据定义语言 (DDL)。
DML部分:
select - 从数据库表中获取数据
update - 更新数据库表中的数据
delete - 从数据库表中删除数据
insert into - 向数据库表中插入数据

DDL语句:
create database - 创建新数据库
alter database - 修改数据库
create table - 创建新表
alter table - 变更(改变)数据库表
drop table - 删除表
create index - 创建索引(搜索键)
drop index - 删除索引

1、建表格:
CREATE TABLE table_name(
column1 DATATYPE [NOT NULL] [NOT NULL PRIMARY KEY],
column2 DATATYPE [NOT NULL],
…)
说明: 
DATATYPE –是资料的格式,详见表。
NUT NULL –可不可以允许资料有空的(尚未有资料填入)。
PRIMARY KEY –是本表的主键。

2、更改表格 
ALTER TABLE table_name
ADD COLUMN column_name DATATYPE
说明:增加一个栏位(没有删除某个栏位的语法。
ALTER TABLE table_name
ADD PRIMARY KEY (column_name)
说明:更改表得的定义把某个栏位设为主键。
ALTER TABLE table_name
DROP PRIMARY KEY (column_name)
说明:把主键的定义删除。
3、建立索引 
CREATE INDEX index_name ON table_name (column_name)
说明:对某个表格的栏位建立索引以增加查询时的速度。
4、建立视图
create or replace view 视图名 as
select a.字段,
b.字段
from 表明 a,
表明 b
where a.条件 = b.条件
5、删除 
DROP table_name
DROP index_name

SQL常用命令使用方法:
(1) 数据记录筛选:
显示10个 select top 10 * from 数据表 where 字段名 order by 字段名 [desc] [asc] 正序
去重复 select distinct * from 数据表
行数 select count(*) from 数据表
非null select * from 数据表 where 字段名 is not null
排序 select * from 数据表 where 字段名=字段值 order by 字段名 [desc]
搜索指定 select * from 数据表 where 字段名 like ‘%字段值%’ order by 字段名 [desc]倒序
包含值 select * from 数据表 where 字段名 in (‘值1’,’值2’,’值3’)
包含值 select * from 数据表 where 字段名 in (select 字段名 from 数据表)
不包含值 select * from 数据表 where 字段名 not in (‘值1’,’值2’,’值3’)
两值之间 select * from 数据表 where 字段名 between 值1 and 值2
返回值 select * from 数据表 where exists(select 1 from 字段名 where 值1=值2)
(2) 更新数据记录:
update 数据表 set 字段名=字段值 where 条件表达式
update 数据表 set 字段1=值1,字段2=值2 …… 字段n=值n where 条件表达式
(3) 删除数据记录:
delete from 数据表 where 条件表达式
delete from 数据表 (将数据表所有记录删除)
(4) 添加数据记录:
insert into 数据表 (字段1,字段2,字段3 …) values (值1,值2,值3 …)
insert into 目标数据表 select * from 源数据表 (把源数据表的记录添加到目标数据表)
(5) 数据记录统计函数:
AVG(字段名) 得出一个表格栏平均值
COUNT(*|字段名) 对数据行数的统计或对某一栏有值的数据行数统计
MAX(字段名) 取得一个表格栏最大的值
MIN(字段名) 取得一个表格栏最小的值
SUM(字段名) 把数据栏的值相加
(6).比较符
等于 =
不等于 <>
小于 <
大于 >
小于或等于 <=
大于或等于 >=

有更好的方法的欢迎大家相互交流………

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、付费专栏及课程。

余额充值