MySqL数据库操作详解
MySQL数据插入和更新操作教程

MySQL数据插入和更新操作教程Introduction数据库管理系统是现代应用开发中不可或缺的一部分,而MySQL作为其中最受欢迎和广泛使用的关系型数据库管理系统之一,其插入和更新操作是每个开发人员都需要掌握的基本技能。
本文将为读者详细介绍MySQL数据插入和更新的操作技巧和注意事项。
一、插入数据1. 使用INSERT INTO语句在MySQL中,我们可以使用INSERT INTO语句将数据插入到数据库的指定表中。
该语句的基本语法如下:```INSERT INTO table_name (column1, column2, column3, ...)VALUES (value1, value2, value3, ...);```其中,table_name是要插入数据的目标表名,column1, column2, column3等表示目标表的列名,而value1, value2, value3等则表示要插入的具体数值。
2. 插入多条记录如果需要一次性插入多条记录,只需将上述语句中的VALUES后面跟上多组数值即可,每组数值用逗号分隔。
例如:```INSERT INTO table_name (column1, column2, column3, ...)VALUES (value1, value2, value3, ...),(value1, value2, value3, ...),...```这样,就可以一次性将多个记录插入到目标表中。
3. 插入默认值如果某些列设有默认值,可以在INSERT INTO语句中省略对应的数值,数据库将自动填充默认值。
例如:```INSERT INTO table_name (column1, column2, column3, ...)VALUES (value1, value2, DEFAULT, ...);```这里,第三个列将采用其预先设定的默认值。
4. 插入查询结果有时候,我们需要根据已有的查询结果将数据插入到数据库中。
MySQL数据库表的数据插入、修改、删除、查询操作及实例应用

