當前位置:首頁 » 編程語言 » 6選3的sql
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

6選3的sql

發布時間: 2022-07-04 17:08:30

sql 命令刪除指定的數據求高手幫忙解決下!

delete (
select IIf (mid(red1, 2, 1) >= 5,1,0) +
iff (mid(red2, 2, 1) >= 5,1,0) +
iff (mid(red3, 2, 1) >= 5,1,0) +
iff (mid(red4, 2, 1) >= 5,1,0) +
iff (mid(red5, 2, 1) >= 5,1,0) +
iff (mid(red6, 2, 1) >= 5 ,1,0) num1,
table.*
from table )
where num1=3
思路:截取紅球各位數,然後判斷,大於的標1,否則0。

⑵ 常用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 @objname

9.查看資料庫里所有的存儲過程和函數

use @database_name

sp_stored_proceres

查看存儲過程和函數的源代碼

sp_helptext '@procere_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

進程號1--50是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)-Ctrl-L 或者點擊工具欄里的圖形

文本方式顯示查詢執行計劃

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 完成的所有修復,包括需要較長時間的修復(如重建索引)。

執行這些修復時不會有丟失數據的危險。

添加、刪除、修改使用db.Execute(Sql)命令執行操作
╔--------------------╗
☆ 數據記錄篩選 ☆
╚--------------------╝
注意:單雙引號的用法可能有誤(沒有測式)

Sql = "Select Distinct 欄位名 From 數據表"
Distinct函數,查詢資料庫存表內不重復的記錄

Sql = "Select Count(*) From 數據表 where 欄位名1>#18:0:0# and 欄位名1< #19:00# "
count函數,查詢數庫表內有多少條記錄,「欄位名1」是指同一欄位
例:
set rs=conn.execute("select count(id) as idnum from news")
response.write rs("idnum")

sql="select * from 數據表 where 欄位名 between 值1 and 值2"
Sql="select * from 數據表 where 欄位名 between #2003-8-10# and #2003-8-12#"
在日期類數值為2003-8-10 19:55:08 的欄位里查找2003-8-10至2003-8-12的所有記錄,而不管是幾點幾分。

select * from tb_name where datetime between #2003-8-10# and #2003-8-12#
欄位裡面的數據格式為:2003-8-10 19:55:08,通過sql查出2003-8-10至2003-8-12的所有紀錄,而不管是幾點幾分。

Sql="select * from 數據表 where 欄位名=欄位值 order by 欄位名 [desc]"

Sql="select * from 數據表 where 欄位名 like '%欄位值%' order by 欄位名 [desc]"
模糊查詢

Sql="select top 10 * from 數據表 where 欄位名 order by 欄位名 [desc]"
查找資料庫中前10記錄

Sql="select top n * form 數據表 order by newid()"
隨機取出資料庫中的若干條記錄的方法
top n,n就是要取出的記錄數

Sql="select * from 數據表 where 欄位名 in ('值1','值2','值3')"

╔--------------------╗
☆ 添加數據記錄 ☆
╚--------------------╝
sql="insert into 數據表 (欄位1,欄位2,欄位3 …) valuess (值1,值2,值3 …)"

sql="insert into 數據表 valuess (值1,值2,值3 …)"
不指定具體欄位名表示將按照數據表中欄位的順序,依次添加

sql="insert into 目標數據表 select * from 源數據表"
把源數據表的記錄添加到目標數據表

╔--------------------╗
☆ 更新數據記錄 ☆
╚--------------------╝
Sql="update 數據表 set 欄位名=欄位值 where 條件表達式"

Sql="update 數據表 set 欄位1=值1,欄位2=值2 …… 欄位n=值n where 條件表達式"

Sql="update 數據表 set 欄位1=值1,欄位2=值2 …… 欄位n=值n "
沒有條件則更新整個數據表中的指定欄位值

╔--------------------╗
☆ 刪除數據記錄 ☆
╚--------------------╝
Sql="delete from 數據表 where 條件表達式"

Sql="delete from 數據表"
沒有條件將刪除數據表中所有記錄)

╔--------------------------╗
☆ 數據記錄統計函數 ☆
╚--------------------------╝
AVG(欄位名) 得出一個表格欄平均值
COUNT(*|欄位名) 對數據行數的統計或對某一欄有值的數據行數統計
MAX(欄位名) 取得一個表格欄最大的值
MIN(欄位名) 取得一個表格欄最小的值
SUM(欄位名) 把數據欄的值相加

引用以上函數的方法:
sql="select sum(欄位名) as 別名 from 數據表 where 條件表達式"
set rs=conn.excute(sql)
用 rs("別名") 獲取統的計值,其它函數運用同上。

