计算机二级《MySQL数据库程序设计》知识点总结
- 格式:docx
- 大小:50.12 KB
- 文档页数:12
mysql数据库基本知识点总结MySQL数据库基本知识点总结MySQL是一种广泛使用的关系型数据库管理系统,它具有开源、高效、稳定等优点,被广泛应用于各种类型的应用程序中。
本文将介绍MySQL的一些基本知识点,包括安装、配置、数据类型、SQL语句等。
一、安装和配置MySQL1.下载MySQL:在官方网站上下载适合自己操作系统的MySQL安装包。
2.安装MySQL:按照安装向导进行安装,设置root用户密码和端口号等信息。
3.配置MySQL:修改f文件中的参数,如字符集、缓存大小等。
二、数据类型1.数值类型:- 整数类型:TINYINT、SMALLINT、MEDIUMINT、INT和BIGINT。
- 浮点数类型:FLOAT和DOUBLE。
- 定点数类型:DECIMAL。
2.日期时间类型:- DATE:日期类型,格式为YYYY-MM-DD。
- TIME:时间类型,格式为HH:MM:SS。
- DATETIME:日期时间类型,格式为YYYY-MM-DD HH:MM:SS。
- TIMESTAMP:时间戳类型,记录从1970年1月1日00:00:00到当前时间的秒数。
3.字符串类型:- CHAR(n):固定长度字符串,最大长度为255个字符。
- VARCHAR(n):可变长度字符串,最大长度为65535个字符。
- TEXT:长文本字符串。
- BLOB:二进制数据块。
三、SQL语句1.数据查询:- SELECT:查询数据。
- FROM:指定数据表。
- WHERE:筛选条件。
- ORDER BY:排序方式。
- LIMIT:限制返回的记录数。
2.数据更新:- INSERT INTO:插入新记录。
- UPDATE:更新记录。
- DELETE FROM:删除记录。
3.数据管理:- CREATE DATABASE:创建数据库。
- DROP DATABASE:删除数据库。
- CREATE TABLE:创建数据表。
- ALTER TABLE:修改数据表结构。
2023年计算机二级《MySQL数据库程序设计》考试全真模拟易错、难点汇编贰(答案参考)(图片大小可自由调整)一.全考点综合测验(共50题)1.【单选题】面向对象的设计方法与传统的面向过程的方法有本质不同,它的基本原理是( )。
A.模拟现实世界中不同事物之间的联系B.强调模拟现实世界中的算法而不强调概念C.使用现实世界的概念抽象地思考问题从而自然地解决问题D.不强调模拟现实世界中的算法而强调概念正确答案:C2.【单选题】若有定义“ int a=5 ,b=7;”,则表达式a%一(b%2) 运算后, a 的值为( )。
A.0B.1C.11D.3正确答案:A3.【单选题】恢复MySQL数据库可使用的命令是______。
A.mysqldumpB.mysqladminC.mysqlD.mysqld正确答案:C4.【单选题】下列关于表和视图的叙述中错误的是______。
A.视图可以和表一起使用B.表和视图上都可以创建索引C.表和视图的数据都可以进行更新操作,但视图的更新受限D.表和视图都可以使用SQL语句进行查询正确答案:B5.【单选题】查找学生表student 中姓名的第二个字为"t" 的学生学号Sno 和姓名sname,下面A.SELECT SRO ,shame FROM student WHERE sname="_t%";B.SELECT Sno,sname FROM student WHERE shame LIKE "_t%" ;C.SELECT sno,shame FROM student WHERE sname="%t_";D.SELECT sno,shame FROM student WHERE sname LIKE "%t_" ;正确答案:B6.【单选题】关于E-R 图,以下描述中正确的是______。
2023年计算机二级《MySQL数据库程序设计》考试全真模拟易错、难点汇编叁(带答案)(图片大小可自由调整)一.全考点综合测验(共45题)1.【单选题】下列关于SQL的叙述中,正确的是______。
A.SQL是专供MySQL使用的结构化查询语言B.SQL是一种过程化的语言C.SQL是关系数据库的通用查询语言D.SQL只能以交互方式对数据库进行操作正确答案:C2.【单选题】在讨论关系模型时,与“属性”同义的术语是______。
A.元组B..NC.. 表D.关系正确答案:B3.【单选题】下列SQL语句中,创建关系表的是____。
A.ALTERB.CREATEC.UPDATED.INSERT正确答案:B4.【单选题】语句int(*ptr)() 的含义是( )。
A.ptr 是一个返回值为int 的函数B.ptr 是指向int 型数据的指针变量C.ptr 是指向函数的指针,该函数返回一个int 型数据D.ptr 是一个函数名,该函数的返回值是指向int 型数据的指针正确答案:C5.【单选题】对于日期"2013 年10 月21 日",MySQL默认显示的格式是______。
A."2013-10-21"B."2013-21-10"C."10-21-2013"D."21-10-2013"正确答案:A6.【单选题】在使用CREATE INDEX创建索引时,其默认的排序方式是______。
A.升序B.降序C.无序D.聚簇正确答案:A7.【单选题】下列程序的输出结果是( )。
#includevoid p(int*x){ printf("%d ¨,++*x);}void main(){ int y=3;p(&y);}A.3B.4C.2D.5正确答案:B8.【单选题】在使用SHOW GRANTS命令显示用户权限时结果为USAGE,该用户拥有的权限为______。
Mysql知识点与笔记1. 数据库的三范式是什么?第⼀范式:强调的是列的原⼦性,即数据库表的每⼀列都是不可分割的原⼦数据项。
第⼆范式:要求实体的属性完全依赖于主关键字。
所谓完全依赖是指不能存在仅依赖主关键字⼀部分的属性。
第三范式:任何⾮主属性不依赖于其它⾮主属性。
2. ⼀张⾃增表⾥⾯总共有 7 条数据,删除了最后 2 条数据,重启 MySQL 数据库,⼜插⼊了⼀条数据,此时 id 是⼏?表类型如果是 MyISAM ,那 id 就是 8。
表类型如果是 InnoDB,那 id 就是 6。
InnoDB 表只会把⾃增主键的最⼤ id 记录在内存中,所以重启之后会导致最⼤ id 丢失。
3. 如何获取当前数据库版本?使⽤ select version() 获取当前 MySQL 数据库版本。
4. 说⼀下 ACID 是什么?Atomicity(原⼦性):⼀个事务(transaction)中的所有操作,或者全部完成,或者全部不完成,不会结束在中间某个环节。
事务在执⾏过程中发⽣错误,会被恢复(Rollback)到事务开始前的状态,就像这个事务从来没有执⾏过⼀样。
即,事务不可分割、不可约简。
Consistency(⼀致性):在事务开始之前和事务结束以后,数据库的完整性没有被破坏。
这表⽰写⼊的资料必须完全符合所有的预设约束、触发器、级联回滚等。
Isolation(隔离性):数据库允许多个并发事务同时对其数据进⾏读写和修改的能⼒,隔离性可以防⽌多个事务并发执⾏时由于交叉执⾏⽽导致数据的不⼀致。
事务隔离分为不同级别,包括读未提交(Read uncommitted)、读提交(read committed)、可重复读(repeatable read)和串⾏化(Serializable)。
Durability(持久性):事务处理结束后,对数据的修改就是永久的,即便系统故障也不会丢失。
5. char 和 varchar 的区别是什么?char(n) :固定长度类型,⽐如订阅 char(10),当你输⼊"abc"三个字符的时候,它们占的空间还是 10 个字节,其他 7 个是空字节。
Mysql数据库知识点总结⼀、基本概念1、数据库服务器我们可以理解为数据库服务器即是⼀台内存较⾼的计算机,可以在上⾯运⾏数据库管理软件2、数据库管理系统如Mysql,是⼀个软件,⽤来管理数据库的软件3、数据库即⽂件夹,⽤来组织⽂件4、表即⽂件,⽤来存放多条记录,每条记录为多个字段组成的⼀⾏数据⼆、Mysql基本介绍Mysql是⽬前WEB应⽤最好的RDBMS(Relation Database Mangement System)关系数据库管理系统之⼀关系型数据库是将数据保存到不同的表⾥⾯,⽽不是将数据放到⼀个⼤仓库内关系型数据库与⾮关系型数据库的区别是:关系型数据库有表结构,⾮关系型数据库是通过key-value存储,⽆表结构Mysql使⽤的是标准的SQL数据语⾔形式,⽀持多种语⾔,⽀持5000万条的数据仓库,32位系统表⽂件最⼤⽀持4GB,64位系统最⼤⽀持表⽂件为8TB通俗的讲:Mysql就是⼀个基于socket编写的C/S架构的软件储存引擎mysql默认的查询引擎为innodb,可以⾃⾏进⾏更改语法:win:启动mysql服务端,在cmd窗⼝运⾏mysqld数据库初始化命令:mysql-initialize-insecure启动mysql客户端,并连接服务端mysql -uroot -p连接其他ip数据库,mysql -u账号 -hIP地址 -P端⼝号 -p密码查看当前登陆⽤户:select user( )刷新权限,执⾏命令:flush privileges;查看进程:tasklist | findstr mysql杀死进程:tasklist /F /PID 进程号mac:设置新密码:set password for '⽤户名'@'IP地址'=password('');查看系统进程:ps -A杀死系统进程:sudo kill -9 PID操作⽂件夹(库):增加⼀个库:create database db1 charset utf8;查看所有库: show databases;查看特定库: show create database db1;删库跑路: drop database db1;操作⽂件(表):切换进数据库:use db1;查看当前所在⽂件夹;select database( );增加表:create table t1(id int,name char(6));查看特定表:show create table t1;查看所有表:show tables;或者desc t1;改:alter table t1 modify name char(10);name字段改为10字节;alter table t1 modify name NAME char(10);name字段名改成NAME复制表即复制表数据也复制表结构:create table t1 select * from db1.t1;只复制表结构create table a1 like db1.t1;清空表delete from t1;但是这种⽅法会保留⾃增的IDtruncate table t1;这种⽅法不会保留⾃增ID操作⽂件内容增加内容:insert into (id,name) values(1,'aa'),(2,'bb'),(3,'cc');查看内容:select * from db1.t1;删除内容:delete from t1 where id =1;查看⽤户权限:select * from mysql.user where user='root'\G;三、SQL数据类型SQL之中没有bool值,tinyint[1]表⽰true;tinyint[0]表⽰fasle.int数据类型后⾯存储的是显⽰宽度,⽽不是存储宽度,其他的数据类型则表⽰的是存储宽度now()sql中的内置函数,根据数据类型⽣成相对应的时间模式char( )定长字符串,存储速度快,但是浪费空间varchar( )变长字符串,存储速度慢,可是节省空间enum() 表⽰枚举 多选⼀set( )表⽰集合 多选多四、约束:作⽤是保证数据的完整性和⼀致性not null 表⽰该字段数据不能为空default 表⽰该字段的默认值unique 唯⼀(列唯⼀,组合唯⼀)primary key 主键 ⼀张列表中只允许出现⼀个主键(not null + unique)auto-increment ⾃增长foregin key 外键 建⽴两个表之间的联系语法 constraint fk_dep foreign key(关联列名) references 被关联表(被关联列)on delete cascade 同步删除on update cascade 同步更新五、查询:单表查询的关键字执⾏顺序from 说明是来⾃那⼀张表where 条件 后⾯可以跟⽐较运算符 between and in(. ). like(%表⽰任意字符 _表⽰⼀个字符)逻辑运算符 group by 以某个字段的值进⾏分组,发⽣在where之后,查看组类信息依赖于聚合函数max min avg sum counthaving 过滤,在group by 后⾯的条件筛选order by 排序 asc升序 desc降序limite 限制查询 记录数 limte a, b. a表⽰从第a个开始,b表⽰查询b条多表连接查询语法:select 字段 from t1 inner/left/right join t2 on t1.字段=t2.字段;inner 表⽰只显⽰连接匹配的⾏left:优先显⽰左表的全部记录right:优先显⽰右表的全部记录⼦查询中的关键字in/not in:查询的结果是否在⼦表中运算符:= < > !=exits:表⽰存在,使⽤此关键字时,内层查询语句不返回查询的记录,⽽是返回⼀个布尔值,当此布尔值为真时外层语句进查询,反之不进⾏查询六、pymysql简单使⽤连接:conn=pymysql.connect(host='IP',port=端⼝号,user='root',password='',db=db1,charset='utf8')创建游标:cursor=conn.cursor( )写sql语句:sql=‘’执⾏sql语句,返回在数据库中查询成功的记录⾏数,result=cursor.execute(sql);在result中可以进⾏字符的拼接,execute(sql,[user,pwd]),即execute注⼊,防治恶意语法使⽤mysql模块进⾏增删改操作时需使⽤commit( )⽅法进⾏提交,否则数据库更改不⽣效;conn.commit( )查询操作:fetchone( )获取下⼀⾏数据,从第⼀⾏开始;fetchall( )获取所有⾏数据,;fetchany(n),获取n⾏数据查询操作默认返回的是元组,使⽤如下语句获取游标,改变cursor属性,会返回字典:cursor=conn.cursor(cursor=pymysql.cursors.DictCursor)移动指针:cursor.scroll(1,mode='relative')相对定位,相对当前位置向下移动cursor.scroll(1,mode='abusolute'绝对定位,相对左上⾓向下移动关闭连接,游标和连接都需要关闭:cursor.close( ). conn.close( )七、索引索引的作⽤:约束和加速查找⽆索引的时候⼀般会 从前⾄后⼀条条查找有索引的时候:创建索引的本质就是创造额外的⽂件,查询时先去额外的⽂件找,定好位置,再去原始表直接查询,提⾼查询速度,但是增删改的速度依然慢,创建索引后必须命中索引才有效索引的分类1、普通索引:加速查询加⼊索引:create index 索引名 on 表名(列名)删除索引: drop index 索引名 on 表名查看索引:show index from 表名2、唯⼀索引:加速查找和唯⼀约束(可含null)加⼊索引:create unique index 索引名 on 表名(列名)删除:drop index 索引名 on 表名3、主键索引加⼊索引:alter table 表名 add primary key(列名)删除索引:alter table 表名 drop primary key(列名)和alter table 表名 modify 列名 int,drop primary key4、组合索引:将多个列组合成⼀个索引创建组合索引:create iindex 索引名 on 表名(列1,列2)在使⽤组合索引时,若组合索引为(name,email),单独索引email时不⾛索引,这称为最左前缀匹配原则,最左匹配原则中,mysql会⼀直向右匹配知道遇到(< > between like)这⼀类的范围查询时停⽌explain + sql查询语句,⽤于查询sql执⾏信息参数在使⽤关键字‘like’查询时:like ‘n%’ ⾛索引;但是like ‘%n%’不⾛索引,即有且仅只有后⾯带上%时⾛索引使⽤函数时索引不⽣效
计算机二级mysql考试内容
计算机二级mysql考试内容包括以下几个方面:
1. 数据库概念和方法:要了解数据库的基本概念,包括数据库的定义、特点、组成以及数据库管理系统(DBMS)等。
还需要掌握数据库设计的方法和步骤,如数据模型的设计和规范化。
2. SQL语言:要熟悉在MySQL平台下使用SQL语言进行数据库操作的知识点,包括:
- 数据库操作:创建、修改、删除数据库和表等。
- 数据查询:使用SELECT语句从数据库中检索信息,包括条件查询、排序、分组等。
- 数据插入、更新和删除:使用INSERT、UPDATE和DELETE语句对数据进行增删改操作。
- 数据库连接:了解不同表之间的关联和连接操作,如INNER JOIN、LEFT JOIN等。
3. 交互操作:了解如何在MySQL平台下执行交互式操作,包括执行SQL语句、查看和修改数据库中的数据等。
4. MySQL数据库编程:了解如何使用编程语言(如Python、Java等)与MySQL数据库进行交互,实现数据
的增删改查等操作。
5. MySQL管理维护:了解如何管理和维护MySQL数据库,包括备份与恢复、性能优化、用户管理和权限设置等。
6. MySQL应用编程:了解MySQL数据库的应用编程技术,包括存储过程、触发器、事务处理等。
2023年计算机二级《MySQL数据库程序设计》考试全真模拟易错、难点汇编贰(答案参考)(图片大小可自由调整)一.全考点综合测验(共50题)1.【单选题】在数据库中,产生数据不一致的根本原因是____。
A.数据存储量太大B.没有严格保护数据C.未对数据进行完整性控制D.数据冗余正确答案:D2.【单选题】有以下程序:输出结果是( )。
#includeint abe(int u ,int v);main(){ int a=24 ,b 一16,c;c=abc(a ,b);printf("%d\n" ,c);}{ int w;while(v){w=u%v;u=v;v=w;)return;}A.6B.7C.8D.9正确答案:C3.【单选题】数据的存储结构是指( )。
A.数据所占的存储空间B.数据的逻辑结构在计算机中的存放形式C.数据在计算机中的顺序存储方式D.存储在计算机外存中的数据正确答案:B4.【单选题】下列关于视图的叙述中,正确的是______。
A.使用视图,能够屏蔽数据库的复杂性B.更新视图数据的方式与更新表中数据的方式相同C.视图上可以建立索引D.使用视图,能够提高数据更新的速度正确答案:A5.【单选题】现要求删除MySQL数据库中已创建的事件,通常使用的语句是______。
A.DROP EVENTB.DROP EVENTSC.DELETE EVENTD.DELETE EVENTS正确答案:A6.【单选题】下列关于表和视图的叙述中错误的是______。
B.表和视图上都可以创建索引C.表和视图的数据都可以进行更新操作,但视图的更新受限D.表和视图都可以使用SQL语句进行查询正确答案:B7.【单选题】有下列程序:执行后的输出结果是( )fun(int x ,int y){ static int m=0 ,i=2;i+=m+1;m=i+x+y;return m;}main(){ int j=1 ,m=1,k;k=fun(j ,m);print S( ”%d,”,k);k=fun(j ,m);printf( ”%d n”,k);)A.5 ,5B.5 ,11C.5 ,10D.11,5正确答案:B8.【单选题】修改表中数据的命令是______。
mysql第10章数据库编程知识点MySQL数据库编程知识点MySQL是一种开源的关系型数据库管理系统,具有广泛的应用场景。
在MySQL的数据库编程中,有一些重要的知识点需要了解和掌握。
接下来将介绍MySQL数据库编程的一些重要知识点。
1. 数据表的创建和管理:在MySQL中,通过CREATE TABLE语句可以创建数据表。
在创建表时,需要定义表的字段名、数据类型和约束条件等。
通过ALTER TABLE语句可以修改现有的表结构,例如添加字段、修改字段类型等操作。
2. 数据的插入、更新和删除:通过INSERT语句可以向数据库中插入新的数据记录。
通过UPDATE语句可以更新已有的数据记录。
通过DELETE语句可以删除数据库中的数据记录。
3. 数据查询:通过SELECT语句可以从数据库中查询数据记录。
可以使用WHERE子句来过滤特定条件下的数据。
还可以使用ORDER BY子句对查询结果进行排序。
4. 数据库连接:在MySQL中,使用连接字符串可以连接到数据库服务器。
通过连接字符串,可以指定数据库的主机名、端口号、数据库名称、用户名和密码等连接参数。
5. 数据库事务处理:数据库事务是指一系列数据库操作的集合,要么全部成功执行,要么全部回滚。
使用BEGIN、COMMIT和ROLLBACK语句可以控制事务的开始、提交和回滚。
6. 索引的创建和优化:索引可以提高数据库的查询性能。
可以通过CREATE INDEX语句在表中创建索引。
在创建索引时,需要考虑索引字段的选择和索引类型的优化。
7. 数据库备份和恢复:在数据库编程中,经常需要对数据库进行备份和恢复操作。
可以使用mysqldump命令行工具进行数据库备份,使用mysql命令行工具进行数据库恢复。
以上是MySQL数据库编程的一些基本知识点。
熟练掌握这些知识点,可以更好地进行MySQL数据库的开发和管理。
但需要注意的是,数据库编程还涉及到更多的高级主题,如存储过程、触发器、视图等,需要进一步学习和实践。
计算机二级MySQL数据库第十三章考点练习计算机二级MySQL数据库第十三章考点练习MySQL是目前应用最广泛的开源数据库,它是一种高效、稳定的关系型数据库管理系统,具有性能优越、易于安装调试、支持多种操作系统的特点。
MySQL数据库的使用越来越广泛,计算机专业学生也将MySQL数据库的学习作为计算机二级考试的必备技能。
本文将重点介绍计算机二级MySQL数据库第十三章的考点练习及其重点知识点。
一、新建和删除临时表:在MySQL中,临时表指的是存储程序运行中需要用到的临时数据表,通常是不需要长期存储的数据或计算结果等。
MySQL允许用户创建临时表,并提供了相关的SQL命令进行临时表的创建和删除。
创建临时表的语法:CREATE TEMPORARY TABLEtable_name(column1 datatype, column2 datatype, ...,n columnn datatype);临时表的名称可以与已有的普通表名称相同,但是在程序退出后该临时表将自动消失。
删除临时表的语法:DROP TEMPORARY TABLE table_name;二、用SQL语句对表进行操作:在MySQL中,对于表的操作,除了使用PHPMyAdmin这种可视化操作工具外,还可以使用SQL语句进行操作,常用的SQL语句包括SELECT、INSERT、UPDATE、DELETE等等。
下面是常用SQL语句的语法说明。
1.SELECT语句:用于查询表中的数据,语法格式为:SELECT column_name(s) FROM table_name WHERE condition;其中,column_name(s)表示要查询的列名,多个列用逗号隔开,*表示查询所有列;table_name表示要查询的表名;WHERE condition表示查询条件,不是必需的。
2.INSERT语句:用于向表中插入数据,语法格式为:INSERT INTO table_name (column1, column2, column3, ……) VALUES (value1, value2, value3, ……);其中,table_name表示要插入数据的表名;column1, column2, column3, ……表示要插入数据的字段名;value1, value2, value3, ……表示要插入的具体数值。
MySQL数据库基本知识点总结一、什么是MySQL数据库MySQL数据库是一种关系型数据库管理系统(RDBMS),它是目前世界上最流行的开源数据库管理系统之一。
MySQL以其高性能、稳定性和易用性而受到广泛的应用和推崇。
下面将会对MySQL数据库的基本知识点进行详细的探讨。
二、MySQL数据库的组成MySQL数据库由多个组件组成,主要包括以下几个部分:1.Server端:MySQL数据库的核心组件,负责接收和处理客户端的请求,并执行相应的操作。
它包括了MySQL的核心服务程序mysqld以及其他一些辅助程序。
2.Client端:用于连接到MySQL服务器并发送SQL语句进行数据库操作的程序。
常用的MySQL客户端工具有MySQL命令行客户端、MySQL Workbench等。
3.存储引擎(Storage Engine):MySQL数据库支持多种存储引擎,用于处理和存储数据。
常用的存储引擎有InnoDB、MyISAM、MEMORY等。
三、MySQL数据库的基本概念1. 数据库(Database)数据库是指用于存储和管理数据的仓库。
在MySQL中,数据库是由一组相关的数据表和其他数据库对象(如视图、存储过程等)组成。
2. 数据表(Table)数据表是数据库中用于存储数据的基本单位。
每个数据表由一个表名和若干列组成,每一列都有对应的数据类型和约束条件。
3. 列(Column)列是数据表中的一个字段,它定义了数据的类型和特征。
每一列都有一个唯一的列名。
4. 行(Row)行是数据表中的一条记录,也称为记录。
每一行都代表了数据表中的一个实例。
5. 主键(Primary Key)主键是数据表中用于唯一标识每一行记录的列或列的组合。
主键必须保证唯一性和非空性。
6. 外键(Foreign Key)外键是一个表的列,它引用了另一个表的主键,用于建立表与表之间的关系。
7. 索引(Index)索引是一种数据结构,用于提高数据的访问效率。
MySQL知识点总结 .数据操作:检索、排序、过滤、分组、汇总、计算、联接、子查询与组合查询 .表操作:表的创建、修改、删除和重命名、表数据的插入、更新和删除 .索引(含主、外键)、视图 .难度编程:存储过程与存储函数、触发器与事件、PHP .数据库管理:事务处理、用户与权限、备份与还原、数据库维护
1. 检索数据:select„from„ Select [distinct] prod_id,prod_name from products [limit 4,5]; 2. 检索排序:order by„ Select * from products order by prod_id [asc|desc],prod_name [asc|desc]; 3. 过滤数据:where 字句 = <> != >>= <<= between (1)普通where 字句 Select prod_id,prod_name from products where prod_name=’liyang’; Select prod_id,prod_name from products where prod_id between 10 and 50; Select prod_id,prod_name from products where prod_name is [not] null; (2)组合where字句:使用AND和OR连接多个条件表达式,且AND次序优于OR; (3)IN 与NOT操作符 Select prod_id,prod_name from products where prod_id [not] in(1,2,3) |prod_name in(’zhangsan’,’lisi’,’wangwu’); (4)LIKE操作符与通配符:“%”与“_” Select prod_id,prod_name from products where prod_name like ’%liu%’; Select prod_id,prod_name from products where prod_name like ’_u%’; 找出u位于名字的第二个位置的prod_id和prod_name。 (5)正则表达式 4. 计算字段 (1)拼接字段:concat(„,„) Select concat(姓氏,名字) as 姓名 from orders; Select concat(vend_name,’(’,vend_country,’)’) from vendors; (2)算术运算 Select prod_name,prod_price,prod_num,prod_price*prod_num as prod_money from products; 4. 使用数据处理函数:文本处理函数、日期和时间处理函数、数值处理函数。 5. 汇总数据:聚集函数 SUM() AVG() COUNT() MAX() MIN() Select avg(distinct prod_price) from products; Select avg(prod_price) 均价,max(prod_price) 最高价 from products; 6. 分组数据:group by„ 创建分组、过滤分组、分组排序 Select count(prod_id),prod_id from products where prod_id>1000 group by prod_id having count(prod_id)>2 order by prod_id;求出prod_id大于1000且产品数量大于2的产品数量,并按prod_id排序,注意分组语句中对象要前后一致,如下划线部分。 7. 使用子查询:进行过滤select„where„in(select„where„in(select„))、作为计算字段使用子查询。 8. 联接:join„on„ (1)普通联接 Select oi.order_num,oi.prod_id,p.prod_name,p.vend_id,v.vend_name from orderitems oi join products p on oi.prod_id=p.prod_id join vendors v on p.vend_id=v.vend_id where vend_name=’liyang’;可同时联接多个表且可同时用于数据过滤,这种类型的联接一般为内部联接。 (2)自联接:一个表自己与自己联接,注意判断好各字段与前后两个表的关系。 (3)自然联接:基本上简历的内部联接都是自然联接。 (4)外部联接:在关系表中没有关联的信息的行也能显示出来的联接,根据表在join字句的左边还是右边可分为左联接与右联接。 (5)带聚集函数的联接 Select c.cust_id,count(o.order_num) num_ord from customers c join orders o on c.cust_id=o.cust_id order by c.cust_id;找出客户对应的订单数。 9. 组合查询:连接多个(至少两个)查询语句,满足其中一个查询语句条件的结果都会显示出来 union(不重复显示)/union all (可重复显示即全部显示) Select vend_id,prod_id,prod_price from products where prod_price<=5 Union [all] Select vend_id,prod_id,prod_price from products where vend_id in(1001,1002) order by prod_id; 注意每个查询必须包含相同的列、表达式或者聚集函数,列的数据类型必须兼容,排序语句只能放在最后面,该排序语句对组合查询语句中的所有select语句都适用。 10. 全文本搜索:只支持引擎为MyISAM的表,不支持引擎为InnoDB的表,可对搜索结果进行智能排序后输出,具有较高等级的行先返回。 Match(全文本搜索字段) against(’全文本搜索内容’[with query expansion])其中下划线部分为拓展语句,使用该语句,除了可以返回符合所设置的“全文本搜索内容”的数据结果,还可返回与“全文本搜索内容”有较高相似度的数据结果。 (1)启用全文本搜索支持 Create table fs(id int not null primary key,c text,c1 text,fulltext(c,c1)) engine=MyISAM; (2)进行全文本搜索 Select note_text from productnotes where match(note_text) against(’liyang’ with query expansion); 11. 插入数据:insert into„{values|select}„ Insert into products(prod_id,prod_name,prod_price) values(1,’豆浆’,2),(3,’鸡蛋’,1);可同时插入多行数据。 Insert into products(prod_id,prod_name,prod_price) select vend_id,vend_name, vend_price from vendors where vend_id<=10; 12. 更新数据:update [ignore]„set„,一般情况下,若更新的数据中有部分数据出错,则全部数据返回到原来的数据,而ignore的作用在于即使更新的数据中出现错误,只对出现错误的数据返回到原来数据,而未出现错误的数据返回更新后的结果实现更新。 update products set prod_name='馒头',prod_price=1 where prod_id=1; update customers set cust_city=concat(cust_city,’市’)| cust_city =replace(cust_city,’市’,’city’) where cust_id>1000; 13. 删除数据:delete from„ Delete from products where prod_id between 10 an 50; 14. 表的相关操作 (1)创建表:对表结构进行设置create table„ Create table products(prod_id int null auto_increment primary key,prod_name varchar(50),prod_price int,prod_city varchar(50) default ’广州’) engine= InnoDB;每个字段名后需要设置数据类型,default为指定默认值,只支持常量不支持函数,且只在插入数据时起作用而在更新数据时不起作用,InnoDB是一个可靠的事务处理引擎,但不支持全文本搜索。 (2)更新表:对表结构进行修改 alter table {add|drop}„ Alter table products add prod_city varchar(50); Alter table products drop prod_price; (3)删除表:一旦删除,无法撤销 drop table„ Drop table products; (4)重命名表:rename table„to„ Rename table products to new_products; 15. 索引的相关操作 (1)创建索引:常用于数据的快速检索,MySQL中,常用索引在物理可分为:BTREE、HASH索引两类;在具体用途上可分为:INDEX、UNIQUE、PRIMARY KEY、FOREIGN KEY、FULL TEXT、SPATIAL等。
○1使用create index 语句创建索引,对已存在的表创建索引
Create [unique|fulltext|spatial] index index_name [using BTREE|HASH] on tbl_name(index_col_name[,index_col_name„]); Create unique index index_products on products(prod_name(2) desc,prod_price);