新建表sql语句

2022-11-03 16:56:11 浏览数 (2)

一、新建表 新建学生表(student):

代码语言:javascript复制
create table student
(
id int not null,
name varchar2(50),
sex varchar2(25),
birthday varchar2(225),
createtime timestamp,
primary key(id),
t_id int FOREIGN KEY REFERENCES teacher(t_id)           //一个外键
);

<!--可建立联合主键,例如primary key(id,name),这样id和name都是主键,且id不允许重复,name也不允许重复。-->

给表添加主键、外键:

代码语言:javascript复制
<!--为没有添加主键的表添加主键,这里是复合主键的例子-->
ALTER TABLE student ADD CONSTRAINT pk_studentid PRIMARY KEY (id,name)
<!--为已经添加“有名字的”主键的表删除主键,这里删除的名为pk_studentid的主键-->
ALTER TABLE student DROP CONSTRAINT pk_studentid

<!--为没有添加外键的表添加外键,这里是添加多个外键的例子-->
ALTER TABLE student ADD CONSTRAINT fk_students FOREIGN KEY (t_id) REFERENCES teachers(t_id)
<!--为已经添加“有名字的”外键的表删除外键,这里删除的名为fk_students的外键-->
ALTER TABLE student DROP CONSTRAINT fk_students

给表和字段添加注释:

代码语言:javascript复制
<!--给表添加注释-->
comment on table student is '学生基本信息';
<!--给表中字段添加注释-->
comment on column student.birthday is '出生日期';

建立自增序列sequence(可选):

代码语言:javascript复制
CREATE SEQUENCE student_sequence
      increment by 1    -- 每次递增1
      start with 1       -- 从1开始
      nomaxvalue      -- 没有最大值
      minvalue 1       -- 最小值=1
      NOCYCLE      -- 不循环

建立触发器trigger(可选):

代码语言:javascript复制
CREATE OR REPLACE TRIGGER BeforeStudentInsert BEFORE INSERT ON student FOR EACH ROW BEGIN SELECT student_sequence.nextval INTO :new.id FROM dual;
END;

二、对表的修改 1.给表重命名 语法:alter table table_name rename to new_table_name; 例子:alter table student rename to new_student; 2.给表添加字段 语法:alter table tablename add (column datatype [default value][null/not null],….); 例子: alter table student add (teachername varchar2(30) default ‘张三’ not null); 3.修改表字段 语法:alter table tablename modify (column datatype [default value][null/not null],….); 例子:alter table student modify (teachername varchar2(30) default ‘张三’ not null); 4.删除表字段 语法:alter table tablename drop (column); 或者alter table tablename drop column column_name 例子:alter table student drop column teachername; 5.主键约束 添加有名称的主键约束:alter table table_name add constraint pk_name primary key (id); 删除有名称的主键约束:alter table table_name drop constraint pk_name; 6.修改表字段类型 例子:alter table student alter column birthday decimal(18, 4) not null

三、简单的sql语句(增删改查)

1.插入(insert) 向Student表中插入一条数据:

代码语言:javascript复制
语法:insert into 表名称 values (值1,值2,······) 例子:insert into Student values (1,'zhangsan','男','1992-01-01')

2.删除(delete) (1)删除特定条件的数据

代码语言:javascript复制
语法:DELETE FROM 表名称 WHERE 列名称 = 值 例子:delete from Student where name ='zhangsan'

(2)删除表中全部数据

代码语言:javascript复制
语法:DELETE FROM 表名称 例子:delete from Student

(3)清空表数据:

代码语言:javascript复制
语法:TRUNCATE TABLE 表名称
例子:truncate table tb            <!-- 只清空表中数据,但是保留表 -->

(4)删除表:

代码语言:javascript复制
语法:DROP TABLE 表名称
例子:drop table Student           <!-- drop会连表一起删除 -->

3.更新(update)

代码语言:javascript复制
语法:UPDATE 表名称 SET 列名称 = 新值 WHERE 列名称 = 某值 例子:update Student set name = 'lisi',sex='男' where id=1

4.查询 (1)查询表中所有数据

代码语言:javascript复制
语法: select * from 表名
例子: select * from Student

(2)查询表中满足某条件的数据

代码语言:javascript复制
语法:SELECT * FROM 表名称 WHERE 列 运算符 值 AND 列 运算符 值 例子:select * from Student where sex= '男' and name='lisi' 

(3)模糊查询

代码语言:javascript复制
语法:SELECT 列 FROM 表名称 WHERE 列 LIKE 值 例子:SELECT * FROM Student WHERE name LIKE 'li'

(4)去除查询结果中的重复值 用distinct可以去处重复值,保留相同值,加到查询内容的前面做修饰。 例子:SELECT distinct name FROM Student <!-- 这会去除重复的名字,只保留一条重复的数据显示 --> (5)查询结果排序 升序:

代码语言:javascript复制
select * FROM student ORDER BY id                       <!--order by 默认是升序-->

降序:

代码语言:javascript复制
select * FROM Student ORDER BY id DESC                  <!--在后面加desc则排序规则是降序-->

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/181242.html原文链接:https://javaforall.cn

0 人点赞