数据库设置主键的时候用,为什么设置自动增长

数据库设置主键的时候用,为什么设置自动增长,第1张

保证程序的正确性,主键ID首先具有唯一性,设置自动增长在前台Insert的时候不需要传入ID的值,数据库自动根据最后一个ID值增加1保证数据库主键不重复而且调用更为高效。

假如说没有设置自动增长在insert一条记录的时候需要人为传递ID值。要保证唯一性必须要先获得上条记录的ID用select然后再加一然后在执行insert从效率方面降低程序的灵活性。

个人见解。

按磁盘剩余空间的10%自动增长,这个实现不了。 如果表空间设置为自动增长,在空间不足的情况下Oracle系统会自动增长表空间的,但是也不会超过磁盘的总空间大小。 创建表空间的语法如下:create tablespace jydbdatafile 'XXX\XXX\xxdbf' --这里数据文件的路径你自己视情况定size 5120Mautoextend onnext 1024Mextent management local --这里设置表空间为本地管理

三、1select   from 职工 where 工资 < avg(工资)

    2select  from 职工 order by 工资 asc

    3select   from 职工 order by  工资 compute avg(工资) by 仓库号

    4insert into 仓库 values ('WH6','长沙',1000)

    5update 职工 set 工资 = 工资+200 where 职工号= 'E006'

    6select a名字,a仓库号,b城市 from 职工 a join 仓库 b on a仓库号=b仓库号

    7select 名字 from 职工 where 仓库号 in (select 仓库号 from 仓库, where 城市='北京')

    8delete  from 供应商 where 地址 like '%长春%'

    9 drop table 职工

    10alter table 职工 add const gz check(工资 between 1500 and 5000)

四、1create database library

on primary --默认就属于Primary 主文件组,可省略

(

/--数据文件的具体描述--/

Name='library_data', --主数据库的物理名称

Filename='d:\data\library_datamdf' ,--主数据库的物理名称

size=5MB , --主数据库的初始大小

Maxsize=20Mb,  --主数据库文件增长最大文件增长

Filegrowth =10%

)

Log on

(

/--日志文件具体描述同上--/

name='library_log',

Filename='e:\data\library_logldf',

Size=2MB,

MaxSize=10MB,

FIleGrowth=1MB

)

五、1create table 职工表(

        职工编号 char(10)primary key,

        姓名 char(30),

       性别 char(2) check  (性别='男' or 性别='女'),

       出生日期  smalldatetime check ( 出生日期 > '1960-01-01'),

       部门编号 char(10) FOREIGN KEY REFERENCES  部门表(部门编号)

2 (1)alter table 部门表 add 部门经理 char(10)

  (2)select from 图书表 where 出版社编号 = (select 出版社编号 from 出版社 where 出版社名称 = '清华大学出版社出版' )

 (3)select 图书编号,书名 from 图书表 where 书名 like '%数据库%'

 (4) select from 职工表 where 性别='女' and 部门编号 in  (select 部门编号 from 部门表 where 部门名称 = ‘文科图书室’ ) order by 出生日期 desc

(5) select 图书的编号,名称 from 图书表 where  出版社编号 in  (select 出版社编号 from 出版社表 where 出版社名称 = '机械工业出版社' ) and 部门编号 in (select 部门编号 from 部门表 where 部门名称 = '理科图书室' )

(6) select   from 职工表 order by 部门编号,性别  compute count() by 部门编号,性别

(7) select 部门编号,count() as 管理图书数目 from 图书表 group by  部门编号 having count() >1000

(9) select 图书编号,书名 from 图书表 where 部门编号 in (select 部门编号 from 职工表 where 姓名 like '%张%' )

(10) select a书名,a作者,a出版社编号,b出版社名称,b地址 into 新表 from 图书表 a join 出版社表 b on a出版社编号= b出版社编号

首先定义个函数试试

create or replace function times

(intimes number,

inaddmonth number)

return varchar2 is

Result varchar2(6);

begin

Result :=substr to_char(sysdate,'yyyy-mm-dd hh24:mi:ss',9,16)

return(Result);

end times;

设置自动增长名称为add_name

CREATE SEQUENCE add_name

increment by 1 -- 每次递增1

start with 0 -- 从1开始

nomaxvalue 90 -- 没有最大值

minvalue 0 -- 最小值=1

NOCYCLE; -- 不循环

insert into 表名 values(add_name执行进度,times);

-调用函数-

在建立表的时候设置id为自动增长的 [id] [int] IDENTITY (1, 1)

SQL语句是insert into  user(name,passwd) values (name  ,passwd)。新增一条数据 id 就会自动加1

INSERT INTO是sql数据库中的语句,可以用于向表格中插入新的行。

扩展资料

(1) 数据记录筛选:

sql="select from 数据表 where字段名=字段值 order by字段名[desc]"(按某个字段值降序排列。默认升序ASC)

sql="select from 数据表 where字段名like '%字段值%' order by 字段名 [desc]"

sql="select top 10 from 数据表 where字段名=字段值 order by 字段名 [desc]"

sql="select top 10 from 数据表 order by 字段名 [desc]"

sql="select from 数据表 where字段名in ('值1','值2','值3')"

sql="select from 数据表 where字段名between 值1 and 值2"

(2) 更新数据记录:

sql="update 数据表 set字段名=字段值 where 条件表达式"

sql="update 数据表 set 字段1=值1,字段2=值2 字段n=值n where 条件表达式"

(3) 删除数据记录:

sql="delete from 数据表 where 条件表达式"

sql="delete from 数据表" (将数据表所有记录删除)

(4) 添加数据记录:

sql="insert into 数据表 (字段1,字段2,字段3 ) values (值1,值2,值3 )"

sql="insert into 目标数据表 select from 源数据表" (把源数据表的记录添加到目标数据表)

(5) 数据记录统计函数:

AVG(字段名) 得出一个表格栏平均值

COUNT(;字段名) 对数据行数的统计或对某一栏有值的数据行数统计

MAX(字段名) 取得一个表格栏最大的值

MIN(字段名) 取得一个表格栏最小的值

SUM(字段名) 把数据栏的值相加

引用以上函数的方法:

sql="select sum(字段名) as 别名 from 数据表 where 条件表达式"

set rs=connexcute(sql)

用 rs("别名") 获取统计的值,其它函数运用同上。

查询去除重复值:select distinct from table1

(6) 数据表的建立和删除:

CREATE TABLE 数据表名称(字段1 类型1(长度),字段2 类型2(长度) )

(7) 单列求和:

SELECT SUM(字段名) FROM 数据表

参考资料——百度百科SQL insert into

你首先要有CREATE SEQUENCE或者CREATE ANY SEQUENCE权限,

CREATE SEQUENCE emp_sequence

INCREMENT BY 1 -- 每次加几个

START WITH 1 -- 从1开始计数

NOMAXVALUE -- 不设置最大值

NOCYCLE -- 一直累加,不循环

CACHE 10;

以上就是关于数据库设置主键的时候用,为什么设置自动增长全部的内容,包括:数据库设置主键的时候用,为什么设置自动增长、oracle数据库创建自动增长的表空间语句怎么写、SOL数据库题目等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9858866.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-02
下一篇 2023-05-02

发表评论

登录后才能评论

评论列表(0条)

保存