SQL知识点补充-SQL约束、索引、视图、日期、函数

SQL 是用于访问和处理数据库的标准的计算机语言。

Insert into插入
第一种形式无需指定要插入数据的列名,只需提供被插入的值即可:

insert into table_name values(value1,value2,..)

第二种形式需要指定列名及被插入的值:

insert into table_name (column1,column2,..) values(value1,value2,..);

update更新

update table_name set column1=value1,column2=value2,..  where 条件;

如果没有where语句,所有值都会被更改

delete删除

delete from table_name where 条件;

删除所有值,但表结构不变

delete from table_name;delete * from table_name;

create table 建表

create table 表名 (
column_name1 data_type(size),
city   varchar(225)
);

SQL约束
not null 非空约束
unique 要求每行必须有唯一值
primary key 主键约束,要求非空且唯一
foreign key 保证一个表中数据匹配另一个表中值的参照完整性
default 规定没有给列赋值时的默认值

create table Persons(
	ID int not null
	lastName varchar(225) not null,
	FirstName varchar(225) not null,
	age int
	)

添加约束

alter table Persons modify Age int not null

删除约束

alter table Persons modify Age int null

SQL主键约束
主键约束:唯一非空值

alter table 表名 add primary key (列名)
alter table 表名 drop primary key

check 约束
CHECK 约束用于限制列中的值的范围。

如果对单个列定义 CHECK 约束,那么该列只允许特定的值。
如果对一个表定义 CHECK 约束,那么此约束会基于行中其他列的值在特定的列中对值进行限制。

创建:

alter table 表名 add check (列名>0)
alter table 表名 add constraint1 check (2 > 0 and2 = '')

撤销:

alter table 表名 drop check 列名

default约束
设置默认值

创建时加约束:

create table 表名
(列名  varchar default 'sande')

创建后加约束:

alter table 表名 alter 列名 set default 'sande'

索引
创建索引,以便更加快速高效地查询数据。

#创建简单索引,允许重复
create index 索引名 on 表名(列名)
#创建唯一索引,不允许重复
create unique index 索引名 on 表名(列名)
#删除索引
alter table 表名 drop index 索引名
#删除表
drop table 表名
#删除数据库
drop database 数据库名
#删除表中数据,不删除表结构
truncate table 表名

自增字段:auto-increment

create table 表名:
(id int not null auto-increment)

默认地,AUTO_INCREMENT 的开始值是 1,每条新记录递增 1。
要让 AUTO_INCREMENT 序列以其他的值起始,请使用下面的 SQL 语法:

alter table 表名 auto-increment = 100

视图(views)
创建

create view 视图名 as 
select 列名
from 表名
where 条件

删除

drop view 视图名

日期(Date)

select now(),curdate(),curtime()
#结果2008-11-11 12:45:34	与 2008-11-11	与12:45:34

在这里插入图片描述
在这里插入图片描述
函数
在这里插入图片描述
mysql 中没有first()与last()函数,用的order by +limit 1

在这里插入图片描述
having 与where:
WHERE 关键字无法与聚合函数一起使用。
HAVING 子句可以让我们筛选分组后的各组数据

exists运算符
EXISTS 运算符用于判断查询子句是否有记录,如果有一条或多条记录存在返回 True,否则返回 False。

SELECT column_name(s)
FROM table_name
WHERE EXISTS
(SELECT column_name FROM table_name WHERE condition);

例子:查找总访问量(count 字段)大于 200 的网站是否存在。

select w.name,w.ur1
from websites w
where exists (select count from FROM access_log WHERE Websites.id = access_log.site_id AND count > 200);

在这里插入图片描述
也可以与not一起用
在这里插入图片描述
ucase()函数
UCASE() 函数把字段的值转换为大写
LCASE() 函数把字段的值转换为小写 lcase(列名)

select ucase(列名) from 表名;

mid()函数
MID() 函数用于从文本字段中提取字符

select mid(列名,start[,length]) from 表名;

在这里插入图片描述
DATE_FORMAT(Now(),‘%Y-%m-%d’)

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值