sql语句是和dbms交谈专用的语句,不同dbms都认sql语法

sql语句中字符串用单引号

sql语句是大小写不敏感的,不敏感指的是sql关键字,字符串值还是大小写敏感的

创建表、删除表不仅可以手工完成,还可以执行sql语句完成,在自动化部署、数据导入中用的很多,create table t_person(id int not null, name nvarchar(50), age int null)、drop table t_person

简单的insert语句。 insert into t_person(id,name,age) values(1,'Jin',20)

(*) sql 主要分ddl数据定义语言和dml数据操作语言两类,create table、drop table,alter table等属于ddl,select、insert、delete、update等属于DML

sql server中两种常用的主键数据类型:int or bigint + 标识列(又称自动增长字段);uniqueidentifier(又称Guid、UUID)

用标识列实现字段自增可以避免并发的问题,不要开发人员控制自增。用标识列的字段在insert的时候不用指定主键的值。将字段的是标识列设为是,一个表只能有一个标识列。

Guid算法是一种可以产生唯一标识的高效算法,它使用网卡mac、地址、纳秒级时间、芯片id码等算出来的,这样保证每次生成的guid永远不会重复,无论是同一个计算机还是不同计算机。在公元3400年以前产生的guid与任何其他产生过的guid都不相同。sql server中生成guid的函数newid(),.net中生成guid的方法:Guid.NewGuid(),返回的是Guid类型。

int自增字段的优点:占用空间小、无需开发人员干预、易读;缺点:效率低,数据导入导出的时候很痛苦

Guid的优点:效率高、数据导入导出方便,缺点:占用空间大,不易读。

业界主流倾向使用Guid

数据插入insert

insert语句可以省略表名后的列名,但是不推荐

如果插入的行中有些字段的值不确定,那么insert的时候不指定那些列即可。

可以给字段默认值,如果Guid类型主键可以默认值设为newid()就会生产,很少这么做!

主键: insert into person(name,age) values('kk',29);

数据更新update

更新一个列update person set age=20;

更新多个列update perosn set name='jj',age=40

更新一部分数据update person set age=20 where name='kk'; sql中等于判断用单个=,而不是==

where中还可以使用复杂的逻辑判断update person set age=40 where name='jj' or age>30,or相当于c#中的||或者

where中可以使用的其他逻辑运算符:or,and,not,<,>,>=,<=,!=(or <>)等

数据删除delete

删除表中全部数据:delete from table1

delete只是删除数据,不删除表,drop table是删除表

delete也可以带where条件子句来删除部分数据:delete from table where name='tt'

数据检索select

简单的数据检索:select * from employee

只检索需要的列:select fid,fname from employee

列别名:select fname as 姓名 from employee

使用where检索符合条件的数据:select fname from employee where fsalary>1000

可以检索不与任何表关联的数据:select 1+2,select newid(),select getdate()

数据汇总

sql聚合函数:max最大值,min最小值,avg平均值,sum和,count数量

大于25岁的员工的最高工资:select max(salary) from employee where age>25

最低工资和最高工资:select min(salary),max(salary) from employee

数据排序order by

order by子句位于select语句的末尾,它允许指定按照一个列或者多个列进行排序,还可以指定排序方式是升序asc还是降序desc

按照年龄升序排序所有员工信息的列表:select * from employee order by age asc

按照年龄从大到小排序,如果年龄相同则按工资从大到小排序:select * from employee order by age desc, salary desc

order by子句要放到where子句之后:select * from employee where age>23 order by age desc, salary desc

通配符过滤

通配符过滤使用like

单字符匹配的通配符为半角下划线_,它匹配单个出现的字符。以任意字符开头,剩余部分为erry:select * from employee where name like '_erry'

多字符匹配的通配符为半角百分比%,它匹配任意次数出现的任意字符。k%匹配以k开头、任意长度的字符串,检索姓名中包含字母n的员工信息,select * from employee where name like '%n%'

空值处理

数据库中,一个列如果没有指定值,那么值就为null,这个null和c#中的null,数据库中null标识不知道,而不是表示没有,因此select null+1结果是null,因为不知道加1的结果还是不知道

select * from employee where name = null;select * from employee where name !=null;都没有任何返回结果,因为数据库也不知道

sql 中使用is null,is not null 来进行空值判断:select * from employee where name is null;select * from employee where name is not null;

多值匹配

select age,id,name from employee where age in (19,23,35)

范围值:select * from employee where age>=23 and age <=27; select * from employee where age between 23 and 27;

