SQL——基础+查询基础

关键字:

  1. 数据定义语言(DDL)
    create:创建数据库和表等对象
    drop:删除数据库和表等对象
    alter:修改数据库和表等对象结构

  2. 数据操纵语言(DML)——使用最多
    select:查询表中的数据
    insert:插入
    update:更新数据
    delete:删除表中的数据

  3. 数据控制语言(DCL)
    commit: 确认对数据库中的数据进行的变更
    rollback:取消对数据库中的数据进行的变更
    grant: 赋予用户操作权限
    revoke: 取消用户的操作权限

PS:1.SQL关键字的不区分大小写,语句以分好结尾
2.一般地:关键字大写,表明的首字母大写,其余小写
插入到表中的数据区分大小写

书写方式

字符串(包括日期)用单引号括起来,数字无需加

创建数据库:create database xxx;(xxx为数据库名称)

表的操作:

创建表

create table xxx
(<列名1> 数据类型 <该列所需约束><列名2> 数据类型 <该列所需约束><列名3> 数据类型 <该列所需约束>...
)

约束为null或not null(该列可以有空白值or必须输入数据)
例:

create table '商品表'
(<‘商品编号’ nchar(10) not null,
‘商品名称’ nchar(10) not null,
‘商品种类’ nchar(10) not null,
‘销售单价’ nchar(255) not null,
'进货单价' nchar(255),
'登记日期' nchar(255),
...

在这里插入图片描述

  • 列名的数据类型应指定:integer类型(用于储存整数),char类型(定长字符串),varchar类型(不定长),date类型(储存日期年月日)
    其中char(xxx)表示该列可以存储的字符串的长度为xxx(最大长度),如指定char(8)并输入‘abc’,则会以‘abc ’的形式储存;varchar

  • 列的编号:从左至右:1,2,3,…

删除表:drop tabel 表名;

删除操作无法恢复(删除表、数据等)

变更表

alter table 表名 add (列名1,列名2,...)    ---新增列
alter table 表名 drop 列名               ---删除列
sp_rename '旧表名','新表名'             ----变更表名

主键约束primary key(列名)

作用:可以通过主键对应的列取出特定的一行数据(前提是这列的数据不重复)

查询基础

select语句

  • 查询特定的列
select 列名 from 表名;
select 列名1,列名2 from 表名;   ---列名为中文时不用加引号
select * from 表名;           ---查询表中的全部列

在这里插入图片描述

  • 为列设别名:select 列名 as 别名 from 表名;
    别名可为中文,但是需要用双引号括起来
select 商品编号 as id,
       商品名称 as 'name',
	   销售单价 as price
from Products;

在这里插入图片描述

  • 查询常数:select ‘常数名’ as 常数类型
  • 删除重复行:select distinct 列名 from 表名
    1.NULL 值也会作为重复项被删除
    2.DISTINCT 关键字只能用在第一个列名之前
select distinct 商品种类 from Products;

在这里插入图片描述

  • where:指定查询数据的条件
select 列名,from 表名 where 条件表达式;

例:

select distinct 商品名称,商品种类 from Products where 商品种类='衣服';
select distinct 商品名称 from Products where 商品种类='衣服';

在这里插入图片描述
在这里插入图片描述

  • 注释:
    单行报告:--
    多行报告:/*.......*/

算术运算符and比较运算符

  1. 四则运算符:+,-,*,/
  • 包含NULL的运算,结果均为NULL
    例:
select 商品名称,销售单价,销售单价*2 as 销售单价x2 from Products;
select (1+2)*3 as calculation; 

在这里插入图片描述
2. 比较运算符
等于=,不等于<>
在这里插入图片描述
1.字符串类型的数据原则上按照字典顺序进行排序,不能与数字的大小顺序混淆
2.不能对NULL使用比较运算符
3.选取 NULL的记录: 使用xxx is null / xxx is not null

select 商品名, 商品价格 FROM Products where 商品价格 IS NULL;

逻辑运算符

  • NOT运算符:表示否定
    查询条件 商品价格<1000等价于商品价格 NOT >=1000

  • AND运算符:逻辑与,并且

  • OR运算符:逻辑或,或者
    计算顺序:AND优于OR

select 商品名称,商品种类,登记日期
from Products where 商品种类='办公用品'
AND 登记日期='2009-09-11'
or 登记日期='2009-09-20';

代码逻辑为:商品种类为办公用品且登记日期为2009-09-11,或者登记日期=‘2009-09-20’
在这里插入图片描述

想得到商品种类为办公用品且登记日期为’2009-09-11’或者’2009-09-20’
解决办法:加括号

select 商品名称,商品种类,登记日期
from Products where 商品种类='办公用品'
AND (登记日期='2009-09-11'
OR 登记日期='2009-09-20');

在这里插入图片描述

向表中插入数据

查询结果中列的顺序与select语句中的顺序相同

insert into 表名 values ('列1数据', '列2数据','列3数据',...); ---插入一行数据
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值