└── README.md /README.md: -------------------------------------------------------------------------------- 1 | # sql-note 2 | 3 | #### 一,base 4 | 5 | 1,select 6 | 7 | SELECT 语句用于从数据库中选取数据。 8 | 9 | 结果被存储在一个结果表中,称为结果集。 10 | 11 | 语法: 12 | 13 | ```sql 14 | select cols from table 15 | ``` 16 | 17 | 例如: 18 | 19 | ```sql 20 | select * from table 21 | ``` 22 | 23 | 24 | 25 | 2,distict 26 | 27 | 在表中,可能会包含重复值。有时我们希望仅仅列出不同(dist inct)的值。 28 | 29 | 关键词 DISTINCT 可以用来过滤相同的值。 30 | 31 | 语法: 32 | 33 | ```sql 34 | SELECT DISTINCT column_name,column_name FROM table_name; 35 | ``` 36 | 37 | 例如: 38 | 39 | ```sql 40 | SELECT DISTINCT Company FROM Orders 41 | ``` 42 | 43 | 44 | 45 | 3,where 46 | 47 | WHERE 子句用于提取那些满足指定条件的记录。 48 | 49 | 语法: 50 | 51 | ```sql 52 | SELECT column_name,column_name FROM table_name WHERE column_name operator value; 53 | ``` 54 | 55 | 例如: 56 | 57 | ```sql 58 | SELECT * FROM Websites WHERE country='CN'; 59 | ``` 60 | 61 | 62 | 63 | 4,and & or 64 | 65 | 如果第一个条件和第二个条件都成立,则 AND 运算符显示一条记录。 66 | 67 | 如果第一个条件和第二个条件中只要有一个成立,则 OR 运算符显示一条记录。 68 | 69 | 例如: 70 | 71 | ```sql 72 | SELECT * FROM Websites 73 | WHERE country='CN' 74 | AND alexa > 50; 75 | ``` 76 | 77 | 78 | 79 | 5,order by 80 | 81 | ORDER BY 关键字用于对结果集按照一个列或者多个列进行排序。 82 | 83 | ORDER BY 关键字默认按照升序对记录进行排序。如果需要按照降序对记录进行排序,您可以使用 DESC 关键字。 84 | 85 | 语法: 86 | 87 | ```mssql 88 | SELECT column_name,column_name 89 | FROM table_name 90 | ORDER BY column_name,column_name ASC|DESC; 91 | ``` 92 | 93 | 例如: 94 | 95 | ```sql 96 | SELECT * FROM Websites 97 | ORDER BY alexa; 98 | ``` 99 | 100 | 101 | 102 | 6,insert 103 | 104 | INSERT INTO 语句用于向表中插入新记录。 105 | 106 | 语法1: 107 | 108 | ```sql 109 | INSERT INTO table_name 110 | VALUES (value1,value2,value3,...); 111 | ``` 112 | 113 | 语法2: 114 | 115 | ```sql 116 | INSERT INTO table_name (column1,column2,column3,...) 117 | VALUES (value1,value2,value3,...); 118 | ``` 119 | 120 | 例如: 121 | 122 | ```sql 123 | INSERT INTO Websites (name, url, alexa, country) 124 | VALUES ('百度','https://www.baidu.com/','4','CN'); 125 | ``` 126 | 127 | 128 | 129 | 7,update 130 | UPDATE 语句用于更新表中已存在的记录。 131 | 语法: 132 | ```sql 133 | UPDATE table_name 134 | SET column1=value1,column2=value2,... 135 | WHERE some_column=some_value; 136 | ``` 137 | 例如: 138 | ```sql 139 | UPDATE Websites 140 | SET alexa='5000', country='USA' 141 | WHERE name='菜鸟教程'; 142 | ``` 143 | 144 | 8,delete 145 | 146 | DELETE 语句用于删除表中的行。 147 | 148 | 语法: 149 | 150 | ```sql 151 | DELETE FROM 表名称 WHERE 列名称 = 值 152 | ``` 153 | 154 | 例如: 155 | 156 | ```sql 157 | DELETE FROM Person WHERE LastName = 'Wilson' 158 | 159 | // delete all 160 | DELETE FROM table_name 161 | // or 162 | DELETE * FROM table_name 163 | ``` 164 | 165 | 166 | 167 | #### 2,senior 168 | 169 | **1 ,TOP 子句** 170 | 171 | TOP 子句用于规定要返回的记录的数目。 172 | 173 | 对于拥有数千条记录的大型表来说,TOP 子句是非常有用的。 174 | 175 | 注释:并非所有的数据库系统都支持 TOP 子句。 176 | 177 | **SQL Server 的语法:** 178 | 179 | ```sql 180 | SELECT TOP number|percent column_name(s) 181 | FROM table_name 182 | ``` 183 | 184 | **MySQL 语法** 185 | 186 | ```sql 187 | SELECT column_name(s) 188 | FROM table_name 189 | LIMIT number 190 | ``` 191 | 192 | **Oracle 语法** 193 | 194 | ```sql 195 | SELECT column_name(s) 196 | FROM table_name 197 | WHERE ROWNUM <= number 198 | ``` 199 | 200 | **SQL TOP PERCENT 实例** 201 | 202 | 上面的 "Persons" 表中选取 50% 的记录可以使用下面的 SELECT 语句: 203 | 204 | ```sql 205 | SELECT TOP 50 PERCENT * FROM Persons 206 | ``` 207 | 208 | 209 | 210 | **2,LIKE 操作符** 211 | 212 | LIKE 操作符用于在 WHERE 子句中搜索列中的指定模式。 213 | 214 | 语法: 215 | 216 | ```sql 217 | SELECT column_name(s) 218 | FROM table_name 219 | WHERE column_name LIKE pattern 220 | ``` 221 | 222 | 例1: 223 | 224 | 从 "Persons" 表中选取居住在以 "N" 开始的城市里的人: 225 | 226 | 我们可以使用下面的 SELECT 语句: 227 | 228 | ```sql 229 | SELECT * FROM Persons 230 | WHERE City LIKE 'N%' 231 | ``` 232 | 233 | 提示:"%" 可用于定义通配符(模式中缺少的字母)。 234 | 235 | 例2: 236 | 237 | 从 "Persons" 表中选取居住在以 "g" 结尾的城市里的人: 238 | 239 | 我们可以使用下面的 SELECT 语句: 240 | 241 | ```sql 242 | SELECT * FROM Persons 243 | WHERE City LIKE '%g' 244 | ``` 245 | 246 | 例3: 247 | 248 | 从 "Persons" 表中选取居住在包含 "lon" 的城市里的人: 249 | 250 | 我们可以使用下面的 SELECT 语句: 251 | 252 | ```sql 253 | SELECT * FROM Persons 254 | WHERE City LIKE '%lon%' 255 | ``` 256 | 257 | 例4: 258 | 259 | 通过使用 NOT 关键字,我们可以从 "Persons" 表中选取居住在*不包含* "lon" 的城市里的人: 260 | 261 | 我们可以使用下面的 SELECT 语句: 262 | 263 | ```sql 264 | SELECT * FROM Persons 265 | WHERE City NOT LIKE '%lon%' 266 | ``` 267 | 268 | --------------------------------------------------------------------------------