sql server 数据库操作命令

SQL,指结构化查询语言,全称是 Structured Query Language;SQL 对大小写不敏感,SELECT 与 select 是相同的。分号是在数据库系统中分隔每条 SQL 语句的标准方法, SQL 使用单引号来环绕文本值(大部分数据库系统也接受双引号), 如果是数值字段,则不需要使用引号 。

一,表和数据库的创建和删除。

1.创建关键字:create;数据库和表的创建可以用DBMS手动创建,也可以SQL脚本创建,手动创建的表和数据库可以用DBMS输出为SQL脚本 ,创建完成后需要刷新数据库;

创建数据库:create database dbname;    

创建表:create table table_name(column_name1  data_type(size), column_name2  data_type(size),column_name3  data_type(size)...);

column_name 参数规定表中列的名称,data_type 参数规定列的数据类型(例如 varchar、integer、decimal、date 等等),size 参数规定表中列的最大长度。

2.通过使用 DROP 语句,可以轻松地删除索引、表和数据库。drop语句会删除表中所有的记录和表结构,并释放存储空间,没有备份表之前要慎用。

删除数据库:drop database dbname;

删除表:drop table table_name;  可以直接用 drop table_name;

删除索引: drop index table_name.index_name;

3.use database_name; 命令用于选择数据库,在执行query查询语句时要选择所使用的数据库;

4.SQL 约束用于规定表中的数据规则。如果存在违反约束的数据行为,行为会被约束终止。约束可以在创建表时规定(通过 CREATE TABLE 语句),或者在表创建之后规定(通过 ALTER TABLE 语句)。在 SQL 中,我们有如下约束:

NOT NULL ,在默认的情况下,表的列接受 NULL 值,NOT NULL 约束强制列不接受 NULL 值。如果不向字段添加值,就无法插入新记录或者更新记录。

UNIQUE - 保证某列的每行必须有唯一的值,UNIQUE 约束唯一标识数据库表中的每条记录,UNIQUE 和 PRIMARY KEY 约束均为列或列集合提供了唯一性的保证,每个表可以有多个 UNIQUE 约束,但是每个表只能有一个 PRIMARY KEY 约束。

PRIMARY KEY - 每个表都应该有一个主键,并且每个表只能有一个主键,主键必须包含唯一的值,主键列不能包含 NULL 值。PRIMARY KEY 约束拥有自动定义的 UNIQUE 约束。

FOREIGN KEY - 保证一个表中的数据匹配另一个表中的值的参照完整性。外键解释

CHECK - 保证列中的值符合指定的条件。如果对单个列定义 CHECK 约束,那么该列只允许特定的值。如果对一个表定义 CHECK 约束,那么此约束会基于行中其他列的值在特定的列中对值进行限制。

DEFAULT - 规定没有给列赋值时的默认值,如果没有规定其他的值,那么会将默认值添加到所有的新记录。

利用约束创建表的示例:

create table person (p_id int not null primary key, lastname varchar(255) not null, firstname varchar(255),address varchar(255),city varchar(255) default 'Sandnes',check(P_id>0));

3.ALTER TABLE 语句用于在已有的表中添加、删除或修改列,对表的结构进行修改。

增加列,ALTER TABLE table_name ADD  column_name  datatype;

删除列,ALTER TABLE table_name  DROP COLUMN  column_name;

改变表中列的数据类型,ALTER TABLE  table_name  ALTER COLUMN  column_name  datatype;sql通用数据类型

二,query查询语句,实现数据的增删改查。

1.INSERT INTO 语句用于向表中插入新记录,可以有两种编写形式。

整条记录的插入,包含所有的列,无需指定列名 。

insert into table_name  values(value1,value2,value3,...);

在记录中只指定某些列进行插入,未选定的列值为默认值,需要指定列名及被插入的值。

insert into table_name (column1,column2,column3,...)  values(value1,value2,value3,...);

2.DELETE 语句用于删除表中的记录,但表的结构还存在,不会释放存储空间,需要的时候,数据可以回滚恢复。

删除所有的行,delete from table_name;或 delete * from table_name;

删除指定行,delete from table_name where some_column=some_value;(约束条件)

3.UPDATE 语句用于更新表中已存在的记录。

更新指定行的数据,update table_name set column1=value1,column2=value2,column3=value3,...where some_column=some_value;(约束条件)

4.SELECT 语句用于从数据库中选取数据。结果被存储在一个结果表中,称为结果集。

4.1 基本数据选取操作

4.1.1 选取所有的行和所有的列,select * from table_name;

4.1.2选取指定行所有的列,select * from table_name where some_column=some_value;(约束条件)

4.1.3 选取所有行的部分的列的值,select column_name1,column_name2,...from table_name ;