╔-----------------------------╗
☆ 數據表的建立和刪除 ☆
╚-----------------------------╝
CREATE TABLE 數據表名稱(欄位1 類型1(長度),欄位2 類型2(長度) …… )
例:CREATE TABLE tab01(name varchar(50),datetime default now())
DROP TABLE 數據表名稱 (永久性刪除一個數據表)

╔--------------------------╗
☆ 記錄集對象的方法 ☆
╚--------------------------╝
rs.movenext 將記錄指針從當前的位置向下移一行
rs.moveprevious 將記錄指針從當前的位置向上移一行
rs.movefirst 將記錄指針移到數據表第一行
rs.movelast 將記錄指針移到數據表最後一行
rs.absoluteposition=N 將記錄指針移到數據表第N行
rs.absolutepage=N 將記錄指針移到第N頁的第一行
rs.pagesize=N 設置每頁為N條記錄
rs.pagecount 根據 pagesize 的設置返回總頁數
rs.recordcount 返回記錄總數
rs.bof 返回記錄指針是否超出數據表首端,true表示是,false為否
rs.eof 返回記錄指針是否超出數據表末端,true表示是,false為否
rs.delete 刪除當前記錄,但記錄指針不會向下移動
rs.addnew 添加記錄到數據表末端
rs.update 更新數據表記錄

⑶ 多選擇篩選查詢SQL語句怎麼寫

我做過類似的查詢,就是用字典項表的數據id列,與數據表的字元串列做instr比較,比較時,兩個數據分別在前後加',',防止第一個和最後一個字典項無法查找出來。
舉個例子,數據表

字典表 dict
id name
12 wifi
13 冰箱
14 洗衣機
15 電視

業務表 query_table
id query_str
1 12,13,14,15
2 12,14
3 14,15

SELECT *
FROM dict a,query_table b
WHERE INSTR(CONCAT(CONCAT(',',b.query_str),','), CONCAT(',', CONCAT(a.id,',')))>-0 AND b.id=1


看實際效果

⑷ sql語句 會員編號:6位數字,首位必須是1、2、3,第二位必須是3或8或9、主鍵 姓名:必填 聯系電話:必填,

creat table xx{
會員編號 char(6) check (char(0) in (1,2,3) and char(1) in (3,8,9))
姓名 char(10) primary key
聯系電話 char(13) not null
}

⑸ sql資料庫的基本操作

命令行
1、顯示當前資料庫伺服器中的資料庫列表:mysql> SHOW DATABASES;
2、建立資料庫:mysql> CREATE DATABASE 庫名;
3、建立數據表:mysql> USE 庫名;mysql> CREATE TABLE 表名 (欄位名 VARCHAR(20), 欄位名 CHAR(1));
4、刪除資料庫:mysql> DROP DATABASE 庫名;
5、刪除數據表:mysql> DROP TABLE 表名;
6、將表中記錄清空:mysql> DELETE FROM 表名;
7、往表中插入記錄:mysql> INSERT INTO 表名 VALUES ("hyq","M");
8、更新表中數據:mysql-> UPDATE 表名 SET 欄位名1='a',欄位名2='b' WHERE 欄位名3='c';
9、用文本方式將數據裝入數據表中:mysql> load data local infile "d:/mysql.txt" into table 表名;
10、導入.sql文件命令:mysql> USE 資料庫名;mysql> source d:/mysql.sql;
11、命令行修改root密碼:mysql> update mysql.user set password=password('新密碼') where user='root';mysql> flush privileges;
12.修改密碼的三種方法:mysql>update user set password=password('123456') where user='joy_pen';mysql>flush privileges;mysql>set password for 'joy_oen'=password('123456');mysql>grant usage on *.* to 'joy_pen' identified by '123456';
1、創建資料庫
命令:create database <資料庫名> 例如:建立一個名為xhkdb的資料庫mysql> create database xhkdb;
2、顯示所有的資料庫
命令:show databases (注意:最後有個s)mysql> show databases;
3、刪除資料庫
命令:drop database <資料庫名> 例如:刪除名為 xhkdb的資料庫mysql> drop database xhkdb;
4、連接資料庫
命令: use <資料庫名> 例如:如果xhkdb資料庫存在,嘗試存取它:mysql> use xhkdb; 屏幕提示:Database changed
5、當前選擇(連接)的資料庫mysql> select database();
6、當前資料庫包含的表信息:mysql> show tables; (注意:最後有個s)
三、表操作,操作之前應連接某個資料庫
1、建表
命令:create table <表名> ( <欄位名1> <類型1> [,..<欄位名n> <類型n>]);
mysql> create table MyClass(
> id int(4) not null primary key auto_increment,
> name char(20) not null,
> sex int(4) not null default ''0'',
> degree double(16,2));
2、獲取表結構
命令: desc 表名,或者show columns from 表名
mysql>DESCRIBE MyClass
mysql> desc MyClass;
mysql> show columns from MyClass;
3、刪除表
命令:drop table <表名>
例如:刪除表名為 MyClass 的表 mysql> drop table MyClass;
4、插入數據
命令:insert into <表名> [( <欄位名1>[,..<欄位名n > ])] values ( 值1 )[, ( 值n )]
例如,往表 MyClass中插入二條記錄, 這二條記錄表示:編號為1的名為Tom的成績為96.45, 編號為2 的名為Joan 的成績為82.99,編號為3 的名為Wang 的成績為96.5.
mysql> insert into MyClass values(1,'Tom',96.45),(2,'Joan',82.99), (2,'Wang', 96.59);
5、查詢表中的數據
1)、查詢所有行
命令: select <欄位1,欄位2,...> from < 表名 > where < 表達式 >
例如:查看錶 MyClass 中所有數據 mysql> select * from MyClass;
2)、查詢前幾行數據
例如:查看錶 MyClass 中前2行數據
mysql> select * from MyClass order by id limit 0,2;
6、刪除表中數據
命令:delete from 表名 where 表達式
例如:刪除表 MyClass中編號為1 的記錄
mysql> delete from MyClass where id=1;
7、修改表中數據:update 表名 set 欄位=新值,… where 條件
mysql> update MyClass set name=''Mary'' where id=1;
8、在表中增加欄位:
命令:alter table 表名 add 欄位 類型 其他;
例如:在表MyClass中添加了一個欄位passtest,類型為int(4),默認值為0
mysql> alter table MyClass add passtest int(4) default ''0''
9、更改表名:
命令:rename table 原表名 to 新表名;
例如:在表MyClass名字更改為YouClass
mysql> rename table MyClass to YouClass;
更新欄位內容
update 表名 set 欄位名 = 新內容
update 表名 set 欄位名 = replace(欄位名,''舊內容'',''新內容'');

