1. 程式人生 > >sybase經典sql語句

sybase經典sql語句

-------命令
sp_helpdb                                                                 ---------檢視所有的資料庫名稱及大小
sp_helpdb master                                                          ---------檢視資料庫master的資訊      
disk init name='topsecdisk', physname='c:\topsecdisk.dev', size='100M'    ---------建立資料裝置,並且指定資料裝置和日誌裝置的大小
sp_helpdevice                                                             ----------列出所有的資料庫裝置
sp_spaceused                                                              ----------檢視資料庫剩餘空間
disk init name='toplog', physname='c:\topseclog.dev', size='100M'         ----------建立日誌裝置並指定大小
alter database topsec1 on topsecdisk = 4                                  ----------增加資料裝置空間
alter database topsec1 log on toplog = 4                                  ----------增加日誌裝置空間
sp_configure                                                              ----------檢視資料庫啟動引數
select @@SERVERNAME                                                       ----------檢視資料庫伺服器名稱
select db_name()                                                          ----------檢視資料庫名
sp_helpremotelogin                                                        ----------檢視遠端資料庫使用者登入資訊
sp_stored_procedures                                                      ----------檢視資料庫裡所有的儲存過程和函式
sp_who                                                                    ----------檢視資料庫裡使用者和程序的資訊
sp_lock                                                                   ----------檢視SQL Server資料庫裡的鎖的情況
sp_help                                                                   ----------檢視資料庫中的所有表                        
sp_help sysroles                                                          ----------查看錶sysroles的表結構                                         
create database topsec1 on topsecdisk='80M' log on toplog='80M'           ----------建立資料庫並指定資料裝置和日誌裝置
use topsec1                                                               ----------使用資料庫
sp_diskdefault  topsecdisk,defaulton                                      ----------把資料裝置設定為預設裝置
sp_diskdefault  toplog,defaulton                                          ----------把日誌裝置設定為預設裝置  
sp_helpsort                                                               ----------獲得伺服器端的字符集情況
select @@client_csname                                                    ----------獲得客戶端字符集情況


----建立表
create table class(
ID int primary key,
grade int)                                                                ----------建立class表


                                                           


CREATE TABLE student                                                      ----------建立student表 
  (id  varchar(10)   
       CONSTRAINT banping_id_pk PRIMARY KEY,   
   last_name VARCHAR(10)   
       CONSTRAINT banping_last_name_nn NOT NULL,  
   first_name VARCHAR(10) NOT NULL UNIQUE,  
   start_date DATE DEFAULT 20170801,  
   sex VARCHAR(4)  
      CONSTRAINT student_user_type_ck CHECK  
       (sex IN('girl','boy')), 
   classID int REFERENCES class(ID)
)


create table course(   ----建立course表
sjId int primary key,  --科目ID編號,主鍵
sjName varchar(10) unique not null  --科目名稱
)
create table score(   ----建立score表
sId int primary key,  --成績ID編號,主鍵
sjId int references course(sjId),  --科目ID編號,繼承科目表的ID編號
sId int references student(id),  --學生ID編號,繼承學生表的ID編號
result float not null  --成績
)




--------更改表
alter table student modify sex varchar(6)   -----------更改表student列型別
alter table student drop last_name   --------刪除列 
sp_rename 'student.first_name','name','column'  ---重新命名列                              




---------插入資料
insert into class values ('1班','2')                                      ------------在class表中插入值(不指定列名)
insert into class values ('2班','2')
insert into class values ('1a','2年級')


  
insert into student (id, last_name, first_name, start_date, sex, classID) values (01, '三', '張', '2017-01-01', 'boy', '1班') --------------在student中插入值(指定列名)
insert into student (id, last_name, first_name, start_date, sex, classID) values (03, '五', '王', '2017-01-02', 'girl', '1班')


insert into course values(01, '語文') 
insert into course values(02, '數學')
insert into course values(03, '英語')
insert into score values(03, 02, 01, 88)
insert into score values(04, 03, 01, 89)  
insert into score values(01, 01, 01, 90.5)
insert into score values(02, 01, 03, 96.5)
insert into score values(05, 02, 03, 80.5)
insert into score values(06, 03, 03, 99)




create table classtest(
ID int primary key,
grade int)


insert into classtest select * from class                                 -----------把源資料表的記錄新增到目標資料表


-----------查詢資料
select * from student                                                     


-----------刪除資料
delete from class where ID = '1a'          -----------刪除class表中的特定值
delete from classtest         ------刪除表中的所有資料


                                       
-----------更新class表中的特定值
update class set grade = '2年級' where grade = '2'                        
update student set name = '王五' where name = '王'
update student set name = '張三' where name = '張'




 -----------刪除student表 
drop table student                                                       




---------函式
select c.name as '姓名', sum(a.result) as '總分'from score a, course b, student c where a.sjId = b.sjId and c.id = a.sId group by c.id ----查詢各學生的總成績(sum)
select c.name as '姓名', avg(a.result) as '平均分'from score a, course b, student c where a.sjId = b.sjId and c.id = a.sId group by c.id ----查詢各學生的平均分(avg)
select count(*)from student                                                                                           ----查詢學生總數
select max(a.result) as '最高分', b.sjName as '科目' from score a, course b, student c where a.sjId = b.sjId and c.id = a.sId group by b.sjId---查詢各科目最高分(max)
select min(a.result) as '最高分', b.sjName as '科目' from score a, course b, student c where a.sjId = b.sjId and c.id = a.sId group by b.sjId---查詢各科目最低分(min)
select * from student where name in ('張三','李四','趙六')         -----查詢名字為張三、李四、趙六的學生資訊(in)
select * from score where sjId = 1 order by result desc -----------從高分到低分顯示語文成績(order by)


















                             




dump database topsec1 to 'c:\20180629.bak'                                ----------匯出當前資料庫資料並備份到指定位置








load database topsec1 from 'c:\20180629.bak'                              ----------從指定位置匯入備份資料到指定的資料庫
drop database topsec1                                                     ----------清除指定的資料庫 
sp_dropdevice topsecdisk                                                  ----------清除制定的資料裝置
drop datadevice toplog                                                    ----------清除制定的日誌裝置