MySQL数据库表的数据插⼊、修改、删除、查询操作及实例应⽤⼀、MySQL数据库表的数据插⼊、修改、删除和查询1CREATE DATABASE db0504;23USE db0504;45CREATE TABLE student (6 sno VARCHAR (10) NOT NULL UNIQUE PRIMARY KEY,7 sname VARCHAR (20) NOT NULL,8 ssex enum ('男', '⼥') NOT NULL DEFAULT'男',9 sbirth date,10 sclass VARCHAR (10),11 zno CHAR (4)12 ) DEFAULT charset = gb2312;13 #添加操作14INSERT INTO student15VALUES('2012010713','丁暖','⼥','1993-9-9','物联⽹12-1','z002');1617INSERT INTO student (sno,sname,ssex,sbirth,sclass,zno)18VALUES('2011010503','孔超','男','1993-9-19','⾃动化11-1','z006');1920INSERT INTO student (sno, sname, ssex, zno)21VALUES('2011010521','韩梅','⼥','z006');2223INSERT INTO student (sname, zno, sno)24VALUES('韩梅2','z006','2011010522');2526INSERT INTO student VALUES27 ('2011010501','孔超1','男','1993-9-19','⾃动化11-1','z006');28 ('2011010505','孔超2','男','1993-9-19','⾃动化11-1','z006');29 ('2011010504','孔超3','男','1993-9-19','⾃动化11-1','z006');30 ('2011010505','孔超4','男','1993-9-19','⾃动化11-1','z006');31 #修改操作32UPDATE student33SET sname ='张三',sbirth ='1993-6-19'34WHERE sname ='丁暖';3536UPDATE student SET zno =LEFT (zno, 3);37 #删除操作38delete from student39where sname='张三';4042 #查询操作43SELECT*FROM student;#查询student表的所有记录44SELECT sno,sname,ssex,sbirth FROM student;#查询部分字段信息45SELECT*FROM student WHERE age BETWEEN25AND30;4647 #清空表操作48truncate student;#⾼效49delete from student;操作SQL语法格式:插⼊:insert修改:update删除:delete查询:select⼆、设计型实验三1.创建表1CREATE DATABASE homework;23USE homework;45CREATE TABLE student (6 Num INT (10) NOT NULL UNIQUE PRIMARY KEY,7 name VARCHAR(20) NOT NULL,8 Sex VARCHAR(4) NOT NULL,9 birthday DATETIME,10 bumen VARCHAR(20) NOT NULL,11 address VARCHAR(50)12 ) DEFAULT charset = gb2312;1314CREATE TABLE score (15 Id INT(10) NOT NULL UNIQUE PRIMARY KEY,16 C_name VARCHAR(20),17 Stu_id INT(10) NOT NULL,18 grade INT(10),19CONSTRAINT score_fk FOREIGN KEY(Stu_id) REFERENCES student(Num)20 ) DEFAULT charset = gb2312;2122INSERT INTO student VALUES23 ('901','张军','男','1985-1-1','计算机系','北京市海淀区'),24 ('902','张超','男','1986-2-2','中⽂系','北京市昌平区'),25 ('903','张美','⼥','1990-2-1','中⽂系','湖南省永州市'),26 ('904','李五⼀','男','1990-2-3','英语系','辽宁省⾩新市'),27 ('905','王芳','⼥','1991-4-6','英语系','福建省厦门市'),28 ('906','王桂','男','1988-6-7','计算机系','湖南省衡阳市');2930INSERT INTO score VALUES31 (1001,'计算机','901','98'),32 (1002,'英语','901','80'),33 (1003,'计算机','902','65'),34 (1004,'中⽂','902','88'),35 (1005,'中⽂','903','95'),36 (1006,'计算机','904','70'),37 (1007,'英语','904','92'),38 (1008,'英语','905','92'),39 (1009,'计算机','906','90'),40 (1010,'英语','906','85');2.查询student表的操作#查询student表的所有记录SELECT*FROM student;SELECT Num,name,Sex,birthday,bumen,address FROM student;#查询student表的第2条到第4条记录SELECT Num,name,Sex,birthday,bumen,address FROM student LIMIT 1,3;#从student表中查询所有学⽣的学号、姓名和院系的信息SELECT Num,name,bumen FROM student;#查询计算机系和英语系学⽣的信息SELECT*FROM student WHERE bumen IN('计算机系','英语系');SELECT*FROM student WHERE bumen='计算机系'OR bumen='英语系';#从student表中查询年龄为18-22岁学⽣的信息ALTER TABLE student ADD age INT(4);ALTER TABLE student MODIFY age INT(4) AFTER Sex;UPDATE student SET age=24WHERE Num=901;UPDATE student SET age=23WHERE Num=902;UPDATE student SET age=19WHERE Num=903;UPDATE student SET age=19WHERE Num=904;UPDATE student SET age=18WHERE Num=905;UPDATE student SET age=21WHERE Num=906;SELECT*FROM student WHERE age BETWEEN18AND22;SELECT*FROM student WHERE age>=18AND age<=22;#从student表中查询每个院系有多少⼈,为统计的⼈数列取别名sum_of_bumenSELECT bumen,COUNT(bumen) AS sum_of_bumen FROM student GROUP BY bumen;3.两表综合查询#从score表中查询每个科⽬的最⾼分SELECT C_name,MAX(grade) FROM score GROUP BY C_name;#查询李五⼀的考试科⽬(C_name)和考试成绩(grade)select C_name,grade from student left join score on student.Num=score.Stu_id where name='李五⼀';#⽤连接查询的⽅式查询所有学⽣的信息和考试信息select*from student left join score on student.Num=score.Stu_id;#计算每个学⽣的总成绩(需显⽰学⽣姓名)select name '姓名',SUM(grade) '总成绩'from student left join score on student.Num=score.Stu_id group by name;#计算每个考试科⽬的平均成绩select C_name '考试科⽬',AVG(grade) '平均成绩'from student left join score on student.Num=score.Stu_id group by C_name; #查询计算机成绩低于95分的学⽣信息select*from student left join score on student.Num=score.Stu_id where grade<95AND C_name='计算机';#将计算机成绩按从⾼到低排序select grade '计算机成绩'from score where C_name='计算机'order by grade desc;#asc升序,desc降序#从student表和score表中查询学⽣的学号,然后合并查询结果select Num '学号'from student union select Stu_id from score;#查询姓张或者姓王的同学的姓名、院系、考试科⽬和成绩select name,bumen,C_name,grade from student left join score on student.Num=score.Stu_id where name like'张%'union select name,bumen,C_name,grade from student left join score on student.Num=score.Stu_id where name like'王%';#查询都是湖南的学⽣的姓名、年龄、院系、考试科⽬和成绩select name,age,bumen,C_name,grade from student left join score on student.Num=score.Stu_id where address like'湖南%';这个查询同时参加计算机和英语考试的学⽣信息难了我好久,下⾯提供三种做法:#查询同时参加计算机和英语考试的学⽣的信息做法⼀select*from student where Num in (select Stu_id from score where C_name ='计算机'and Stu_id in(select Stu_id from score where C_name ='英语'));#查询同时参加计算机和英语考试的学⽣的信息做法⼆SELECT a.*FROM student a,score b,score c WHERE a.Num=b.Stu_id AND b.C_name='计算机'AND a.Num=c.Stu_id AND c.C_name='英语';#查询同时参加计算机和英语考试的学⽣的信息做法三SELECT*FROM student WHERE Num =ANY( SELECT Stu_id FROM score WHERE Stu_id IN (SELECT Stu_id FROM score WHERE C_name='计算机') AND C_name='英语');。
MySQL中的数据插入和更新操作

