SQL语句

本文详细介绍了SQL的基本语法,包括创建和管理数据库、表的操作、数据的增删改查、条件查询、排序、分组及聚合函数的使用,同时涵盖了主键、非空、唯一和外键等约束的概念和应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

sql


SQL是结构化查询语言
语法:单行书写以分号结尾,不匹配大小写
注释方式 – 注释 (两个横杠一个空格)
多行注释/注释内容/与java并无区别
sql语法
创建数据库:
create database 数据库名;
create database if not exists 数据库名;
create database 数据库名 character set 字符集; – 字符集有gbk和utf8(中文)
查询数据库:
show databases;
show create database 数据库名 ;-- 查看数据库创建语句避免关键字重复
查看当前使用的数据库:
select database();
更改和删除数据库:
alter database 数据库名 default character set 字符集;
drop database 数据库名;
use 数据库名;
表的创建:
create table 表名{
字段名 数据类型,
字段名 数据类型
}
create table 新表名 like 旧表名;
查看表:
show tables 表名;
show create table 表名;
desc 表名; – 查看表结构
删除更改表:
drop table 表名;
alter table 表名 add 列名;
alter table 表名 modify 列名 新类型;
alter table 表名 change 旧列名 新列名 新类型;
alter table 表名 drop 列名;
rename table 表名 to 新表名;
alter table 表名 character set 字符集;
插入数据:
insert into 表名(字段名1 ,字段名2,…)values(值一,值二,…);
insert into 表名 values(值一,值二,…); – 不写字段名默认要插入所有的值如果没有值就用null
查询表中数据记录:
select * from 表名 where 条件and条件2;
除了数字类型其他要用引号引起来
select
字段列表
from
要查的表列表
where
条件列表中间用and or连起来
group by
分组列表
having
分组后的条件
order by
顺序还是倒叙
limit
分页
去除重复:select distinct 字段名 from 表名;
计算列 select name,math,english,math+english from student;
起别名用AS 或者空格
null+任何数=null,计算时可以讲有可能为null的字段用ifnull(字段名,0);
条件查询where:
in(集合) && || !
Like模糊查询_表示一个字符%表示多个字符比如查询第二个字为马的
select name from studnet where name like ‘_马%’;
条件为null不能用等于,只能用is null 和is not null;
and 和or连接条件一和二
排序查询order by:
ASC 默认升序
DESC 默认降序
例子: select * from student order by id desc; – 按照id降序排列
分组查询group by :
可以按照男女生分组
例子:select *from student group by sex;
聚合函数:
count:计算个数 max:计算最大值
min:计算最小值 sum:计算和
avg:计算平均值
聚合函数的计算排除了null,解决方案还是ifnull(字段名,)
例子:select sex, count(id) from student group by sex;
having 和where 的区别:
where在分组前限定,如果不满足条件则不参与分组,having 在分组后限定,不满足条件不会被查询出来,
where不能跟聚合函数,having 后面可以跟聚合函数的判断
分页查询limit:
limit 开始的索引,每页要查询的条数;
开始的索引=(页数-1)*每页要查询的条数;
(limit只能在Mysql 中用)
删除数据:
delete from 表名[ where 条件]
如果不加条件会删除所有值
truncate table 表名; – 先删除表在创建一张一模一样的表
修改数据
update 表名 set 列名1=值一,列名2=之二,[where 条件]
不加条件会修改所有的记录
约束:
概念:对表中数据进行限定,保证数据的正确性和有效性完整性
分类:
1.主键约束:primary key
主键约束保障唯一和不为空一般id用
一张表只能有一个主键,
主键就是表中的唯一标识
创建表时直接写在类型后边
例子:
create table 表名{
字段名1 类型1 primary key,
字段名2 类型2
};
可以配合自动增长使用auto_increment,给值时可以给null自动在上一个的基础上加一
删除主键 : alter table 表名 drop primary key;
添加主键 : alter table 表名 modify id int primary key;

2.非空约束:not null
不为空
删除约束:Alter table 表名 modify 添加了非空约束的字段名 类型 ;
添加约束Alter table 表名 modify 要添加非空约束的字段名 类型 not null;
3.唯一约束:unique
唯一,可以用null但只能用一次
删除唯一约束:Alter table 表名 drop index 要删除唯一约束的字段名;
添加: alter table 表名 modify 字段名 类型 unique;
4.外键约束:foreign key
创建表时放最下面语法
外键时可以讲多表联系的手段使得数据库设计的范式提高等级
constraint 外键名称 foreign key(外键列名称) references 主表名称(主表列名称);
如主表为部门表,员工表中加入外键
删除外键:alter table 表名 drop foreign key 外键名称;
添加外键:
alter table 表名 add constraint 外键名称 foreign key(外键字段名称) references 主表名称(主表列名称)
级联操作:
加外键时设置级联更新 加到外键语句后边 on update cascade;
级联删除:
on delete cascade; – 删除部门时员工也会跟着被删除;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值