SQL 概念介紹
- SQL 語句中字符串用單引號,單等號
- SQL 語句中對關(guān)鍵字不區(qū)分大小寫,值、表名的大小寫是區(qū)分的。兩個雙引號表一個雙引號
- SQL 分DDL、DML、DCL 三類語言
- DLL: create table 、drop table 、alter table 數(shù)據(jù)定義語言
- DML:select 、insert 、update 、delete 數(shù)據(jù)操作語言
- DCL:grant 授權(quán)、revoke 取消授權(quán) 數(shù)據(jù)庫控制語言
- SQL 分DDL、DML、DCL 三類語言
數(shù)據(jù)庫概念介紹
- 主鍵 外鍵 (分開建表防止數(shù)據(jù)冗余)
主鍵可以有多列 但是一張表只有一個主鍵,叫主鍵表 主鍵不能有重復(fù)值
外鍵 引用的是主鍵表中的主鍵
INSERT INTO 增加數(shù)據(jù)
- SQL=”insert into [表名] ([列字段1],【列字段2】,【列字段3】) values (N'Valu1',N'Valu2',N'Valu3')”
// 當值為中文或變量時需在單引號里加 英文半角的雙引號
// 在中文字符串前加 N 可以防止出現(xiàn)亂碼,與數(shù)據(jù)庫排序規(guī)則有關(guān) - SQL=insert into [表名]values ('str1','str2','str3')
// 根據(jù)已建數(shù)據(jù)庫表頭順序不能變,可以省略[列字段] - 如果要在自動編號列插入值,需啟動手動插入值功能,改成自動編號后,編號根據(jù)手動插入值
依次向后編號:
Set Identity_insert 表名 ON
。。。
Set Identity_insert 表名 OFF
Select 查詢數(shù)據(jù)
- select * from 表名 // 表示查詢該表的所有數(shù)據(jù)
- select 列字段1、列字段2 from 表名 // 選擇性的查詢該表的數(shù)據(jù)
- select * from 表名 where 條件 // 根據(jù)行條件查詢所有列字段或者部分列字段
- select 列字段 as 別名1,列字段 as 別名2 from 表名 //寫法一 給查詢結(jié)果表頭起別名
- select 列字段 別名1,列字段 別名2 from 表名 //寫法二 給查詢結(jié)果表頭起別名
- select 別名1=列字段,別名2=列字段 from 表名 //寫法三 給查詢結(jié)果表頭起別名
- select 別名1=列字段,別名2=列字段,別名3='值' from 表名 //寫法四 增加一列
5 . sclect 別名1='值',別名2='值2' // 可以賦值常量
關(guān)鍵字 top ..order by 、distinct
1、select distinct * from 表名 //針對已經(jīng)查詢出的結(jié)果去除重復(fù)值 不是針對某一列
2、top ...order by..
str =數(shù)值
str =(表達式)
str = 數(shù)值 percent //向上取整,如3.1 取4
-- select top str * from 表名 order by 列名 desc //降序排列, 默認或者寫 acs 為升序
聚合函數(shù)
sum()、count()、max()、min()、avg()
例:select sum(列名)from 表名
特點:
--1 聚合函數(shù)不統(tǒng)計空值
where 條件的三種寫法
--1 select * from 表名 where 列名>=20 and 列名<=30 and 條件三
--2 select * from 表名 where between 20 and 30 and 條件三 //between 是閉區(qū)間
--3 select * from 表名 where 列名 in (20,30,條件三)
模糊查詢
通配符:_ 、% 、[] 、^
-- _ //表示任意單個字符
-- % //表示任意多個字符
例 select * from 表名 where 列名 like '張'
-- [] //表示區(qū)間 通配符轉(zhuǎn)義 [%]、[^]、[] 也可以指定一個轉(zhuǎn)義符 escape ''
-- ^ //表示非
例 select * from 表名 where 列名 like '張[0-9a-z]妹' //表示0-9 a-z 之間任意一個字符
select * from 表名 where 列名 like '張[^0-9]妹' //表示除了0-9之外任意一個字符
空值處理
語法 select * from 表名 where 列名 is null
select * from 表名 where 列名 is not null
order by 列名 desc(acs)
子句要放到where 最后面 ,order by 返回的數(shù)據(jù)叫”游標”
可以進行多列排序 order by 列名 desc,列名2 desc
UPDATE 修改數(shù)據(jù)
1、語法 update 表名 set 列1=新值1,列2=新值2...where 條件
//如果不加where 條件,那么表示對表中所有數(shù)據(jù)進行修改
2、where 條件中可以使用邏輯運算符
not 、and 、or 、< 、> 、= 、<> (!=) 、 >= 、 <=