MySQL中的数据插入和更新操作在数据库的应用中,数据的插入和更新操作是非常常见的操作,尤其是在MySQL这样的关系型数据库系统中。
本文将着重讨论MySQL中的数据插入和更新操作,并对其进行详细的解释和说明。
一、数据插入操作数据插入操作是向数据库中添加新的数据的过程。
在MySQL中,可以通过多种方式进行数据插入操作,包括使用INSERT语句、使用LOAD DATA INFILE语句以及使用INSERT INTO SELECT语句等。
下面将对这些方式进行详细的介绍。
1. 使用INSERT语句插入数据INSERT语句是MySQL中最基本和常见的插入数据的方式。
其语法如下:```INSERT INTO 表名 (列名1, 列名2, ...) VALUES (值1, 值2, ...);```其中,`表名`是要插入数据的表名,`列名1, 列名2, ...`是要插入数据的列名,`值1, 值2, ...`是要插入的具体数值。
例如,插入一条学生信息的示例代码如下:```INSERT INTO student (id, name, age) VALUES (1, '张三', 18);```2. 使用LOAD DATA INFILE语句插入数据LOAD DATA INFILE语句可以通过读取外部文件中的数据并将其插入到MySQL数据库中。
其语法如下:```LOAD DATA INFILE '文件路径' INTO TABLE 表名;```其中,`文件路径`是外部文件的路径,`表名`是要插入数据的表名。
值得注意的是,插入的外部文件中的数据必须与要插入的表的列名一一对应。
示例代码如下:```LOAD DATA INFILE '/path/to/file.csv' INTO TABLE student;```3. 使用INSERT INTO SELECT语句插入数据INSERT INTO SELECT语句可以将查询结果插入到目标表中。
MySQL#Workbench的数据库与表操作

MySQL Workbench是一款用于管理MySQL数据库的工具,支持多种数据库操作和表操作。
以下是MySQL Workbench中常用的数据库操作和表操作:1.连接数据库:首先需要在MySQL Workbench中连接到MySQL服务器。
可以通过点击"Tools" -> "Connect to Server"来连接到MySQL服务器,输入服务器地址、用户名、密码等信息即可。
2.创建数据库:可以通过点击"Database" -> "Create Database"来创建一个新的数据库。
需要输入数据库名称、字符集、排序规则等信息。
3.创建表:可以通过点击"Database" -> "Create Table"来创建一个新的表。
需要输入表名称、字段名称、数据类型、主键、外键等信息。
4.插入记录:可以通过点击"Database" -> "Execute SQL"来插入一条新记录。
需要输入记录的值,可以使用逗号分隔多个值。
5.查询记录:可以通过点击"Database" -> "Execute SQL"来查询表中的记录。
需要输入查询语句,可以使用WHERE子句筛选符合条件的记录。
6.更新记录:可以通过点击"Database" -> "Execute SQL"来更新表中的记录。
需要输入更新语句,可以使用SET子句更新记录的值。
7.删除记录:可以通过点击"Database" -> "Execute SQL"来删除表中的记录。
需要输入删除语句,可以使用WHERE子句筛选符合条件的记录。
8.备份数据库:可以通过点击"Database" -> "Backup"来备份数据库。
最全MySQL数据库表的查询操作