⑹ SQL 按條件 隨機 取記錄

1.select count(*),商家 from table group by 商家
2.select count(*) from table
3.select top 3 * from table order by rnd(id)
4.select top 66 * from table order by rnd(id)
3.4. access對隨機函數的支持不好,建議在程序中實現,具體思路是先取出表中所有的id值,然後存到一個數組中,然後用程序取隨機數組
5.到底是要消費筆數最多還是金額最大。兩個條件會沖突的,消費只有1筆,但也有可以金額是最大的。
6.select id,列名1,列名2,.. into newtable(列名1,列名2,...) where id in(分別寫3,4,5的條件)
7.delete table where id not in ( select min(id) from table group by id)

⑺ SQL資料庫高手來~~懸賞

--1.新建一個名為school的資料庫。
create database school
go
use school
go
create table student--學生信息表(student)
(
stu_no varchar(50) primary key,
stu_name varchar(100) ,
stu_sex varchar(2),
stu_phone varchar(200),
stu_email varchar(500)
)
go
insert into student values('001','張三','男','111','[email protected]')
insert into student values('002','李四','男','222','[email protected]')
insert into student values('003','王五','女','333','[email protected]')
insert into student values('004','趙六','女','444','[email protected]')
insert into student values('005','錢七','男','555','[email protected]')
go
create table teacher
(
tea_no varchar(50) primary key,
tea_name varchar(100),
tea_sex varchar(2),
tea_phone varchar(200),
tea_email varchar(500)
)
go
insert into teacher values('001','馮老師','女','123','[email protected]')
insert into teacher values('002','劉老師','男','321','[email protected]')
go
create table course--課程表(course)
(
cor_id int primary key,
cor_name varchar(100),
tea_no varchar(50) foreign key references teacher(tea_no)
)
go
insert into course values(991,'資料庫','001')
insert into course values(992,'操作系統','002')
go
create table choose--選課表(choose)
(
ch_id int identity primary key,
stu_no varchar(50) foreign key references student(stu_no),
cor_id int foreign key references course(cor_id)
)
go
insert into choose values('001',991)
insert into choose values('001',992)
insert into choose values('002',991)
insert into choose values('002',992)
insert into choose values('003',991)
insert into choose values('004',992)
go

--1.選出教師信息表(teacher)所有數據。(10分)

select * from teacher

--2.選出前三條的學生信息數據。(10分)

select top 3* from student order by stu_no

--3.選出張三同學選修的所有課程名稱。(10分)

select cor_name as '張三同學選修的所有課程名稱' from course where cor_id in (select cor_id from choose where stu_no=(select stu_no from student where stu_name = '張三'))