4.1.4选取指定行的部分的列的值,select column_name1,column_name2,...from table_name where some_column=some_value;(约束条件)

4.3 对选取的数据进行处理

4.2.1  select distinct 语句用于返回唯一不同的值。在表中一个列可能会包含多个重复值,可以用distinct语句仅仅列出所有不同的值。distinct必须放在select语句开头,distinct语句中select显示的字段只能是distinct指定的字段,其他字段是不能出现的,但可以通过其他方法实现。

作用于单列,选取某一列中不同的值,select distinct column_name from table_name;

作用与多列,根据多列进行去重,即去掉多列都相同的重复的行,select distinct column_name,column_name... from table_name;

统计某一列去重后的数目,select count(distinct colunm_name) from table_name;

4.2.2 通过使用 as,可以为表名称或列名称指定别名,创建别名是为了让列名称或表名称的可读性更强。

给列指定别名,select column_name as alias_name,column_name as alias_name,...form table_name;

给表指定别名,select column_name ,column_name,...form table_name  as alias_name;

示例:SELECT name AS n, country AS c   FROM Websites;

4.2.3 order by关键字用于对结果集按照一个列或者多个列进行排序,默认按照升序对记录进行排序。也可以用asc(升序)或desc(降序)关键字来指定排序,order多列的时候,先按照第一个column name排序,在按照第二个column name排序。

语法格式,select column_name,column_name,...form  table_name order by column_name,column_name asc | desc;

order by A,B  (都是默认按升序排列);

order by A desc,B   (A 降序,B 升序排列);

order by A ,B desc  (A 升序,B 降序排列);即 desc 或者 asc 只对它紧跟着的第一个列名有效,其他不受影响,仍然是默认的升序。

4.2.4  select top 子句用于要返回前面指定数目的行记录,并非所有的数据库系统都支持 SELECT TOP 语句。 MySQL 支持 LIMIT 语句来选取指定的条数数据, Oracle 可以使用 ROWNUM 来选取。

一般格式: select top number | percent  column_name,column_name,...from table_name;

选取前3条记录, select top 3 * from table_name;

选取后3条记录, select top 3 * from table_name order by  column_name desc;

选取前面一般记录,select 50 percent  *  from  table_name;

4.2.5 WHERE 子句用于提取那些满足指定条件的记录。Where +条件(筛选行),可以在 WHERE 子句中使用比较运算符,逻辑运算符,和其他的判断条件。

比较运算符:=(等于),<>(不等于,在 SQL 的一些版本中,该操作符可被写成 !=),>(大于),<(小于),>=(大于或等于),<=(小于或等于)

逻辑运算符:and (与, 同时满足两个条件的值),or(或,满足其中一个条件的值),not(:非 满足不包含该条件的值);

特殊条件:is null(空值判断),between 左域 and 右域(在某个范围内),like(模糊查询,搜索某种模式),in(针对某个列的多个可能值);

where语句的一般格式:select column_name,column_name,...from  table_name where column_name operator value ;

比较运算符示例: select column_name,column_name,...from  table_name where some_column>=some_value;

逻辑运算符示例: select column_name,column_name,...from  table_name where some_column>some_value and  some_column>some_value;(可以对同一个属性或多个属性进行约束)

select column_name,column_name,...from  table_name where  not  some_column>some_value ;(选取满足不包含该条件的行的指定列)

空值判断示例:select column_name,column_name,...from  table_name where some_column is null;(选取条件列为空的指定列)

between and 用法示例:select column_name,column_name,...from  table_name where some_column between value1 and value2;(指定范围内)

in 用法示例:select column_name,column_name,...from  table_name where some_column in(value1,value2,value3...)(指定多个值内)

Like模糊查询示例:select column_name,column_name,...from  table_name where some_column like '%M';(按通配符进行搜索)

通配符格式:% 替代一个或多个字符,_ 下划线仅替代一个字符,通配符与 SQL LIKE 操作符一起使用;

通配符示例:'%a' (以a结尾的数据),'a%'  (以a开头的数据),'%a%' (含有a的数据),‘_a_’ (三位且中间字母是a的),

'_a' ( 两位且结尾字母是a的),'a_' ( 两位且开头字母是a的)。

4.4 多表查询和视图

4.5SQL函数

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 206,968评论 6 482
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 88,601评论 2 382
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 153,220评论 0 344
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 55,416评论 1 279
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 64,425评论 5 374
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,144评论 1 285
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,432评论 3 401
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,088评论 0 261
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 43,586评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,028评论 2 325
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,137评论 1 334
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,783评论 4 324
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,343评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,333评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,559评论 1 262
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,595评论 2 355
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,901评论 2 345

推荐阅读更多精彩内容