SQL基本语法---小白都能看懂

SQL基本语法—小白都能看懂

本篇主要从以下四个方面介绍,主要是比较基础的语法,让每一位学习者都能看懂。
(本文中数据库名为testDemo, 数据表的名字为tb_user)

  • DDL(数据库定义语言)
  • DML(数据库操纵语言)
  • DQL(数据库查询语言)
  • DCL(数据库控制语言)

1.DDL(数据库定义语言)
DDL主要是针对创建表时对表结构的定义,使用中主要体现在以下三个关键字上
(注:数据库标准中要求关键字都应大写,为了学习方便,这里进行小写)

①create 
 create主要用于创建数据库和数据表,基本语法如下
-- 创建数据库
create database if not exists testDemo;
-- 创建数据表
create table if not exists tb_user;
②alter
alter主要实现基于原表结构的基础上进行相应的修改,主要有以下三种用法,以代码的形式展现给大家(A-C)
   A. 基于原有的表结构添加新列
-- 语法:alter table tb_user add ...
-- 例子:为原表添加姓名列(user_name)
   alter table tb_user 
   add 
   user_name varchar(20) not null;
-- 也可以一次添加多列,在为其增加编号(user_id)和年龄(user_age)列
   alter table tb_user 
    add 
    (
     user_id varchar(20) not null,
     user_age int(11) not null
    );
    
  B.基于原表结构修改已有列属性
  -- 将编号列(user_id)的类型改为int型,并取名为user_number
   alter table tb_user
   change
   user_id user_number int(11) not null;
   
  C.删除已存在的列
   -- 删除年龄列(user_age)
    alter table tb_user
    drop
    user_age;
③drop 删除表、数据库(直接把表、库空间删了)
   -- 删除数据库testDemo
    drop database testDemo;
    
   -- 删除数据表tb_user
    drop table tb_user;
  1. DML(数据库操纵语言)
    DML主要用来向数据表中增(insert)、删(delete)、改(update)数据,还是以代码的形式展示。
    这里先给出一段创建表的代码,指定一些字段,看起来更加直观一点。
create table if not exists tb_user(
user_id varchar(20) primary key,-- 编号,并设置为主键
user_name varchar(25) , -- 姓名
user_age int , -- 年龄,设置非空
user_sex varchar(5) , -- 性别
user_address varchar(255)  -- 住址
);

表中给出tb_user表的5个字段

 ①insert 
-- 给指定的字段插入信息,只给编号、姓名、年龄插入信息(插入多行,逗号隔开)
  insert into tb_user(user_id,user_name,user_age) 
  values('1110','张三', 23), (....);
  
-- 逐行插入数据,按数据表创建的字段顺序插入
insert into tb_user values('1112', '李四', 21,'男','某某省某某市某某区'),(....);
②delete
-- 清空表数据,但是表还在
   delete from tb_user;
   
-- 按条件删除某些行数据,删除年龄大于21的行数据
   delete from tb_user where user_age>21;
③update
-- 更新整列的信息,把整张表的姓名列改为‘张伟’
 update tb_user set user_name = '张伟';
 
-- 更新某一行中部分列的数据,把编号为‘1111’的用户姓名更新为‘Mary’,年龄更新为25
update tb_user set user_name='Mary',user_age=25 where user_id='1111';

-- 更新多行数据,把年龄小于20的所有用户姓名更新为‘Tony’
 update tb_user set user_name='Tony' where user_age<20;
 

3.DQL(数据库查询语言)
DQL主要是对数据进行检索,是SQL语句的“灵魂”。
假设现在有另外一张表tb_product(主要为后面多表连接查询做准备),里面的字段有
(product_id, user_id, product_name,product_name)
可见,tb_product表中有一个字段和tb_user是相等的,即user_id。

  A.普通查询
  -- 查询所有
   select * from tb_user;
   
   -- 查询指定字段,按指定查询条件查找相应用户编号和姓名
   select user_id, user_name from tb_user where (查询条件)
   
  B.内连接,只返回满足连接条件的数据,即只返回两张表中user_id相等的数据
   select * from tb_user 
   inner join tb_product
   on tb_user.user_id=tb_product.user_id;
   
  C.左外连接,除了返回满足连接条件的数据外,还返回左表中不满足连接条件的数据,右表的相应字段补为null,这里的左表相当于是tb_user
  select * from tb_user 
  left join tb_product 
  on tb_user.user_id=tb_product.user_id;
  
  D.右外连接,除了返回满足连接条件的数据外,还返回右表中不满足连接条件的数据,左表的相应字段补为null,这里的右表相当于是tb_product
   select * from tb_user 
   right join tb_product 
   on tb_user.user_id=tb_product.user_id;
   
   E.全连接,左外连接和右外连接合并的结果
   select * from tb_user 
   full join tb_product 
   on tb_user.user_id=tb_product.user_id;
   

详细DQL查询语句参考MySQL查询指令

4.DCL(数据库控制语言)
DCL主要用于授权管理,详细参考上一篇(Navicat Premium远程连接MySQL数据库

注:多表连接查询还要会区分驱动表和被驱动表,这对于SQL检索性能很重要,有兴趣大家可以交流学习。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值