--4.選出沒有選課的學生。(10分)

select * from student where stu_no not in(select stu_no from choose)

--5.選出每個學生及他們選課的門數。(10分)

select student.stu_no,student.stu_name,student.stu_sex,student.stu_phone,student.stu_email,isnull(coun,0) from student left join (select stu_no,count(*)as coun from choose group by stu_no) as nes on student.stu_no = nes.stu_no

select stu_no,count(*) from choose group by stu_no
--6.選出馮老師所教的所有學生。(10分)
select * from student where stu_no in(select stu_no from choose where cor_id in(select cor_id from course where tea_no=(select tea_no from teacher where tea_name = '馮老師')))

可以復制到資料庫 運行

⑻ sql語句高手進

以下代碼直接可執行
寫得比較亂 呵呵
注意:如果其中列的值還有變動就必須補充出來
我再想可執行有變動值的方法

set nocount on

create Table #a (A int,B int,C int,D int,E int,F int)
insert #a select 1,3,2,5,4,4
union all select 1,1,2,4,3,6
union all select 3,6,6,3,3,0
union all select 1,0,3,5,7,9
union all select 4,3,4,0,3,7
union all select 0,7,7,6,3,6
go
select num =convert(varchar(1),#a.A)+
convert(varchar(1),#a.A)+
convert(varchar(1),#a.B)+
convert(varchar(1),#a.C)+
convert(varchar(1),#a.D)+
convert(varchar(1),#a.E)+
convert(varchar(1),#a.F)
into #newtable
from #a

go

declare @count int
declare @info nvarchar(50)
declare @i int

set @i=0

create table #info
(
infoStr nvarchar(50) not null primary key
)

while(@i<10)

begin
set @info=''
set @count=0

select @info=num ,@count=len(num)-len(replace(num,convert(varchar(1),@i),''))
from #newtable where len(num)-len(replace(num,convert(varchar(1),@i),''))>=3

set @info =@info+ '有'+convert(varchar(1),@count)+'個'+convert(varchar(1),@i)
if(@count<>0)
begin
insert #info select @info

end
set @i=@i+1
end

select * from #info

drop table #a
drop table #newtable
drop table #info

⑼ 常見的SQL語句有哪些

(1)更新數據記錄:
sql="update數據表set欄位名=欄位值where條件表達式"
sql="update數據表set欄位1=值1,欄位2=值2……欄位n=值nwhere條件表達式"

(2)添加數據記錄:
sql="insertinto數據表(欄位1,欄位2,欄位3…)values(值1,值2,值3…)"
sql="insertinto目標數據表select*from源數據表"(把源數據表的記錄添加到目標數據表)

(3)刪除數據記錄:
sql="deletefrom數據表where條件表達式"
sql="deletefrom數據表"(將數據表所有記錄刪除)

(4)數據記錄篩選:
sql="select*from數據表where欄位名=欄位值orderby欄位名[desc]"
sql="select*from數據表where欄位名like'%欄位值%'orderby欄位名[desc]"
sql="selecttop10*from數據表where欄位名orderby欄位名[desc]"
sql="select*from數據表where欄位名in('值1','值2','值3')"
sql="select*from數據表where欄位名between值1and值2"

(5)數據表的建立和刪除:
CREATETABLE數據表名稱(欄位1類型1(長度),欄位2類型2(長度)……)
例:CREATETABLEtab01 (namevarchar (50), datetimedefaultnow ())
DROPTABLE數據表名稱(永久性刪除一個數據表)

(6)數據記錄統計函數:
AVG(欄位名)得出一個表格欄平均值
COUNT(*|欄位名)對數據行數的統計或對某一欄有值的數據行數統計
MAX(欄位名)取得一個表格欄最大的值
MIN(欄位名)取得一個表格欄最小的值
SUM(欄位名)把數據欄的值相加
引用以上函數的方法:
sql="selectsum(欄位名)as別名from數據表where條件表達式"
setrs=conn.excute(sql)
用rs("別名")獲取統的計值,其它函數運用同上。

(6)復制資料庫的表
select * into 新表名 from 要復制的表的表名 where 1=2
要完全復制把where 1=2 去了就可以了
(7)刪除某個表的一個列
alter table bankbill drop column zsl
alter table xx alter/add/drop column xx

(8)模糊查詢
Sql="select top 10 * from 數據表 where 欄位名 order by 欄位名 [desc]"
查找資料庫中前10記錄
Sql="select top n * form 數據表 order by newid()"
隨機取出資料庫中的若干條記錄的方法
top n,n就是要取出的記錄數
Sql="select * from 數據表 where 欄位名 in ('值1','值2','值3')"