`
aaron_xh
  • 浏览: 4695 次
  • 性别: Icon_minigender_1
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

MySQL数据库学习笔记

阅读更多
sql 代码
  1. MySQL数据库学习笔记   
  2.     关系数据库的查询语言 SQL (Structured Query Language),是一种非常口语化、既易学又易懂的语法。此一语言几乎是每个资料库系统都必须提供的,用以表示关连式的操作,包含了资料的定义(DDL)以及资料的处理(DML)。SQL原来拼成SEQUEL,这语言的原型以“系统 R“的名字在 IBM 圣荷西实验室完成,经过IBM内部及其他的许多使用性及效率测试,其结果相当令人满意,并决定在系统R 的技术基础发展出来 IBM 的产品。而且美国国家标准学会(ANSI)及国际标准化组织(ISO)在1987遵循一个几乎是以 IBM SQL 为基础的标准关连式资料语言定义。    
  3.   
  4. 第一章、了解概念,并理解它   
  5. 一、资料定义 DDL(Data Definition Language)    
  6. 资料定语言是指对资料的格式和形态下定义的语言,他是每个资料库要建立时候时首先要面对的,举凡资料分哪些表格关系、表格内的有什麽栏位主键、表格和表格之间互相参考的关系等等,都是在开始的时候所必须规划好的。    
  7. 数据库   
  8.   
  9.   
  10. 第二章 MySQL数据库数据类型    
  11.   
  12. 第一节、数据类型   
  13.   
  14. MySQL数据库目前支持以下几种   
  15. 下列代码字母用于描述中:   
  16. M 指出最大的显示尺寸。最大的显示尺寸长度为 255。    
  17. D 适用于浮点类型。指出跟随在十进制小数点后的数字数量。最大可能值为 30,但不应大于 M-2。    
  18. 方括号 ( "["   and   "]" ) 指定可选的类型修饰部份。    
  19.   
  20. 1、数值型(包括整数与浮点数,浮点型支持科学表示法)   
  21. 浮点类型:   
  22. numeric  [nju:merik]  decimal (5,2),数字位:5,小数位:2    
  23. numeric  等价于  decimal  并且是作为字符串存储的.而不是作为二进制浮点数.   
  24.   
  25. 说明:   
  26. salary  DECIMAL (3,2)   
  27. 在这个例子中,3 (精度( precision )) 代表重要的十进制数字的数目,2 (数据范围(scale)) 代表在小数点后的数字位数。在这种情况下,因此,salary 列可以存储的值范围是从 -99.99 到 99.99。(实际上 MySQL 在这个列中可以存储的数值可以一直到 999.99,因为它没有存储正数的符号)。    
  28.   
  29.   
  30. 整型: integer   
  31. 类型  占用字节  从      到     
  32. TINYINT  1   -128     127     
  33. SMALLINT  2   -32768     32767     
  34. MEDIUMINT 3   -8388608    8388607     
  35. INT    4   -2147483648    2147483647     
  36. BIGINT   8   -9223372036854775808 9223372036854775807     
  37.   
  38. 2、字符串(字符)类型   
  39. 3、日期和时间类型   
  40. 4、 Null 类型 不同于例如数字类型的0或字符串的   
  41. 5、布尔类型 TURE  FALSE     
  42.   
  43. 标识符约定   
  44. 标识符   最大长度 允许的字符   
  45. ---------------   
  46. 数据库  64  一个目录名中允许的任何字符,除了/,\和.   
  47. 表  64  一个目录名中允许的任何字符,除了/和.   
  48. 列  64  所有的字符    
  49. 索引 64  所有的字符    
  50. 加名 255  所有的字符   
  51. 定界符``,反引号ANSI SQL中双引号为定界符   
  52.   
  53. 注意:在MYSQL中,数据库和表对应操作系统下的目录与文件,因而,操作系统的敏感性决定数据库和表命名的大小敏感,所以在LINUX下数据库与表名的大小写敏感.   
  54. 提示:USE ,HELP 是Mysql中为少数几个不需要终结符的语句之一.   
  55.   
  56. 用户变量表示为: @var_name;   
  57. set  @x=99; 等同于@x := 99;   
  58. 系统变量用两个@@表示,它分为2种,全局系统变量和会话系统变量.   
  59.   
  60.   
  61. 下面详细说明各种类型   
  62. MySQL支持所有的ANSI/ISO SQL92数字类型.   
  63. 1、数值型   
  64.  一个整数可以在浮点语境中使用;它被解释为等值的浮点数;同样,一个浮点数可以被转化为整数,但损失精度,如100.1->100,100.5->101;   
  65. 2.Mysql支持16进制数值,在数字的语境中,它们表现类似于一个整数(64位精度);如 select  0xa+0;   
  66.   在字符串的语境中,它们表现类似于一个二进制的字符串,每一对16进制ASCII码被转为一个字符:   
  67.    select  0x787868 ; = select  x'787868';   
  68.    select  hex('xxh');   
  69.    select  0xa+5;   
  70.      
  71.    select   true , true ,flase, FALSE ;   
  72.   
  73.   其中浮点型用于域,表示方法解释一下,如:   
  74.    FLOAT [(M,D)] [UNSIGNED] [ZEROFILL]    
  75.   如果 UNSIGNED 被指定,负值是不允许的。M 是显示宽度,D 是小数位数。并且如果负号“-”也占一个宽度。   
  76. 2、字符串类型   
  77.   字符串是多个字符组成的一个字符序列,由单引号,或双引号字符包围,但在ANSI模式中运行时只能用单引号,也就是说在SQL SERVER数据库,使用应该使用单引号,保证兼容性应该使用单引号.   
  78.     字符串类型有  CHAR VARCHAR 、BLOB、TEXT、ENUM 和  SET  ;   
  79.   ENUM 是一个字符串对象,其值通常选自一个允许值列表中,该列表在表创建时的列规格说明中被明确地列举。    
  80.   每个枚举值均有一个索引值:    
  81.   在列说明中列表值所允许的成员值被从 1 开始编号。    
  82.   空字符串错误值的索引值为 0。这就意味着,你可以使用下面所示的  SELECT  语句找出被赋于无效 ENUM 值的记录行。    
  83. mysql>  SELECT  *  FROM  tbl_name  WHERE  enum_col=0;   
  84. NULL  值的索引值为  NULL 。    
  85. 总结:ENUM用于互相排斥的值,而  SET 列可以从一个值的列表中选择多个值。   
  86. 常用技巧:   
  87. 1.在命令提示符下:mysql -h -u root db_name <x.sql   
  88.   
  89.   
  90.   在串的环境中,可用十六进制常数来指定串值。其语法与前面描述的数值值相同,但是每对十六进制的数字都被看作 ASCII 代码并转换为字符,其结果用于串。例如, 0x616263作为串时为“a b c”。   
  91.   在一个字符串中,如果某个序列具有特殊的含义,每个序列以反斜线符号 (“\”)开头,称为转义字符。 MySQL 识别下列转义字符:    
  92. \0 一个 ASCII 0 (NUL) 字符。    
  93. \' 一个 ASCII 39 单引号 (“'”) 字符。    
  94. \ " 一个 ASCII 34 双引号 (“" ”) 字符。    
  95. \b 一个 ASCII 8 退格符。    
  96. \n 一个 ASCII 10 换行符。    
  97. \r 一个 ASCII 13 回车符。    
  98. \t 一个 ASCII 9 制表符(TAB)。    
  99. \z ASCII(26) (Control-Z)。这个字符可以处理在 Windows 系统中 ASCII(26) 代表一个文件的结束的问题。(当使用 mysql  database  < filename 时 ASCII(26) 可能会引起问题产生。)    
  100. \\ 一个 ASCII 92 反斜线 (“\”) 字符。    
  101. \% 一个 ASCII 37 “%” 字符。它用于在正文中搜索“%”的文字实例,否则这里“%”将解释为一个通配符。查看章节 6.3.2.1 字符串比较函数。    
  102. \_ 一个 ASCII 95 “_” 字符。它用于在正文中搜索“_”的文字实例,否则这里“_”将解释为一个通配符。查看章节 6.3.2.1 字符串比较函数.    
  103.   
  104. 3、日期和时间类型   
  105. 4、 Null 类型   
  106. Null 是ANSI中值的空。查找 NUll 类型用 IS   Null  和 IS   Not   Null 测试;并且不能对 NULL 类型进行算术运算。其结果为 NULL 。   
  107. 5.mysql的注释   
  108. 为两种:/**/和#(单行注释,类似UNIX的脚本注释;)   
  109.   
  110.     
  111. 第07章 MySQL函数   
  112. mysql 运算符   
  113. A.比较运算符=,!=(<>),>,>=,<,<=   
  114. Null 安全等于比较<=>   
  115. is   null  , is   not   null   isnull (express)   
  116. 如果expr大于或等于 min ,并且expr小于或等于 max , between 返回1,否则返回0.它等价于表达式   
  117. ( min <=expr  and  expr<= max )   
  118. expr  in  (v1,v2,....);如果expr 是 in 列表中的一值,它将返回1,否则返回0.   
  119. B.逻辑运算符   
  120.  在mysql中,所有的逻辑运算符返回的值均为 true , false ,或 null (未知),在mysql中,它们由1( true ),0( false )和 null 实现.   
  121.   select  !1 等同于  select   not  1;   
  122.  C.流程控制函数   
  123.  ifnull(expr1,value) 当expr1的值是 null 时,返回value,不是 null 时,返回expr1   
  124.   
  125.   case  value  when  [compare-value]  then  result [..]   
  126.   set  @a=2;   
  127.   select   case  @a    
  128.   when  1  then  'one'   
  129.   when  2  then  'two'   
  130.   else  'more'  end ;   
  131.   
  132.  if (expr1,expre2,expr3)   
  133.  如果expr1为真,(expr1<>0以及expr1<> null ),那么if()返回expr2,否则返回expr3   
  134.   
  135.   nullif (expr1,expr2) 如果expr1=expr2为真,返回 null ,否则返回expr1;   
  136. mysql>  select   nullif (1,1);   
  137.  ->  null   
  138. mysql>  select   nullif (1,2)   
  139.  -> 1   
  140. D.mysql字符串函数   
  141. 返回字符串str最左边的那个字符的ASCII码值.   
  142. mysql>  select  ascii('2');   
  143.  -> 50   
  144. 返回N的字符串表示的2进制值形式.   
  145. mysql>  select  bin(12);   
  146.  -> '1100'   
  147. 返回N的字符串表示的八进制值形式   
  148. mysql>  select  oct(12);   
  149.  -> 14   
  150.   
  151. 如果x是一个数字,返回n的字符串表示的16进制值形式,这里n是一个长长的( bigint )数字.   
  152. 如果x是一个字符串,x中的每个字符均被转换为2位16进制数字,并以16进制的字符串形式返回.   
  153. 这是0xff形式的字符串反转操作.   
  154. mysql>  select  hex(255);   
  155.  -> ff   
  156.   
  157. mysql>  select  hex('abc'); // select  ascii('a'); -> 97  select  hex(97); -> 61   
  158.  -> 616263   
  159. mysql> 0x616263;   
  160.  -> abc   
  161.   
  162. char ()以整数类型解释参数,返回这个整数所代表的Ascii码值给出的字符组成的字符串, null 值将被忽略   
  163. mysql>  select   char (120,120,104);   
  164.  -> xxh   
  165.   
  166. concat(str1,str2,...)   
  167. 将参数连接成字符串返回,如果有任何一个参数为 null ,返回值也为 null .   
  168. locate(子串substr,母串str)返回子串substr在字符吕中第一次出现的位置.如果子串substr在str中不存在,返回值为0:   
  169.   
  170. ltrim(str)   
  171. 返回移除了领头的空格字符后的str;   
  172.   
  173.   
  174. 第08章 MySQL数据操纵语言DML   
  175. · select  语法   
  176. ·   
  177.   
  178. select  列1,列2,列3,,,,,   
  179. from  表1,表2,表3   
  180. [ where  条件]   
  181. [ group   by  ...]   
  182. [ having  ....]   
  183. []   
  184.   
  185. 第二节 域/列类型属性   
  186. 域/列的类型属性,有以下特性:   
  187. ■ 其中可以存放什么类型的值。   
  188. ■ 值要占据多少空间,以及该值是否是定长的(所有值占相同数量的空间)或(所占空间量依赖于所存储的值)。   
  189. ■ 该类型的值怎样比较和存储。   
  190. ■ 此类型是否允许  NULL  值。   
  191. ■ 此类型是否可以索引。    
  192.   
  193. ·数字   
  194. ·日期和时间   
  195. ·字符串(字符)   
  196.   
  197. 列类型的属性   
  198. 有以下四种:   
  199. · Default   
  200. · Not   Null   或  Null   
  201. · Primary   Key  即主键   
  202. ·Auto_increment (只有1个只能被索引)   
  203.   
  204. 一、数据库的操作   
  205. |操作系统下的操作   
  206. mysql -h -u -p   
  207. mysql -h localhost -uroot    
  208. ·创建数据库   
  209. ·删除数据库   
  210. ·显示数据库   
  211. ·使用数据库   
  212. ·数据库其他相关操作   
  213.   
  214. 1、创建数据库   
  215. CREATE   DATABASE  db_Name;   
  216. 说明:   
  217.   
  218. 2、删除数据库   
  219. DROP   DATABASE  db_Name;   
  220. 说明:可以简写为: drop  db_name;   
  221.   
  222. 3、显示数据库   
  223. SHOW databases;   
  224. 说明:显示当前有哪些数据库。   
  225.   
  226. 4、使用数据库   
  227. USE  database ;   
  228. 说明:   
  229.   
  230. 5、显示数据库中有哪些表   
  231. 首先USE  database ;   
  232. 然后SHOW tables;   
  233. 参见:show的用法   
  234.   
  235.   
  236.   
  237. 二、表格、索引的操作   
  238. ·创建表格   
  239. ·更改表格   
  240. ·建立索引   
  241. ·删除表格、索引   
  242. ·表格其他相关操作   
  243. 以下操作都是以表格table_name或索引为操作单位。DESCRIBE或 DESC 命令除外。   
  244.    文件           用途     
  245. tbl_name.frm    表定义 (form) 文件     
  246. tbl_name.MYD    数据文件     
  247. tbl_name.MYI    索引文件    
  248.   
  249. 1、创建表格:    
  250. CREATE   TABLE  table_name   
  251. (    
  252.  column1 DATATYPE [ NOT   NULL ] [ NOT   NULL   PRIMARY   KEY ],    
  253.  column2 DATATYPE [ NOT   NULL ],    
  254. ...)   
  255. 说明:     
  256. DATATYPE  --是资料的格式,也就是字段的数据类型   
  257. Not   Null   --不允许资料有空的   
  258. PRIMARY   KEY   --是本表的主键。    
  259. 可以通过一个表的内容来拷贝一个表,如   
  260. CREATE  [ TEMPORARY TABLE  new_tbl_name  SELECT  *  FROM  old_tbl_name;   
  261. CREATE  [ TEMPORARY TABLE  new_tbl_name  SELECT  *  FROM  old_tbl_name  where  1=0; (只是拷贝空表)   
  262.   
  263.   
  264. 2、更改表格     
  265. ALTER   TABLE  tbl_name  ADD   COLUMN  col_name DATATYPE    
  266. 说明:增加一个栏位即(字段)(没有删除某个栏位的语法)。     
  267.   
  268. ALTER   TABLE  tbl_name RENAME  AS  new_name;   
  269. 说明:对表重命名。   
  270.   
  271. ALTER   TABLE  table_name  drop  column_name   
  272. 说明:删除指定的列名。   
  273.   
  274. ALTER   TABLE  tbl_name CHANGE old_column_name new_column_name DATATYPE    
  275. 说明:更改列名及列属性。    
  276. 例: ALTER   TABLE  tbl_name CHANGE old_column_name new_column_name  int (2)  not   null   primary   key  ;    
  277.   
  278. ALTER   TABLE  table_name  ADD   PRIMARY   KEY  (column_name)    
  279. 说明:更改表得的定义把某个栏位设为主键。    
  280. ALTER   TABLE  table_name  DROP   PRIMARY   KEY  (column_name)    
  281. 说明:把主键的定义删除。    
  282.   
  283. ALTER   TABLE  my_tbl TYPE=ISAM或[MYISAM,HELP,InnoDB ……等等]    
  284. 说明:更改表的类型   
  285.   
  286. 3、建立索引     
  287. CREATE   INDEX  index_name  ON  table_name (column_name) ;   
  288. CREATE   UNIQUE  index_name  ON  table_name (column_name) ;   
  289. ALTER   TABLE  tbl_name  ADD   INDEX  index_name(column_list);   
  290. ALTER   TABLE  tbl_name  ADD   UNIQUE  index_name(column_list);   
  291. ALTER   TABLE  tbl_name  ADD   PRIMARY   KEY  (column_list);   
  292.   
  293. 说明:对某个表格的栏位建立索引以增加查询时的速度。    
  294.   
  295. 4、删除表格、索引     
  296. DROP  tbl_name1,tbl_name2,tbl_name3....;    
  297. DROP   INDEX  index_name  ON  tbl_name;   
  298. ALTER   TABLE  tbl_name   DROP   INDEX  index_name;   
  299. ALTER   TABLE  tbl_name   DROP   Primary   Key ;   
  300.   
  301.   
  302. 5、显示表格中列的信息   
  303. 语法:{DESCRIBE |  DESC } tbl_name [col_name | wild]   
  304. DESCRIBE tbl_name;   
  305. 说明:DESCRIBE 是 SHOW COLUMNS  FROM  的缩写。用于显示表格中列的信息。   
  306. DESCRIBE tbl_name; 等于SHOW COLUMNS  FROM  tbl_name;    
  307. 也可以简写为: desc  tal_name;   
  308. describe vt. 描写, 记述, 形容, 形容    
  309.   
  310.   
  311. 三、记录的操作   
  312. ·记录的添加   
  313. ·记录的更改   
  314. ·记录的删除   
  315. ·   
  316. ·   
  317.   
  318. 首先来大概了解一下 INSERT  的语法,有以下几种方式:   
  319.   
  320. INSERT   [ INTO ] tbl_name [(col_name,...)]    VALUES  ((expression |  DEFAULT ),...),(...),...   
  321.         [  ON  DUPLICATE  KEY   UPDATE  col_name=expression, ... ]   
  322. 或者   INSERT  [ INTO ] tbl_name [(col_name,...)]      SELECT  ...   
  323. 或者   INSERT  [ INTO ] tbl_name   SET  col_name=(expression |  DEFAULT ), ...   
  324.         [  ON  DUPLICATE  KEY   UPDATE  col_name=expression, ... ]   
  325.   
  326. 说明:我们只关心记录添加的方式啦。注意啦,现在我们开始啦。   
  327. 1、记录的添加   
  328. 最简单的一种:直接添加一行记录就是:   
  329. INSERT   [ INTO ] tbl_name [(col_name,...)]    VALUES  ((expression |  DEFAULT ),...),(...),...);   
  330. 例: INSERT   INTO  tbl_name (col1,col2)  VALUES (15,col1*2);  insert  tbl_name (col1,col2)  values  ('007','xxh5fd')   
  331. 第二种:   
  332.   
  333.   
  334.   
  335.   
  336. 2、记录的更改   
  337. 还是先来看一看 UPDATE  的语法   
  338. UPDATE  tbl_name [, tbl_name ...]    SET  col_name1=expr1 [, col_name2=expr2 ...]   
  339. [ WHERE  where_definition]   
  340.   
  341. 说明: UPDATE  以新的值更新现存表中行的列。 SET  子句指出要修改哪个列和他们应该给定的值。 WHERE  子句如果被给出,指定哪个记录行应该被更新。否则,所有的记录行被更新。如果  ORDER   BY  子句被指定,记录行将被以指定的次序更新。    
  342. 例子: UPDATE  ybc  set  id=8  where  id=0;   
  343.   
  344. 3.记录的删除   
  345. 简单的语法:   
  346. DELETE   FROM  table_name  WHERE  conditions    
  347. 说明:删除符合条件的资料。    
  348.   
  349.   
  350.   
  351.   
  352.   
  353. 数据语法:   
  354.   
  355. SHOW 语句可用来获取数据库和表的几个方面的信息,它有如下用法:   
  356. SHOW DATABASES 列出服务器上的数据库   
  357. SHOW TABLES 列出当前数据库中的表   
  358. SHOW TABLESFROM db_name 列出指定数据库中的表   
  359. SHOW [ FULL ] COLUMNS  FROM  tbl_name 显示指定表中列的信息,等同于 desc  tbl_name;   
  360. SHOW  INDEX   FROM  tbl_name 显示指定表中索引的信息   
  361. SHOW  TABLE  STATUS 显示缺省数据库中表的说明信息   
  362. SHOW  TABLE  STATUS  FROM  db_name 显示指定数据库中表的说明信息   
  363. DESCRIBE tbl_name 和 EXPLAIN tbl_name 语句与 SHOW COLUMNS  FROM  tbl_name功能相同。   
  364.   
  365.   
  366. SELECT  的使用及语法详解   
  367. 作用说明: SELECT  用于检索从一个或多个表中选取出的行。select_expression 表示你希望检索的列。    
  368. SELECT  也可以被用于检索没有引用任何表的计算列。   
  369.   
  370. 要讲的内容是:   
  371.   
  372. ·第一个查询   
  373. ·选择特定的列,对列进行排序   
  374. ·查找不重复的数据   
  375. ·创建虚拟列,及列的别名的使用   
  376. ·按条件检索   
  377. ·   
  378. ·   
  379.   
  380. 好,现在开始我们的第一个查询啦!   
  381. SELECT  *  From  tbl_name;   
  382.   
  383.     
  384.   
  385.   
  386.   
  387.   
  388.   
  389. 组合查询    
  390. 组合查询是指所查询得资料来源并不只有单一的表格,而是联合一个以上的    
  391. 表格才能够得到结果的。    
  392. SELECT  *    
  393. FROM  table1,table2    
  394. WHERE  table1.colum1=table2.column1    
  395. 说明:    
  396. 1.查询两个表格中其中 column1 值相同的资料。    
  397. 2.当然两个表格相互比较的栏位,其资料形态必须相同。    
  398. 3.一个复杂的查询其动用到的表格可能会很多个。    
  399.   
  400. 整合性的查询:    
  401. SELECT   COUNT  (*)    
  402. FROM  table_name    
  403. WHERE  column_name = xxx    
  404. 说明:    
  405. 查询符合条件的资料共有几笔。    
  406. SELECT   SUM (column1)    
  407. FROM  table_name    
  408. 说明:    
  409. 1.计算出总和,所选的栏位必须是可数的数字形态。    
  410. 2.除此以外还有  AVG () 是计算平均、 MAX ()、 MIN ()计算最大最小值的整合性查询。    
  411. SELECT  column1, AVG (column2)    
  412. FROM  table_name    
  413. GROUP   BY  column1    
  414. HAVING   AVG (column2) > xxx    
  415. 说明:    
  416. 1. GROUP   BY : 以column1 为一组计算 column2 的平均值必须和  AVG SUM 等整合性查询的关键字    
  417. 一起使用。    
  418. 2. HAVING  : 必须和  GROUP   BY  一起使用作为整合性的限制。    
  419.   
  420. 复合性的查询    
  421. SELECT  *    
  422. FROM  table_name1    
  423. WHERE  EXISTS (    
  424. SELECT  *    
  425. FROM  table_name2    
  426. WHERE  conditions )    
  427. 说明:    
  428. 1. WHERE  的 conditions 可以是另外一个的 query。    
  429. 2.EXISTS 在此是指存在与否。    
  430. SELECT  *    
  431. FROM  table_name1    
  432. WHERE  column1  IN  (    
  433. SELECT  column1    
  434. FROM  table_name2    
  435. WHERE  conditions )    
  436. 说明:     
  437. 1.  IN  後面接的是一个集合,表示column1 存在集合里面。    
  438. 2.  SELECT  出来的资料形态必须符合 column1。    
  439.   
  440. 其他查询    
  441.   
  442. SELECT  *    
  443. FROM  table_name1    
  444. WHERE  column1  LIKE  'x%' ;   
  445. 说明: LIKE  必须和後面的'x%' 相呼应表示以 x为开头的字串。    
  446.   
  447. SELECT  *    
  448. FROM  table_name1    
  449. WHERE  column1  IN  ('xxx','yyy',..)    
  450. 说明: IN  後面接的是一个集合,表示column1 存在集合里面。    
  451.   
  452. SELECT  *    
  453. FROM  table_name1    
  454. WHERE  column1  BETWEEN  xx  AND  yy    
  455. 说明: BETWEEN  表示 column1 的值介於 xx 和 yy 之间。    
  456.   
  457.   
  458. 其它重要概念:   
  459. SQL 允许你创建一个虚拟列或对已有的列进组合和修改后产生的派生列。   
  460. SQL 允许可以创建一个新的虚拟列,而且还可以对它安自己的需要进行重命名,你可以按语法列名 别名来对任何一个列进行重命名(注意在列名与别名之间有空格)或用()括起来。   
  461.   
  462.   
  463. 词语解释:   
  464. numeric  [nju:'merik] adj.(=mumerical)数字的, 数值的   
  465. decimal  [desimEl] adj.以十作基础的, 十进位的   
  466.   
  467.   
  468. SQL查询语句精华使用简要   
  469.     
  470.     
  471.     
  472. 一、 简单查询    
  473.   简单的Transact-SQL查询只包括选择列表、 FROM 子句和 WHERE 子句。它们分别说明所查询列、查询的表或视图、以及搜索条件等。   
  474.   例如,下面的语句查询testtable表中姓名为 "张三" 的nickname字段和email字段。   
  475.   
  476.     SELECT  nickname,email   
  477.    FROM  testtable   
  478.    WHERE   name ='张三'    
  479.   
  480.   (一) 选择列表   
  481.   
  482.   选择列表(select_list)指出所查询列,它可以是一组列名列表、星号、表达式、变量(包括局部变量和全局变量)等构成。   
  483.   
  484.   1、选择所有列   
  485.   
  486.   例如,下面语句显示testtable表中所有列的数据:   
  487.   
  488.     SELECT  *   
  489.    FROM  testtable    
  490.   
  491.   2、选择部分列并指定它们的显示次序   
  492.   
  493.   查询结果集合中数据的排列顺序与选择列表中所指定的列名排列顺序相同。   
  494.   例如:   
  495.   
  496.     SELECT  nickname,email   
  497.    FROM  testtable    
  498.   
  499.   3、更改列标题   
  500.   
  501.   在选择列表中,可重新指定列标题。定义格式为:   
  502.   列标题=列名   
  503.   列名 列标题   
  504.   如果指定的列标题不是标准的标识符格式时,应使用引号定界符,例如,下列语句使用汉字显示列标题:   
  505.   
  506.     SELECT  昵称=nickname,电子邮件=email   
  507.    FROM  testtable    
  508.   
  509.   4、删除重复行   
  510.   
  511.    SELECT 语句中使用 ALL DISTINCT 选项来显示表中符合条件的所有行或删除其中重复的数据行,默认为 ALL 。使用 DISTINCT 选项时,对于所有重复的数据
分享到:
评论

相关推荐

    java毕设项目之ssm基于SSM的高校共享单车管理系统的设计与实现+vue(完整前后端+说明文档+mysql+lw).zip

    项目包含完整前后端源码和数据库文件 环境说明: 开发语言:Java 框架:ssm,mybatis JDK版本:JDK1.8 数据库:mysql 5.7 数据库工具:Navicat11 开发软件:eclipse/idea Maven包:Maven3.3 服务器:tomcat7

    YOLO算法-贴纸检测数据集-212张图像带标签-部分覆盖-未涵盖-完全覆盖.zip

    YOLO系列算法目标检测数据集,包含标签,可以直接训练模型和验证测试,数据集已经划分好,包含数据集配置文件data.yaml,适用yolov5,yolov8,yolov9,yolov7,yolov10,yolo11算法; 包含两种标签格:yolo格式(txt文件)和voc格式(xml文件),分别保存在两个文件夹中,文件名末尾是部分类别名称; yolo格式:<class> <x_center> <y_center> <width> <height>, 其中: <class> 是目标的类别索引(从0开始)。 <x_center> 和 <y_center> 是目标框中心点的x和y坐标,这些坐标是相对于图像宽度和高度的比例值,范围在0到1之间。 <width> 和 <height> 是目标框的宽度和高度,也是相对于图像宽度和高度的比例值; 【注】可以下拉页面,在资源详情处查看标签具体内容;

    zigbee CC2530无线自组网协议栈系统代码实现协调器按键控制终端LED灯和继电器动作.zip

    1、嵌入式物联网单片机项目开发例程,简单、方便、好用,节省开发时间。 2、代码使用IAR软件开发,当前在CC2530上运行,如果是其他型号芯片,请自行移植。 3、软件下载时,请注意接上硬件,并确认烧录器连接正常。 4、有偿指导v:wulianjishu666; 5、如果接入其他传感器,请查看账号发布的其他资料。 6、单片机与模块的接线,在代码当中均有定义,请自行对照。 7、若硬件有差异,请根据自身情况调整代码,程序仅供参考学习。 8、代码有注释说明,请耐心阅读。 9、例程具有一定专业性,非专业人士请谨慎操作。

    手语图像分类数据集【已标注,约2,500张数据】

    手语图像分类数据集【已标注,约2,500张数据】 分类个数【36】:0、1、a、b等【具体查看json文件】 划分了训练集、测试集。存放各自的同一类数据图片。如果想可视化数据集,可以运行资源中的show脚本。 CNN分类网络改进:https://blog.csdn.net/qq_44886601/category_12858320.html 【更多图像分类、图像分割(医学)、目标检测(yolo)的项目以及相应网络的改进,可以参考本人主页:https://blog.csdn.net/qq_44886601/category_12803200.html】

    CNCAP 2024打分表

    CNCAP 2024打分表

    基于小程序的智慧校园管理系统源代码(java+小程序+mysql+LW).zip

    系统可以提供信息显示和相应服务,其管理智慧校园管理系统信息,查看智慧校园管理系统信息,管理智慧校园管理系统。 项目包含完整前后端源码和数据库文件 环境说明: 开发语言:Java JDK版本:JDK1.8 数据库:mysql 5.7 数据库工具:Navicat11 开发软件:eclipse/idea Maven包:Maven3.3 部署容器:tomcat7 小程序开发工具:hbuildx/微信开发者工具

    【图像去噪】基于matlab PolSAR GWLS滤波器图像去噪【含Matlab源码 9937期】.zip

    Matlab领域上传的视频均有对应的完整代码,皆可运行,亲测可用,适合小白; 1、代码压缩包内容 主函数:main.m; 调用函数:其他m文件;无需运行 运行结果效果图; 2、代码运行版本 Matlab 2019b;若运行有误,根据提示修改;若不会,私信博主; 3、运行操作步骤 步骤一:将所有文件放到Matlab的当前文件夹中; 步骤二:双击打开main.m文件; 步骤三:点击运行,等程序运行完得到结果; 4、仿真咨询 如需其他服务,可私信博主; 4.1 博客或资源的完整代码提供 4.2 期刊或参考文献复现 4.3 Matlab程序定制 4.4 科研合作

    影音互动科普网站-JAVA-基于SpringBoot的哈利波特书影音互动科普网站设计与实现(毕业论文)

    影音互动科普网站功能描述 影音互动科普网站旨在通过多媒体形式(视频、音频、互动内容等)传播科学知识,提高公众的科学素养。该网站结合娱乐与教育,提供易于理解的科普内容,吸引不同年龄层次的用户参与和学习。以下是该网站的主要功能描述: 1. 用户注册与登录 用户注册:用户可以通过电子邮箱、手机号或社交账号(如微信、微博等)注册,提供基本信息并设置密码。 用户登录:支持通过注册的账号登录,保障个人信息的安全性,并提供自动登录功能。 2. 科普视频与音频库 视频内容:网站提供各类科普视频,包括短视频、纪录片、讲座、实验演示等,覆盖物理、化学、生物、地理、天文等多个领域。 音频内容:提供科普音频节目,如科普广播、播客、专题讲座等,便于用户在日常生活中进行学习。 视频分类:按科目、难度、年龄层、时长等维度对视频和音频进行分类,帮助用户更精准地找到感兴趣的内容。 字幕与多语言支持:提供字幕、翻译和多语种版本,帮助不同语言的用户学习。 3. 互动问答与讨论区 专家问答:用户可以向科普专家提问,专家提供详尽的解答,解决用户的科学疑惑。 社区讨论:用户可以在视频下方或专题页面中发表评论、提问或与其他用户

    倪海厦讲义及笔记,易学数据测算

    倪海厦讲义及笔记,易学数据测算

    【组合数学答案】组合数学-苏大李凡长版-课后习题答案

    内容概要:本文档是《组合数学答案-网络流传版.pdf》的内容,主要包含了排列组合的基础知识以及一些经典的组合数学题目。这些题目涵盖了从排列数计算、二项式定理的应用到容斥原理的实际应用等方面。通过对这些题目的解析,帮助读者加深对组合数学概念和技巧的理解。 适用人群:适合初学者和有一定基础的学习者。 使用场景及目标:可以在学习组合数学课程时作为练习题参考,也可以在复习考试或准备竞赛时使用,目的是提高解决组合数学问题的能力。 其他说明:文档中的题目覆盖了组合数学的基本知识点,适合逐步深入学习。每个题目都有详细的解答步骤,有助于读者掌握解题思路和方法。

    管理系统开发指南:功能要求、技术栈及安全控制

    内容概要:本文是一篇完整的管理系统开发指南,详细介绍了功能要求、技术栈选择、数据库设计、用户界面搭建以及安全控制等方面的内容。功能要求包括用户管理、权限控制、数据管理、系统日志、通知与消息、统计分析和扩展模块。使用的技术栈涵盖了后端(Java、Python、C#等)和前端(React、Vue.js、Angular等)技术,以及数据库设计和安全控制措施。 适合人群:具备一定开发经验的软件工程师和技术管理人员。 使用场景及目标:适用于企业级管理系统开发项目,旨在构建一个高效、安全且易于扩展的系统。开发者可以参考本文档进行系统的设计和实现,确保系统满足业务需求。 其他说明:本文档提供了详细的步骤和最佳实践,帮助开发者更好地理解和应用管理系统开发的各种技术。通过结合实际案例和实践经验,本文档能够为开发者提供有价值的指导。

    听器听力损伤程度分级表.docx

    听器听力损伤程度分级表.docx

    MATLAB代码:基于条件风险价值的合作型Stackerlberg博弈微网动态定价与优化调度 关键词:微网优化调度 条件风险价值 合作博弈 纳什谈判 参考文档:A cooperative Stack

    MATLAB代码:基于条件风险价值的合作型Stackerlberg博弈微网动态定价与优化调度 关键词:微网优化调度 条件风险价值 合作博弈 纳什谈判 参考文档:《A cooperative Stackelberg game based energy management considering price discrimination and risk assessment》完美复现 仿真平台:MATLAB yalmip+cplex+mosek 主要内容:代码主要做的是一个基于合作型Stackerlberg博弈的考虑差别定价和风险管理的微网动态定价与调度策略,提出了一个双层能源管理框架,实现多个微网间的P2P能源交易,上层为零商的动态定价模型,目标是社会福利最大化;下层是多个产消者的合作博弈模型,优化各产消者的能量管理策略。 同时,采用纳什谈判法对多个产消者的合作剩余进行公平分配,还考虑了运行风险,采用条件风险价值(CVaR)随机规划方法来描述零商的预期损失。 求解方面,双层模型被基于KKT条件转为单层模型,模型可以高效求解。 这段代码是一个基于合作型Stackelberg博弈的微网

    YOLO算法-监控数据集-873张图像带标签-警方-警车-救护车-消防车-跌倒的人-消防员.zip

    YOLO系列算法目标检测数据集,包含标签,可以直接训练模型和验证测试,数据集已经划分好,包含数据集配置文件data.yaml,适用yolov5,yolov8,yolov9,yolov7,yolov10,yolo11算法; 包含两种标签格:yolo格式(txt文件)和voc格式(xml文件),分别保存在两个文件夹中,文件名末尾是部分类别名称; yolo格式:<class> <x_center> <y_center> <width> <height>, 其中: <class> 是目标的类别索引(从0开始)。 <x_center> 和 <y_center> 是目标框中心点的x和y坐标,这些坐标是相对于图像宽度和高度的比例值,范围在0到1之间。 <width> 和 <height> 是目标框的宽度和高度,也是相对于图像宽度和高度的比例值; 【注】可以下拉页面,在资源详情处查看标签具体内容;

    (175526236)【动漫网页设计】源码免费分享,让你的网站更有趣!

    20块钱买的【动漫网页设计】源码,免费分享出来啦,如果要积分那是系统自动涨的啦。 内容概要:本资源是一份动漫网页设计的源码,价格仅为20元,作者将其免费分享给大家。该源码包含了动漫元素的设计,包括背景、图标、按钮等,同时也提供了一些常见的网页布局和交互效果。通过该资源,可以学习到动漫网页设计的基本原理和技巧。 适用人群:本资源适用于对动漫网页设计感兴趣的人群,包括网页设计师、UI设计师、前端开发工程师等。同时,对于想要学习动漫网页设计的初学者也非常适用。 使用场景及目标:该资源可以用于学习和实践动漫网页设计的技巧和原理。通过学习该源码,可以了解到动漫网页设计的基本要素和设计思路,同时也可以借鉴其中的设计元素和交互效果,应用到自己的网页设计中。 其他说明:本资源是作者自己设计的,经过了多次修改和优化,具有一定的参考价值。同时,作者也将其价格设置的非常低,希望更多的人可以学习到动漫网页设计的技巧和方法。如果您对该资源有任何疑问或建议,欢迎在评论区留言,作者会尽快回复。。内容来源于网络分享,如有侵权请联系我删除。另外如果没有积分的同学需要下载,请私信我。

    C++程序设计-参考答案

    自考 本科 C++程序设计-课本 参考答案

    每周质量安全排查报告.docx

    每周质量安全排查报告.docx

    YOLO算法-杂草检测项目数据集-3970张图像带标签-杂草.zip

    YOLO算法-杂草检测项目数据集-3970张图像带标签-杂草.zip

    内存搜索工具(易).rar

    内存搜索工具(易).rar

    2024 AGM Meritech Market Section (External).pdf

    AI大模型研究相关报告

Global site tag (gtag.js) - Google Analytics