必知必会——SQL语句基本语法整理

 

一、数据库表

1. 新建数据库
2. 新建数据库表
复制代码
create table 表名(列名1 数据类型 [约束条件]
                ,列名2 数据类型 [约束条件]
                ,……
                )

'''
创建一个demo1表
a列数据类型为int,是主键
b列数据类型为char,该列的数据必须唯一不可重复
c列数据类型为短整型samllint, 该列必须非空
d列数据类型为可变字符串,无约束条件
'''
create table demo1(a int primary key
                , b char(3) unique
                , c smallint not null
                , d varchar(30)
                )

'''
创建一个参照demo1的表demo2
demo2中的y列是参照了被参照表demo1中的主码a
'''
create table demo2(x int primary key
                , y int
                , foreign key(y) references demo1(b)
                )
复制代码

 

3. 数据库表操作
  • 修改基本表
复制代码
# 修改表名
alter table 表名 rename 新表名

# 新增列
alter table 表名 add [column] 新列名    数据类型    约束
# 示例,为demo1表添加一列e
ALTER TABLE demo1 ADD e INT not null

# 删除列
alter table 表名 drop [column] 列名
# 示例,删除demo1中的列e
alter table demo1 drop [column] e

# 修改列 
alter table 表名 modify column 列名 数据类型        # 修改数据类型
alter table 表名 change column 原始列名 新列名 数据类型    # 修改列名
复制代码

 

  • 删除基本表
drop table 表名
4. 数据库表索引
复制代码
# 建立索引
create index 索引名 on 表名(列名)    # 主键不能用create index创建索引
alter table 表名 ADD INDEX 索引名(列名)    # 修改表创建索引

# 修改索引
# mysql没有修改索引的操作,可以先删除原始索引再新建一个同名索引

# 删除索引
ALTER TABLE 表名 DROP INDEX 索引名
复制代码

 

二、数据查询操作

复制代码
# 列查询
select 列名1[,列名2…] from 表名
select 列名 新列名 from 表名        # 可以修改查询结果展示时候的列名

# 带条件列查询
select 列名 from 表名 where 查询条件

# 消除取值重复的行
select distinct 列名 from 表名

# order by
select 列名 from 表名 where 查询条件 order by 列名 [DESC|ASC]    # 对查询结果进行排序,默认为ASC升序

# 聚集函数
'''
count(*)    #统计元组个数
count([distinct|all] 列名)     # 统计一列中值的个数(去重/全部)
sum([distinct|all] 列名)    # 计算一列的总和(数值型)
avg([distinct|all] 列名)    # 计算一列的平均值(数值型)
max([distinct|all] 列名)    # 求最大值
min([distinct|all] 列名)    # 求最小值
'''
select count(*) from 表名    # 查询表中数据个数
select count(列名) from 表名        # 统计某一列的值的个数
select avg(列名) from 表名        # 统计该列的平均值

# group by子句
select 列名 from 表名 group by 列名        # 对查询结果进行分组,该列中值相同的为一组
select 列名 from 表名 group by 列名 having 条件    # 条件查询,再对查询结果分组。where 与group by不能同用。

# 连接查询
select 表1.列名…, 表2.列名… from 表1, 表2 where 表1.某列名=表2.某列名
# 示例:student存放学生信息,course存放选课信息,现在需要查询学生对应的选课信息(哪个学生选了哪门课)
select student.name, course.name from student, name where student.studentId=course.studenId

# 左外连接
select 表1.列名…, 表2.列名… from 表1 left outer join 表2 where 表1.某列名=表2.某列名
复制代码

 

posted @   陈晓猛  阅读(140)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具
点击右上角即可分享
微信分享提示