ICode9

精准搜索请尝试: 精确搜索
首页 > 数据库> 文章详细

SQL基础语法

2021-05-10 23:33:33  阅读:250  来源: 互联网

标签:删除 基础 mytable 语法 cascade SQL table TABLE SELECT


一、DDL

1.创建表

CREATE TABLE mytable (
 # int 类型,不为空,自增
id INT NOT NULL AUTO_INCREMENT,
 # int 类型,不可为空,默认值为 1,不为空
col1 INT NOT NULL DEFAULT 1,
 # 变长字符串类型,最长为 45 个字符,可以为空
col2 VARCHAR(45) NULL,
 # 日期类型,可为空
col3 DATE NULL,
 # 设置主键为 id
 PRIMARY KEY (`id`));

2.修改表

2.1 增

2.1.1 添加列

如果想在一个已经建好的表中添加一列,可以用诸如:

alter table TABLE_NAME add column NEW_COLUMN_NAME varchar(20) not null;

这条语句会向已有的表中加入新的一列,这一列在表的最后一列位置。如果我们希望添加在指定的一列,可以用:

alter table TABLE_NAME add column NEW_COLUMN_NAME varchar(20) not null after COLUMN_NAME;

注意,上面这个命令的意思是说添加新列到某一列后面。如果想添加到第一列的话,可以用:

alter table TABLE_NAME add column NEW_COLUMN_NAME varchar(20) not null first;

2.2 删

2.2.2 删除列

ALTER TABLE mytable DROP COLUMN col;

2.2.3 删除整张表

DROP TABLE mytable;

2.2.4 删除整张表的数据

TRUNCATE TABLE可以清空表,也就是删除所有行。

TRUNCATE TABLE mytable;

2.2.5 删除有外键约束的表

drop table student cascade constraints;

2.2.6 删除拥有对象的用户

drop table 用户名 cascade;

在 Oracle 使用 Drop 语句时,例如: drop table CUSTOMER_INFO cascade constraints; 在删除主键约束时:

  • 使用 cascade 关键字,可以删除参照该列的那些外键和使用 on delete cascade 关键字来级联删除参照该关键字的数据。

  • 使用 cascade constraint 在删除列的同时删除约束。例如主键约束等等。

  • 使用 Drop table table_a cascade constraints 可以以删除关联 table table_a 的 constraint 来达成你 drop table table_a 的目的,原来属于表 table_b 的 foreign key constraint 已经跟随着被删除掉了,但是,储存在 table table_b 的资料可不会被删除,也就是说 Drop table cascade constraints 是不影响到存储于objec 里的 row data。

总的来说,对于那些处于包含了多个列的约束中的列的删除,我们一定要使用 cascade constraint 关键字,否则没有必要,虽然使用了也是没有错误的。

2.3 改

2.3.1 修改列名

alter table 表名 rename column 列名 to 新列名

2.3.2 修改列的属性

alter table 表名 modify 列名 varchar2(字符长度)/number(精度)/char(数据类型/default ‘默认值’);

2.3.3 重命名表

rename 表名 to 新表名

 

二、DML

1.增

1.1 普通插入

INSERT INTO mytable(col1, col2) VALUES(val1, val2);

1.2 插入检索出来的数据

INSERT INTO mytable1(col1, col2) SELECT col1, col2 FROM mytable2;

1.3 将一个表的内容插入到一个新表

CREATE TABLE newtable AS SELECT * FROM mytable;

1.4 向表中添加注释

comment on table 表名 is ‘注释文字’

 

2.删

2.1 删除某些条数据  

DELETE FROM mytable WHERE id = 1;

 

3.改

3.1 更新表数据:

UPDATE mytable SET col = val WHERE id = 1;

 

4.查

4.1 DISTINCT

相同值只会出现一次。它作用于所有列,也就是说所有列的值都相同才算相同。

SELECT DISTINCT col1, col2
FROM mytable;

4.2 LIMIT

限制返回的行数。可以有两个参数,第一个参数为起始行,从 0 开始;第二个参数为返回的总行数。

返回前 5 行:

SELECT *
FROM mytable
LIMIT 5;
SELECT *
FROM mytable
LIMIT 0, 5;

返回第 3 ~ 5 行:

SELECT *
FROM mytable
LIMIT 2, 3;

4.3 通配符

通配符也是用在过滤语句中,但它只能用于文本字段。

  • % 匹配 >=0 个任意字符;

  • _ 匹配 ==1 个任意字符;

  • [ ] 可以匹配集合内的字符,例如 [ab] 将匹配字符 a 或者 b。用脱字符 ^ 可以对其进行否定,也就是不匹配集合内的字符。

使用 Like 来进行通配符匹配。

SELECT *
FROM mytable
WHERE col LIKE '[^AB]%'; -- 不以 A 和 B 开头的任意文本

不要滥用通配符,通配符位于开头处匹配会非常慢。

 

标签:删除,基础,mytable,语法,cascade,SQL,table,TABLE,SELECT
来源: https://www.cnblogs.com/aaronRhythm/p/14753385.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有