最全MySQL数据库表的查询操作 序⾔ 1、 2、 本节⽐较重要,对数据表数据进⾏查询操作,其中可能⼤家不熟悉的就对于INNER JOIN(内连接)、LEFT JOIN(左连接)、RIGHT JOIN(右连接)等⼀些复杂查询。
通过本节的学习,可以让你知道这些基本的复杂查询是怎么实现的,但是建议还是需要多动⼿去敲,虽然理解了什么是内连接等,但是从理解到学会,是完全不⼀样的感觉。
--WZY⼀、单表查询 1.1、查询所有字段 1.2、查询指定字段 1.3、查询指定记录 1.4、带IN关键字的查询 1.5、带BETWEEN AND 的范围查询 1.6、带LIKE的字符匹配查询 1.7、查询空值 1.8、带AND的多条件查询 1.9、带OR的多条件查询 1.10、关键字DISTINCT(查询结果不重复) 1.11、对查询结果排序 1.12、分组查询(GROUP BY) 1.13、使⽤LIMIT限制查询结果的数量 集合函数查询 1.14、COUNT()函数 1.15、SUM()函数 1.16、AVG()函数 1.17、MAX()函数 1.18、MIN()函数 ⼆、多表查询 ⼩知识 为表取别名 为字段取别名 基于两张表 2.1、普通双表连接查询 2.2、内连接查询 2.3、外连接查询 2.3.1、左外连接查询 2.3.2、右外连接查询 2.4、复合条件连接查询 ⼦查询 2.5、带ANY、SOME关键字的⼦查询 2.6、带ALL关键字的⼦查询 2.7、带EXISTS关键字的⼦查询 2.8、带IN关键字的⼦查询 2.9、带⽐较运算符的⼦查询 合并结果查询 2.10、UNION[ALL]的使⽤三、使⽤正则表达式查询 3.1、查询以特定字符或字符串开头的记录 3.2、查询以特定字符或字符串结尾的记录 3.3、⽤符号"."来替代字符串中的任意⼀个字符 3.4、使⽤"*"和"+"来匹配多个字符 3.5、匹配指定字符串 3.6、匹配指定字符中的任意⼀个 3.7、匹配指定字符以外的字符 3.8、使⽤{n,}或者{n,m}来指定字符串连续出现的次数四、综合案例练习数据表查询操作 4.1、搭建环境 省略 4.2、查询操作 省略 4.3、在已经创建好的employee表中进⾏如下操作 4.3.1、计算所有⼥员⼯(F)的年龄 4.3.2、使⽤LIMIT查询从第3条记录开始到第六条记录 4.3.3、查询销售⼈员(SALSEMAN)的最低⼯资 4.3.4、查询名字以字母N或者S结尾的记录 4.3.5、查询在BeiJing⼯作的员⼯的姓名和职务 4.3.6、使⽤左连接⽅式查询employee和dept表 4.3.7、查询所有2001~2005年⼊职的员⼯的信息,查询部门编号为20和30的员⼯信息并使⽤UNION合并两个查询结果 4.3.8、使⽤LIKE查询员⼯姓名中包含字母a的记录 4.3.9、使⽤REGEXP查询员⼯姓名中包含T、C或者M 3个字母中任意1个的记录 想直接做题的,跳过讲解,直接到练习区。
如何使用MySQL进行数据库操作

如何使用MySQL进行数据库操作第一章基本介绍MySQL是一种常用的关系型数据库管理系统(RDBMS),它是由瑞典MySQL AB公司开发的,目前由Oracle公司维护和支持。
MySQL具有开放源代码、高性能、可靠性强、易于使用和广泛应用等特点,被广泛用于Web开发和其他应用程序。
第二章安装和配置MySQL在进行数据库操作之前,首先需要安装MySQL。
可以从MySQL官方网站上下载并安装MySQL Community Server。
在安装过程中,可以根据需要选择不同的安装选项,例如选择默认配置或自定义配置。
安装完MySQL后,还需要进行一些基本的配置。
可以通过编辑配置文件f来配置MySQL的参数,例如设置数据存储路径、端口号等。
此外,还可以设置MySQL的用户和权限,以控制对数据库的访问。
第三章创建数据库和数据表在开始进行数据库操作之前,首先需要创建数据库和数据表。
可以使用MySQL提供的命令行工具或可视化工具如Navicat来进行操作。
创建数据库的命令是CREATE DATABASE,例如创建名为“mydatabase”的数据库:CREATE DATABASE mydatabase;创建数据表的命令是CREATE TABLE,例如创建名为“users”的数据表,包括id、name和email三个字段:CREATE TABLE users (id INT PRIMARY KEY,name VARCHAR(20),email VARCHAR(50));第四章插入数据插入数据是数据库操作的一个重要步骤。
可以使用INSERT INTO命令向数据表中插入数据,例如向“users”数据表中插入一条数据:INSERT INTO users (id, name, email) VALUES (1, 'John Doe', '****************');可以批量插入多条数据,例如插入两条数据:INSERT INTO users (id, name, email) VALUES (2, 'Jane Smith', '****************'),(3,'MikeJohnson','****************');第五章查询数据查询数据是数据库操作中常用的功能。
使用MySQL进行数据导入与导出

