ImageVerifierCode 换一换
格式:DOCX , 页数:12 ,大小:20.54KB ,
资源ID:24614259      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/24614259.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(关于MySql的SQL语言MySQL入门教程.docx)为本站会员(b****4)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

关于MySql的SQL语言MySQL入门教程.docx

1、关于MySql的SQL语言MySQL入门教程关于 MySql 的 SQL 语言 目前常用的数据库有 Oracle 公司的 Oracle , Microsoft 公司的 SQL Server , IBM 公司的 DB2 和 MySql 公司的 MySql, 而免费的数据库目前只有 MySql ,当然盗版的不算。 SQL (Structured Query Language) 结构化查询语言是目前一个国际上标准的数据库专用语言。 不过不同的数据库所使用的 SQL 语句都会稍有一些不同,但基本的标准还是会遵循 SQL ,例如: 用与 SQL Server 的叫做 PL-SQL ,用于 Oracle

2、的叫做 T-SQL ,它们都是 SQL 的子类,或者说是派生类。用于 MySql 的我还不知道它叫做什么 SQL ,不过个人觉得它反而最接近标准的 SQL 语言,不过,从另一方面来说,它对 SQL 所做的扩展最少。 就我现在的理解 SQL 语言就是用来使用数据库和操作数据用的,不包括操作数据库,那些操作数据库的代码应该叫做命令,如:启动,关闭数据库,设置字符集,设置访问连接用户数等,这些不属于 SQL 语言,不同的数据库都有自己的命令,这些命令是生产企业制定的。下面,我大概来说一下 SQL 所做的事情创建数据库,创建表,插入、修改、删除数据, 查询数据(最主要的是这个功能,方便数据的储存和查询

3、是人们发明数据库的理由)。 当然,我下面介绍的 SQL 都是用于 MySql 的。 SQL 基础知识 一、 数据类型 INT 常用 整数 BIGIN 大整数 FLOAT ( 单精密 ) 浮点数字 DOUBLE 常用 ( 双精密 ) 浮点数字 NUMERIC(M,D) 常用 未压缩 (unpack) 的浮点数字, “ 未压缩 ” 意味着数字作为一个字符串被存储,值的每一位使用一个字符。例: NUMERIC(16,2) 表示这个 浮点数字的储存空间为 16 个字节,精度为 2 (即小数点后保留 2 位数字)。 DATE 常用 日期 DATETIME 常用 日期和时间组合 CHAR(M) 一个定长字

4、符串 TIMESTAMP(M) 常用 时间戳记。以 YYYYMMDDHHMMSS 、 YYMMDDHHMMSS 、 YYYYMMDD 或 YYMMDD 格式来显示 TIMESTAMP 值,例: TIMESTAMP(14) 格式为YYYYMMDDHHMMSS、TIMESTAMP(8) 格式为YYYYMMDD VARCHAR(M) 常用 可变长度的字符串 BLOB 大对象存储类型 TEXT 常用 大文本存储类型, 最大长度为 65535(216-1) 个字符 我觉得用的多的类型用 常用 标记了一下,相关时间的那几个各有各的优点,就看你的需要了。 二、 变量 declare iAge int - 声

5、明变量 set iAge = 12 - 给变量附值 print iAge - 打印变量 select iAge:= iage from employe where name=Bill ; 将查询到字段给变量附值 注意 : 这里, select 语句中我们不得不使用 := 句法,因为 = 是为比较保留的 三、 逻辑控制 - IF 条件判断 declare i int set i = 12 if (i 10) begin print Dadadada! print Dadadada! end else begin print XiaoXiao! print XiaoXiao! end - Whil

6、e 循环控制 declare i int; set i = 12; print i return; while (i 18) begin print i; set i = i + 1; if i 15 break; end; - CASE 分支判断 select au_lname, state, 犹他州 from authors where state = UT select au_lname, state, 密西西比州 from authors where state = MI select au_lname, state, 肯塔基州 from authors where state = K