3.sql基础的更多相关文章

  1. [SQL] SQL 基础知识梳理(一)- 数据库与 SQL

    SQL 基础知识梳理(一)- 数据库与 SQL [博主]反骨仔 [原文地址]http://www.cnblogs.com/liqingwen/p/5902856.html 目录 What's 数据库 ...

  2. [SQL] SQL 基础知识梳理(二) - 查询基础

    SQL 基础知识梳理(二) - 查询基础 [博主]反骨仔 [原文]http://www.cnblogs.com/liqingwen/p/5904824.html 序 这是<SQL 基础知识梳理( ...

  3. [SQL] SQL 基础知识梳理(三) - 聚合和排序

    SQL 基础知识梳理(三) - 聚合和排序 [博主]反骨仔 [原文]http://www.cnblogs.com/liqingwen/p/5926689.html 序 这是<SQL 基础知识梳理 ...

  4. [SQL] SQL 基础知识梳理(四) - 数据更新

    SQL 基础知识梳理(四) - 数据更新 [博主]反骨仔 [原文]http://www.cnblogs.com/liqingwen/p/5929786.html 序 这是<SQL 基础知识梳理( ...

  5. [SQL] SQL 基础知识梳理(五) - 复杂查询

    SQL 基础知识梳理(五) - 复杂查询 [博主]反骨仔 [原文]http://www.cnblogs.com/liqingwen/p/5939796.html 序 这是<SQL 基础知识梳理( ...

  6. 黑马程序员+SQL基础(上)

    黑马程序员+SQL基础 ---------------<a href="http://edu.csdn.net"target="blank">ASP ...

  7. Oracle SQL 基础学习

    oracel sql 基础学习 CREATE TABLE USERINFO ( ID ,) PRIMARY KEY, USERNAME ), USERPWD ), EMAIL ), REDATE DA ...

  8. 第一章 SQL基础

    第一部分:SQL基础1. 为什么学习SQL自人类社会形成之日起,社会的运转就在不断地产生和使用各种信息(文献.档案.资料.数据等):在如今所谓的信息时代,由于计算机和互联网的作用,信息的产生和使用达到 ...

  9. SQL基础--&gt; 约束(CONSTRAINT)

    --============================= --SQL基础--> 约束(CONSTRAINT) --============================= 一.几类数据完 ...

  10. SQL基础-->层次化查询(START BY ... CONNECT BY PRIOR)[转]

    --====================================================== --SQL基础-->层次化查询(START BY ... CONNECT BY ...

随机推荐

  1. ES6学习历程(变量的解构赋值)

    一.数组的解构赋值 1.举几个例子足以理解 let [a, b, c] = [1, 2, 3]; a:1;  b:2;  c:3; let [x, , y] = [1, 2, 3];  x:1   y ...

  2. String s="a"+"b"+"c"+"d";创建了几个对象?

    对于如下代码: package reviewTest; /** * @ClassName: StringTest * @Description: 测试String的字符串相加优化 * @author ...

  3. 优化yum下载安装慢,不断换mirror

    不停地换mirror,为了解决这个问题,在网上搜了好多资料,总结出一个基于aliyun的mirror源 先检查:是否能正常上网,DNS是否正常,网关gw是否正常,若通过ping 不正常,则解决好网络, ...

  4. ThinkPHP5.1安装

    安装 ====== 按照官方的推荐方式,推荐使用composer方式安装 TP5.1环境要求 PHP >= 5.6.0 PDO PHP Extension MBstring PHP Extens ...

  5. How to start a pdf reader from a Linux command line?

    Before you do this, you should be in a GOME or KDE environment, then type the following commands to ...

  6. 5 pandas模块,DataFrame类

              DataFrame       DataFrame是一个[表格型]的数据结构,可以看作是[由Series组成的字典](共用同一个索引).DataFrame由一定顺序排列的多列数据组 ...

  7. Django——3 模板路径 模板变量 常用过滤器 静态文件的使用

    Django 模板路径 模板变量 过滤器 静态文件的加载 模板的路径,有两种方法来使用 设置一个总的templates在大项目外面,然后在sittings的TEMPLATES中声明 在每一个APP中创 ...

  8. Python 1 初识python

    1.Python介绍 Python是一种高级语言,与JAVA C# 等同.可以编写各种应用程序,每种语言都有其合适的应用场景.而Python 的优势在于更加人性化.简便的语法规则,以及针对各种具体场景 ...

  9. sublime3设置快捷键在浏览器打开预览

    我下的st3默认不能使用快捷键在浏览器打开,所以要找到源文件然后选择在浏览器打开,非常麻烦.找了很久,终于找到了一个在浏览器打开的快捷方式. 亲测有效. 1.确保你的st3已经安装了package c ...

  10. Windows与VBox虚拟机共享目录的方法

    前言 安装完虚拟机,设置共享目录的时候碰到问题,网上搜索了一下,按照相关教程操作还是有问题,可能是写的不够清楚,于是按照自己的理解重写了一份,力求简单明了,理解轻松. 具体步骤 1.关闭虚拟机(如果未 ...