使用MySQL进行数据导入与导出导入和导出数据是在数据库管理中非常常见和重要的任务。
MySQL作为一种常见的关系型数据库管理系统,提供了丰富的工具和功能来帮助用户进行数据导入和导出操作。
本文将介绍MySQL中的一些常用方法和技巧,以便更有效地进行数据导入和导出。
一、导入数据1. 使用LOAD DATA INFILE语句LOAD DATA INFILE语句是MySQL中最常用的导入数据方法之一。
它允许将一个文本文件中的数据加载到数据库表中。
该语句的基本语法如下:LOAD DATA INFILE 'file_path'INTO TABLE table_name[OPTIONS];其中,'file_path'是要导入的文本文件的路径,table_name是要导入数据的表名,OPTIONS是一些可选的导入选项,如字段分隔符、行分隔符等。
下面是一个示例:LOAD DATA INFILE '/data/data.txt'INTO TABLE studentFIELDS TERMINATED BY ','LINES TERMINATED BY '\n';该示例将/data/data.txt文件中的数据导入到名为student的表中,字段之间使用逗号分隔,行之间使用换行符分隔。
2. 使用MySQL WorkbenchMySQL Workbench是MySQL官方提供的一款强大的数据库管理工具。
它提供了图形化的界面,使用户可以直观地进行数据导入和导出操作。
在MySQL Workbench中,可以使用“Server”菜单中的“Data Import”功能来导入数据。
首先,选择要导入数据的表和文件路径,然后选择适当的导入选项,最后点击“Start Import”按钮即可完成导入操作。
3. 使用mysqldump命令mysqldump命令是MySQL中用于备份和还原数据库的工具,但也可以用于数据导入。
MySQL数据库INSERT、UPDATE、DELETE以及REPLACE语句的用法详解