7、S select au_lname, state, case state when UT then 犹他州 when MI then 密西西比州 when KS then 肯塔基州 when CA then 加利福利亚 else state end from authors 四、 函数 这部分的内容很多 , 我也不是很熟这里就我所知道的列一点 : - 获取给定字符串的长度 print length(abcdef) - 大小写转换 print lower(ABCDEF) print upper(abcdef) - 去空格 print ltrim( abcd dfd df ) print rtri

8、m( abcd dfd df ) - 求绝对值 print abs(-12) - 幂 - 3 的 2 次方 print power(3,2) - 随机数 - 0 - 1000 之间的随机数 print rand() * 1000 - 获取圆周率 print pi() - 获取系统时间 print now() - 获取指定时间之间相隔多少年 print datediff(year, 2005-01-01, 2008-01-01) - 字符串合并 print abc + def print abc + 456 - 获取指定时间的特定部分 print datepart(year, now() - 获

9、取字符串中的一段 print SUBSTRING( abcdef ,1,3) - 获取纪录个数 select count(*) from employe; - 获取指定工资的和 select sum(salary) from employe; - 获取年龄大于 30 岁员工的最高工资 select max(salary) from employe where iage30; 等等 五、 注释 # 单行注释 - 单行注视 /* 内容 */ 多行注释 SQL 常规应用 一、 创建数据库 用给定的名字创建一个数据库 CREATE DATABASE db_name 删除数据库中给定名字的数据库(慎重使

10、用) DROP DATABASE IF EXISTS db_name 调出要用的数据库 USE db_name 下面是一个完整的创建例子,同时创建了一个数据库 log 文件 - 指定数据库名称 - ( 注:如果数据库名中包含空格可以使用 将其标示 ) create database Super WC - 关于数据文件的定义 on ( name = Super_WC_Data, - 逻辑名 filename = C:Super_WC_Data.MDF, - 物理路径以及物理名 size = 2MB, - 初始大小 maxsize = 4MB, - 最大限制 filegrowth = 1MB -

11、增长大小 ) - 关于日志文件的定义 log on ( name = Super_WC_Log, filename = C:Super_WC_Log.LDF, size = 3MB, maxsize = 7MB, filegrowth = 20% - 增长比例 ) 二、 创建表 drop table if exists auto_incr_test; - 先把以前数据库中有可能存在的表删除 create table auto_incr_test ( id int not null auto_increment, - 这里的 not null 代表这一列的值不能为空默认是 null name c

12、har(40), timestamp timestamp, primary key (id) - 创建主键 foreign key (name) references students (no), - 创建外键 ) /* 上面出现的 auto_increment 代表了 id 这个列是一个自动增长列 */ 要删除这个表就用 drop table auto_incr_test; 就可以了 . 下面是包含约束的情况(设置约束可以增强数据库的完整性,但需要事先精确的设计,因为改动起来实在是太麻烦了): create table students ( no char(4) not null auto_

13、increment primary key, name nvarchar(8) not null, birthday datetime check(datediff(year, birthday, now() = 18), age as datediff(year, birthday, now (), sex nchar(1) not null default( 女 ) check(sex = 女 or sex = 男 ), phone char(11) check(phone is null) or (length(phone) = 11), address nvarchar(24) ) 注

14、意:表创建后修改起来比较麻烦,如果不是一定要修改的话可以删了再创建,尽量设计时就把握好需求,设计完美一点。 三、 数据操作 ( 添、删、改、查 ) 传说中著名的添删改查 添加操作 (insert) 的语法格式: Insert into 数据表 ( 字段 ) values ( 数据 ) - into 可以省略 例:INSERT tbl_name (col1,col2) VALUES(15, abc ); 修改操作 (update) 的语法格式: Update 数据表 set 字段 = 新值 where 条件 例:UPDATE tbl_name SET col2= BBB WHERE col2=a

15、bc;删除操作 (delete) 的语法格式: Delete from 数据表 where 条件 - 内的可写可不写,最好是写,不过懒人都不写 例:DELETE tbl_name WHERE col2=abc ; 查询操作 (select) 的语法格式: select 字段 from 数据表 where 条件 order by 字段 desc/asc /* 这里的 order by 是用来指定排序依赖列, desc 是指以降序排列(默认的是 asc 升序) */ 例:SELECT col1,col2 FROM tbl_name WHERE col2=abc ORDER BY col1 DESC

16、 ; 注意:方便数据的储存和查询是人们发明数据库的理由,所以查询操作是 SQL 中的精髓之一,我上面的格式只是列出了较常用的格式,但只要是程序功能要求稍微复杂点的就要用到许多查询语句的高级特性了,我会在后面介绍我所能了解的。 SQL 高级应用 一、 高级查询 1 高级查询(就是把 SQL 定义的 SELECT 语句的语法都用到了的) SELECT STRAIGHT_JOIN SQL_SMALL_RESULT SQL_BIG_RESULT HIGH_PRIORITY DISTINCT | DISTINCTROW | ALL select_expression,. INTO OUTFILE | D

17、UMPFILE file_name export_options FROM table_references WHERE where_definition GROUP BY col_name,. HAVING where_definition ORDER BY unsigned_integer | col_name | formula ASC | DESC ,. LIMIT offset, rows PROCEDURE procedure_name GROUP BY 用于分组查询 HAVING 用于聚合函数的查询条件 LIMIT 用于限制SELECT语句返回的行数 2 多表查询(又叫联合查询)

18、 查找与多个表相关的数据,例: Select name,iage,city from students a inner join address b where a.addressid=b.id and name= Bill ; 3 子查询(很多内容,我不能尽举) 有两种类型的子查询:“嵌套”子查询和“相关”子查询。 例: - 子查询 - 根据作者的名查找其编写的书籍 - 先通过子查询获取作者编号 - 然后,将其作为查询条件,找出相应的书籍编号 - 最后,在利用所得到的书籍编号来得到书籍信息 select au_id, title_id from titleauthor where au_id

19、 = (select au_id from authors where au_lname = Green) select * from titles where title_id in ( select title_id from titleauthor where au_id = (select au_id from authors where au_lname = Green) ) 二、 视图 CREATE OR REPLACE ALGORITHM = UNDEFINED | MERGE | TEMPTABLE VIEW view_name (column_list) AS select_

20、statement WITH CASCADED | LOCAL CHECK OPTION 例: CREATE VIEW v AS SELECT qty, price, qty*price AS value FROM t; 三、 存储过程 CREATE PROCEDURE sp_name (proc_parameter,.) characteristic . routine_body 例: create procedure proGetJobsByPage CurrentPageSize int, PageSize int, CurrentPage int as Declare strSql n

21、varchar(400) set strSql = select * from (select top + convert(nvarchar(4), CurrentPageSize) + * from (select top + convert(nvarchar(4),(PageSize * CurrentPage) + * from jobs) as tt order by job_id desc) as stt order by job_id exec sp_executesql strSql 四、 触发器 CREATE TRIGGER trigger_nametrigger_timetr

22、igger_event ON tbl_name FOR EACH ROW trigger_stmt 例: - 创建插入触发器 create trigger emp_marins on emp_mgr for insert as declare e char(30),m char(30) declare cur_mgr cursor for select emp_mgr.emp from emp_mgr,inserted where emp_mgr.emp = inserted.mgr open cur_mgr fetch next from cur_mgr into e while fetch

23、_status = 0 begin update emp_mgr set emp_mgr.NoOfReports = emp_mgr.NoOfReports + 1 where emp_mgr.emp = e fetch next from cur_mgr into e end close cur_mgr deallocate cur_mgr 五、 索引(很有用,可以提高查询语句的执行效率) CREATE UNIQUE|FULLTEXT|SPATIAL INDEX index_name USING index_type ON tbl_name (index_col_name,.) 例: 此处展示的语句用于创建一个索引,索引使用列 name 。 CREATE INDEX part_of_name ON customer (name); OK ,先些这些啦,累死了,呵呵 (如有错误,请大家不吝赐教 )

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1