新建表sql语句

新建表sql语句一、新建表新建学生表(student):createtablestudent(idintnotnull,namevarchar2(50),sexvarchar2(25),birthdayvarchar2(225),createtimetimestamp,primarykey(id));给表和字段添加注释:commentonta

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE稳定放心使用

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

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也不允许重复。-->

给表添加主键、外键:

<!--为没有添加主键的表添加主键,这里是复合主键的例子-->
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

给表和字段添加注释:

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

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

CREATE SEQUENCE student_sequence
      increment by 1    -- 每次递增1
      start with 1       -- 从1开始
      nomaxvalue      -- 没有最大值
      minvalue 1       -- 最小值=1
      NOCYCLE      -- 不循环

建立触发器trigger(可选):

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表中插入一条数据:

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

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

语法:DELETE FROM 表名称 WHERE 列名称 = 值 例子:delete from Student where name ='zhangsan'

(2)删除表中全部数据

语法:DELETE FROM 表名称 例子:delete from Student

(3)清空表数据:

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

(4)删除表:

语法:DROP TABLE 表名称
例子:drop table Student           <!-- drop会连表一起删除 -->

3.更新(update)

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

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

语法: select * from 表名
例子: select * from Student

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

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

(3)模糊查询

语法:SELECTFROM 表名称 WHERELIKE 值 例子:SELECT * FROM Student WHERE name LIKE 'li'

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

select * FROM student ORDER BY id                       <!--order by 默认是升序-->

降序:

select * FROM Student ORDER BY id DESC                  <!--在后面加desc则排序规则是降序-->
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

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

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • hibernate5二级缓存配置

    hibernate5二级缓存配置hibernate默认有一个一级缓存,就是默认的Session缓存,当我们做了一次查询,hibernate会把这个结果缓存起来,叫做一级缓存,当我们接着在这个Session会话里面再做一次同样条件的查询,hibernate不会再次查询数据库,而是直接在一级缓存中获取结果并返回。一级缓存是内置的,他也不能被卸载。一级缓存是指在同一个Session会话内的查询做的缓存,如果跨了Session,或者当前…

    2022年5月23日
    28
  • 网络爬虫——scrapy入门案例

    网络爬虫——scrapy入门案例一、概述Scrapy,Python开发的一个快速、高层次的屏幕抓取和web抓取框架,用于抓取web站点并从页面中提取结构化的数据。Scrapy用途广泛,可以用于数据挖掘、监测和自动化测试.其最初是为了页面抓取(更确切来说,网络抓取)所设计的,后台也应用在获取API所返回的数据(例如AmazonAssociatesWebServices)或者通用的网络爬虫.Scrapy吸引人的地方在于它是一个框架,任何人都可以根据需求方便的修改。它也提供了多种类型爬虫的基类,如BaseSpider

    2022年6月26日
    29
  • 史上最全的中高级JAVA工程师-面试题汇总

    史上最全的中高级JAVA工程师-面试题汇总史上最全的java工程师面试题汇总,纯个人总结,精准无误。适合中高级JAVA工程师。

    2022年6月13日
    23
  • matlab 关闭axis的图,使用MATLAB中axis实现图形坐标控制[通俗易懂]

    matlab 关闭axis的图,使用MATLAB中axis实现图形坐标控制[通俗易懂]Matlab对图形风格的控制比较完备。一方面,在最通用的层面上,采用了一系列考虑周全的默认设置。另一方面,可用户根据需要去自己设置。坐标控制指令axis使用比较简单,用于控制坐标的可视,取向、取值范围和轴的高宽比等。代码实现程序如下:clearall;closeall;clc;t=0:2*pi/99:2*pi;x=1.5*cos(t);y=3.25*sin(t);subplot(2,3,…

    2022年5月20日
    42
  • [摘]UML学习一:标准建模语言UML的内容

    [摘]UML学习一:标准建模语言UML的内容

    2021年7月24日
    53
  • 业务流程重组的概念简称_流程管理

    业务流程重组的概念简称_流程管理业务流程重组的概念根据Hammer与Champy的定义,“业务流程重组就是对企业的业务流程(Process)进行根本性(Fundamental)再思考和彻底性(Radical)再设计,从而获得在成本、

    2022年8月3日
    6

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号