MySQL数据库INSERT、UPDATE、DELETE以及REPLACE语句的用法详解本篇文章是对MySQL数据库INSERT、UPDATE、DELETE以及REPLACE语句的用法进行了详细的分析介绍,需要的朋友参考下MySQL数据库insert和update语句引:用于操作数据库的SQL一般分为两种,一种是查询语句,也就是我们所说的SELECT语句,另外一种就是更新语句,也叫做数据操作语句。
言外之意,就是对数据进行修改。
在标准的SQL中有3个语句,它们是INSERT、UPDATE以及DELETE。
用于操作数据库的SQL一般分为两种,一种是查询语句,也就是我们所说的SELECT语句,另外一种就是更新语句,也叫做数据操作语句。
言外之意,就是对数据进行修改。
在标准的SQL中有3个语句,它们是INSERT、UPDATE以及DELETE。
在MySQL中又多了一个REPLACE 语句,因此,本文以MySQL为背景来讨论如何使有SQL中的更新语句。
一、INSERT和REPLACEINSERT和REPLACE语句的功能都是向表中插入新的数据。
这两条语句的语法类似。
它们的主要区别是如何处理重复的数据。
1. INSERT的一般用法MySQL中的INSERT语句和标准的INSERT不太一样,在标准的SQL语句中,一次插入一条记录的INSERT语句只有一种形式。
INSERT INTO tablename(列名…) VALUES(列值);而在MySQL中还有另外一种形式。
INSERT INTO tablename SET column_name1 = value1, column_name2 = value2,…;第一种方法将列名和列值分开了,在使用时,列名必须和列值的数一致。
如下面的语句向users表中插入了一条记录:INSERT INTO users(id, name, age) VALUES(123, '姚明', 25);第二种方法允许列名和列值成对出现和使用,如下面的语句将产生中样的效果。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
登陆MySqL数据库mysql -h 127.0.0.1 -u root -p创建数据库create database 数据库名;显示已经存在的数据库show databases;删除数据库drop database 数据库名;查看MySqL数据库支持的存储引擎类型show engines;(可以用'\g'或者'\G'结束,'\g'和;的作用相同,'G'可以让结果显示的更加美观)查询MySqL数据库支持的存储引擎show variables like 'have%';查询默认存储引擎show variables like 'storage_engine';*****创建表之前需要用use 数据库名来选择数据库表的主键:primary key 多字段主键(primary key(属性名,属性名))表的外键:foreign key constraint 外键别名foreign key(属性名,..,属性名) references 表名(属性名,...属性名)表的非空约束:not null表的唯一性约束:unique表的属性值自动增加:auto_increment表的属性的默认值:default 默认值创建表create table 表名(属性名数据类型[完整性约束条件],属性名数据类型[完整性约束条件],... ...属性名数据类型[完整性约束条件]);查看表的基本定义describe 表名;(describe 可以缩写成desc)查看表默认的存储引擎和字符编码show create table 表名;(可以用'\g'或者'\G'结束,'\g'和;的作用相同,'G'可以让结果显示的更加美观)修改表名alter table 旧表名rename [to] 新表名;修改字段的数据类型alter table 表名modify 属性名数据类型;修改字段名(也可以同时修改字段名和字段数据类型)alter table 表名change 旧属性名新属性名新数据类型;增加字段alter table 表名add 属性名1 数据类型[完整性约束条件] [first| after 属性名2] (first的作用是将新增加字段设置为表的第一个字段,after 属性名2 的作用是将新增的字段添加到属性名2 所指的字段之后,如果没有上面2个参数,则新增的字段默认为表的最后一个字段)删除字段alter table 表名drop 属性名;修改字段的排列位置alter table 表名modify 属性名1 数据类型first|after 属性名2;更改表的存储引擎alter table 表名engine=存储引擎名;删除表的外键约束alter table 表名drop foreign key 外键别名;删除没有被关联的普通表drop table 表名;向表中插入数据insert into 表名values(... ...);创建表的时候创建索引create table 表名(属性名数据类型[完整性约束条件],属性名数据类型[完整性约束条件],... ...属性名数据类型[完整性约束条件][unique|fulltext|spatial] index|key[别名](属性名1 [(长度)] [asc|desc]));unique:表示索引为唯一性索引fulltext:表示索引为全文索引spatial:表示索引为空间索引index和key用来指定字段为索引别名:用来创建索引取的新名称属性名1:指定索引对应的字段的名称,该字段必须是前面定义好的字段长度:指索引的长度,必须是字符串类型才可以使用asc:表示升序排列desc:表示降序排列查看索引是否被使用explain select*from 表名where 索引名\G创建空间索引spatial index 索引名(属性名)在已经存在的表上面创建索引create [unique|fulltext|sratial] index 索引名on 表名(属性名[(长度)] [ASC|DESC]);在已经存在的表上,用alter table 语句来创建索引later table 表名add [unique|fulltext|spatial] index 索引名(属性名[(长度)] [asc|desc]);删除索引drop index 索引名on 表名;创建视图create [algorithm = {unique | merge| temptable}] view 视图名[{属性清单}]as select 语句[with [ cascaded | local ] check option];查询用户的权限select select_priv,create_view_priv from er where user='用户名';(select_priv 表示用户是否具有select权限,create_view_priv 表示用户是否具有create_view权限,er表示的是mysql数据库下的user表)查看视图1. describe 视图名;(describe 可以缩写成desc)2. show table status like '视图名';(可以用'\g'或者'\G'结束,'\g'和;的作用相同,'G' 可以让结果显示的更加美观)3. show create view 视图名;(可以用'\g'或者'\G'结束,'\g'和;的作用相同,'G'可以让结果显示的更加美观)在view表中查看视图详细信息select * from information_schema.views;(在mysql中,所有视图的定义都存在information_schema数据库下的views表中,*表示查看所有的列的信息)修改视图1. create or replace view [algorithm={undefined|megrge|temptable}] view 视图名[(属性清单)] as select 语句[with [cascaded|local]check option];2. alter[algorithm={undefined|megrge|temptable}] view 视图名[(属性清单)] as select 语句[with [cascaded|local]check option];更新视图删除视图drop view [if exists] 视图名列表[restrict|cascade];(if exists是判断视图是否存在)查询是否存在drop权限select drop_priv from er where user='用户名';创建只有一个执行语句的触发器create trigger 触发器名before|after 触发事件on 表名for each row 执行语句(before 和after指定了触发器执行的时间)创建有多个执行语句的触发器create trigger 触发器名before|after 触发事件on 表名for each row begin 执行语句列表end查看触发器1. show triggers;2. select * from information_schema.triggers (where trigger_name='触发器名')\G删除触发器drop trigger 触发器名;select 属性列表|*(*代表的是所有的字段) from 表名和视图列表[where 条件表达式1] [group by 属性名1[having 条件表达式2]] [order by 属性名[asc|desc]]带in关键字的查询[not] in (元素1,元素2,...,元素n)带between and的范围查询[not] between 取值1 and 取值2带like的字符匹配查询[not] like '字符串'查询空值is [not] null带and的多条件查询条件表达式1 and 条件表达式2 [...and 条件表达式n]带or的多条件查询条件表达式1 or 条件表达式2 [... or 条件表达式n]查询结果不重复select distinct 属性名对查询结果排序order by 属性名[asc(默认)|desc]分组查询group by 属性名[having 条件表达式] [with rollup(在记录后面加上一条记录,该记录是所有的记录的总和)]group by 关键字与group_concat()函数一起使用select 属性列表,group_concat(属性列表) from 表名group by 属性列表;group by关键字和集合函数一起使用select 属性列表,count(属性列表) from 表名group by 属性列表;group by关键字和having一起使用select 属性列表from 表名group by 属性列表having 条件表达式;按多个字段进行分组select 属性列表|* from 表名group by 属性名1,属性名2;用limit限制查询结果的数量select 属性列表from 表名limit [初始位置,]记录数;(可以设定从哪条记录开始显示,也能设置显示的条数)使用集合函数查询count() 统计记录的条数sum() 求和函数avg() 求平均值max() 求最大值min() 球最小值连接查询内连接select 属性名列表from 表名1,表名2 where 表名1.属性名1=表名2.属性名2;(只查询指定字段取值相同的记录)外连接select 属性名列表from 表名1 left|right join 表名2 on 表名1.属性名1=表名2.属性名2;子查询带in关键字的子查询select 属性名列表from 表名1 where 属性名[not] in (select 属性名列表from 表名2);带比较运算符的子查询带exists关键字的子查询内层查询语句不返回查询的记录,而是返回一个真假值,如果内层查询语句查询到满足条件的记录,就返回一个真值,否则返回一个假值,当返回的值是true时,外层查询语句将进行查询;当返回false时,外层下旬语句不进行查询或者查询不出任何记录带any关键字的子查询使用any关键字时,只要满足内层查询语句返回结果中的任何一个,就可以通过该条件来执行外层查询语句带all关键字的子查询使用all关键字时,只有满足内层查询语句返回的所有结果,才可以执行外层查询语句合并查询结果将多个select语句的查询结果合并到一起使用union 和union all关键字;使用union时,数据库系统会将所有的查询结果合并到一起,然后去除掉相同的记录,而union all只是简单的合并到一起select 属性名列表from 表名1 union [all] select 属性名列表from 表名2;为表和字段取别名(只有在显示的时候,别名才有作用,不能用别名查询) 表名表的别名select 属性名列表from 表名表的别名 ... ...属性名[as] 别名select 属性名列表[as] 别名from 表名使用正则表达式查询属性名regexp '匹配方式'插入数据insert语句中不指定具体的字段名insert into 表名values(值1,值2,...,值n);insert语句中列出所有的字段insert into 表名(属性1,属性2,...,属性n) values(值1,值2,...,值n);为表的指定字段插入数据insert语句中列出所有的字段insert into 表名(属性1,属性2,...,属性m) values(值1,值2,...,值m);同时插入多条记录insert into 表名[(属性列表)] values (取值列表1),(取值列表2),...,(取值列表n);将查询结果插入到表中(将一个表中查询出来的数据插入到另一个表中)insert into 表名1(属性列表1) select 属性列表2 from 表名2 where 条件表达式;更新数据update 表名set 属性名1=取值1,属性名2=取值2,...,属性名n=取值n where 条件表达式;删除数据delete from 表名[where 条件表达式];数学函数绝对值函数abs(x)返回圆周率的函数PI()平方根函数sqrt(x)求余函数mod(x,y)获取整数函数ceil(x)(返回大于或者等于x的最小整数)、ceiling(x)(返回大于或者等于x的最小整数)、floo(x)(返回小于或者等于x的最大整数)获取随机数的函数rand()、rand(x)(当x相同时,返回的随机数相同)(返回0~1的随机数)四舍五入函数round(x)、round(x,y)(函数返回x保留到小数点后y位的值,截断时进行四舍五入) truncate(x,y)((函数返回x保留到小数点后y位的值)符号函数sign(x)(返回的是x的符号)幂运算函数pow(x,y)(计算x的y次方)、power(x,y)(计算x的y次方)和exp(x)(计算e的x次方)对数运算函数log(x)(计算x的自然对数)、log10(x)(计算以10为底的对数)角度与弧度相互转换的函数radians(x)(角度转换成弧度)和degrees(x)(弧度转换成角度)正弦函数sin(x)(x是弧度)反正弦函数asin(x)(x的取值在-1~1,不然返回值是null)余弦函数cos(x)(x是弧度)反余弦函数acos(x)(x的取值在-1~1,不然返回值是null)正切函数tan(x)(x是弧度)反正切函数atan(x)atan2(x)余切函数cot(x)字符串函数计算字符串字符数的函数char_length(x)计算字符串长度的函数length(x)合并字符串的函数concat(s1,s2,...)(将s1,s2等多个字符串合并成一个字符串)concat_ws(x,s1,s2,...)(将各个字符串直接用参数x隔开)替换字符串的函数insert(s1,x,len,s2)(将字符串s1中x位置开始长度为len的字符串用s2替换)字母大小写转换函数upper(x)ucase(x)将字符串x的所有的字母变成大写字母lower(x)lcase(x)将字符串x的所有的字母变成小写字母获取指定长度的字符串的函数left(s,n)(返回字符串s的前n个字符)right(s,n)(返回字符串的后n个字符)填充字符串的函数lpad(s1,led,s2)(将s2填充到s1的开始处,使字符串长度达到len)rpad(s1,led,s2)(将s2填充到s1的结尾处,使字符串长度到达len)删除空格的函数ltrim(s)(去掉字符串s开始处的空格)rtrim(s)(去掉字符串s结束处的空格)trim(s)(去掉字符串开始处和结尾处的空格)删除指定字符串的函数trim(s1 from s)(去掉字符串s中开始处和结尾处的字符串s1)重复生成字符串的函数repeat(s,n)(将字符串s重复n次)空格函数space(n)(返回n个空格)替换函数replace(s,s1,s2)(将字符串s2替代字符串s中的字符串s1)比较字符串大小的函数strcmp(s1,s2)(如果s1大于s2,返回1,如果s1等于s2,返回0,如果s1小于s2,返回-1)获取子串的函数substring(s,n,len)mid(s,n,len)(从字符串s的第n个位置开始获取长度len的长度)匹配子串开始位置的函数locate(s1,s)position(s1 in s)instr(s,s1)(从字符串s中获取s1的开始位置)字符串逆序的函数reverse(s)(将字符串s的顺序反过来)返回指定位置的字符串的函数elt(n,s1,s2,...)(返回第n个字符串)返回指定字符串位置的函数field(s,s1,s2,...)(返回第一个与字符串s匹配的位置)返回子串位置的函数find_in_set(s1,s2)(返回在字符串s2中与s1匹配的字符串的位置,s2中包含了若干个用逗号隔开的字符串)选取字符串的函数make_set(x,s1,s2,...)(按x的二进制数从s1,s2,...,sn中选取字符串)创建存储过程create procedure sp_name([proc_parameter[,...]]) [characteristic] routine_body创建存储函数create function sp_name([func_parameter[,...]]) returns type [characteristic] routine_body定义变量declare var_name[,...] type [default value]为变量赋值set var_name=expr[, var_name=expr]...select col_name[,...] into var_name[,...] from table_name where condition登陆和退出MysQL服务器mysql -h hostname|hostIP [-P port] -u username -p databasename -e"SQL语句"(密码可以直接加载-p后面,密码与-p之间不能有空格)新建普通用户create user 用户(用户由用户名和主机名构成,列:'用户名'@'主机名')[identified by [password] '密码'][,用户[identified by [password]'密码']]...insert into er(host,user,password)values('主机名','账户名',password('密码'));(执行insert命令后要使用flush命令来时用户生效flush privileges)grant 权限on 数据库名.表名(只能在指定的数据库和表上使用自己的权限) to 用户[identified by [password] '密码'][,用户[identified by [password]'密码']]...删除普通用户drop user 用户[,用户]...;delete from er where host='主机名' and user='用户名';root用户修改自己的密码mysqladmin -u username -p password "新密码";update er set 旧密码=password("新密码") where user='root' and host='localhost';(执行update命令后要使用flush命令来时用户生效flush privileges)set password=password("新密码");root用户修改普通用户密码set password for '用户名'@'主机名'=password("新密码");update er set password=password("新密码") where user="用户名"and host="主机名";(执行update命令后要使用flush命令来时用户生效flush privileges)grant 权限on 数据库名.表名(只能在指定的数据库和表上使用自己的权限) to 用户[identified by [password] '密码'];普通用户修改密码set password=password('新密码');root用户密码丢失的解决办法启动MySQL服务mysqld | mysqld-nt | net start mysql --skip-grant-tables登陆root用户,并且设置新的密码mysql -u rootupdate er set 旧密码=password("新密码")where user='root' and host='localhost';(执行update命令后要使用flush命令来时用户生效flush privileges)权限管理。