Sybase ASE系列第四讲:常用SQL语句
sybase 常用sql语句
1.sybase 常用DDL
Sybase中DDL语句不能修改字段的数据类型,只能修改空与非空
1.删除列 ALTER TABLE table_name DELETE column_name go 2.增加列 ALTER TABLE table_name ADD (column_name DATA_TYPE [NOT] NULL) go eg: ALTER TABLE test_table ADD vend_no INT NULL go 3.修改列的空与非空 ALTER TABLE table_name MODIFY column_name [NOT] NULL go 4.修改列名 ALTER TABLE table_name RENAME old_column_name TO new_column_name go 5.快速建立临时表 SELECT * INTO [#]table_name FROM ..... go 6.修改表名 ALTER TABLE old_table_name RENAME new_table_name go 7.增加主键约束 ALTER TABLE tb_name ADD CONSTRAINT pk_name PRIMARY KEY(col_name,..) go 8.删除主键约束 ALTER TABLE tb_name DROP CONSTRAINT pk_name go 9.建立自增长字段,与Oracle的SEQUENCE类似 CREATE TABLE TMP_001 (RES_ID INTEGER IDENTITY NOT NULL) go 10.添加表注释 COMMENT ON TABLE table_name IS '....' go 11.创建索引 CREATE INDEX index_name ON table_name(column_name) go
2.sybase 两表关联更新
Another way to give each employee a pay increase with the department bonus:
update Employees set emp.salary = emp.salary + dept.bonus from Employees as emp inner join Departments as dept ON emp.DepartmentID = dept.DepartmentID go
3.sybase 批量插入
sybase ase中没有类似mysql的 insert into table values(xxxx) (xxxxx) 那样的语法。
sybase向一个表使用insert into 插入数据的时候,有2种方式:
一、insert into table select from另外的表 ---- 这种方式根据你写的select语句,可以一次插入多条记录。
二、insert into table values(......) --- 这种方式没插入一条记录,必须写一次 insert into values(...) 语句。
你可以在执行go之前提供多个insert into values(...)语句,这样可以实现你说的一次插入多条记录:比如:
insert into t values(1,'a') insert into t values(2,'b') insert into t values(3,'c') go
4.sybase 常用SQL
-- 1.查询所有表名 SELECT name FROM CIS..sysobjectswhere type = 'U' ORDER BY name -- 2.查询所有视图名 SELECT name FROM CIS..sysobjects WHERE type = 'V' ORDER BY name -- 3.查询所有存储过过程 SELECT name FROM CIS..sysobjects WHERE type = 'P' ORDER BY name -- 4.查询所有字段名 SELECT a.name ,b.name FROM syscolumns a LEFT JOIN systypes b ON a.usertype = b.usertype INNER JOIN sysobjects d ON a.id = d.id AND d.name <> 'dtproperties' LEFT JOIN syscomments e ON a.cdefault = e.id WHERE d.name = 'order_eta_detail' -- 5.临时表批量插入数据 CREATE TABLE #sku_disc ( sku_no INT NOT NULL ,vend_no INT NULL ,vpl_no INT NULL ) INSERT INTO #sku_disc (sku_no,vend_no,vpl_no)(select 3,3,3) union all (select 2,2,2) SELECT * FROM #sku_disc -- 6.查询索引信息 sp_helpindex [table_name]
sybase 创建自增表
-- Identity 字段必须定义Gap,值视具体情况而定(10-10000),表操作越频繁,定义的Gap应越大 CREATE TABLE #t_details( id int identity ,sku_no int not NULL ,rebate_amt money not NULL ,begin_date datetime NULL ,active char(1) not NULL ,close_date datetime NULL ,close_id int NULL ,entry_datetime datetime not NULL ,entry_id int not NULL ) WITH identity_gap = 500 drop table #t_details
If the field length is too long, it will be automatically intercepted
CREATE TABLE #test_table (test_column VARCHAR(1) NULL) GO INSERT INTO #test_table VALUES ('aa') GO SELECT * FROM #test_table GO
作者:努力为明天
-------------------------------------------
个性签名:独学而无友,则孤陋而寡闻。做一个灵魂有趣的人!
如果觉得这篇文章对你有小小的帮助的话,记得在右下角点个“推荐”哦,博主在此感谢!
合集:
Sybase ASE系列
分类:
数据库
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· winform 绘制太阳,地球,月球 运作规律
· 上周热点回顾(3.3-3.9)