1、MySQL程序设计程序设计第第3章章 MySQL常用操作常用操作3.1 数据库用户管理3.2 数据库操作3.3 表操作3.4 数据操作MySQL程序设计程序设计第第3章章 MySQL常用操作常用操作3.5 字段操作3.6 客户端操作数据库MySQL程序设计程序设计 连接MySQL mysql-h主机地址-u用户名 p用户密码 新增用户 GRANT SELECT on 数据库.*to 用户名登录主机 identified by“密码”修改用户密码 UPDATE mysql.user SET authentication_string=PASSWORD(123456),password_expir
2、ed=N WHERE User=shopdb AND Host=localhost;3 3.1 .1 数据库用户管理数据库用户管理第3章 MySQL常用操作MySQL程序设计程序设计 查看数据库 SHOW databases;创建数据库 CREATE DATABASE databaseName;使用数据库 USE databaseName;删除数据库 DROP DATABASE databaseName;3.2 3.2 数据库操作数据库操作第3章 MySQL常用操作MySQL程序设计程序设计 创建表 CREATE TABLE user(id int(10)unsigned not null a
3、uto_increment,name varchar(25),sex varchar(5),age int(10),password varchar(25),primary key(id)engine=Innodb;查看表结构 DESC tableName3.3 3.3 表操作表操作第3章 MySQL常用操作MySQL程序设计程序设计复制表第一种方式:复制表结构、数据、主键、第一种方式:复制表结构、数据、主键、索引索引复制表结构、主键、索引,执行命令:CREATE TABLE new_table like old_table;插入数据,执行命令:INSERT TABLE new_table S
4、ELECT*FROM old_table;3.3 3.3 表操作表操作第3章 MySQL常用操作MySQL程序设计程序设计复制表第二种方式:复制表结构、数据,不能复制主键、第二种方式:复制表结构、数据,不能复制主键、索引索引复制表结构、数据,执行命令:CREATE TABLE new_table SELECT*FROM old_table;复制表结构,不复制数据,执行命令:CREATE TABLE new_table SELECT*FROM old_table WHERE 0;3.3 3.3 表操作表操作第3章 MySQL常用操作MySQL程序设计程序设计 临时表和内存表创建临时表,命令执行:
5、CREATE temporary TABLE tmp1(id int not null);创建内存表,命令执行:CREATE TABLE tmp2(id int not null)ENGINE=MEMORY;3.3 3.3 表操作表操作第3章 MySQL常用操作MySQL程序设计程序设计 插入和查询将一条数据插入到数据库里,可以使用命令:INSERT INTO 表名(字段名,字段名)VALUES(值,值);或者可以不指明表里的字段,但是值按字段的顺序插入,可以使用命令:INSERT INTO 表名 VALUES(值,值);查询数据,可以使用命令:SELECT*FROM 表名;或者查询指定字段,
6、可以使用命令:SELECT id FROM 表名;使用WHERE条件语句来进行按条件查询,把某一列或者几列作为查询条件,可以使用命令:SELECT*FROM 表名 WHERE id=10;SELECT*FROM 表名 WHERE id=10 and name=小明;3.4 3.4 数据操作数据操作第3章 MySQL常用操作MySQL程序设计程序设计 修改记录在MySQL里修改使用关键字UPDATE,执行命令。UPDATE 表名 SET 字段=值,字段=值 WHERE 条件UPDATE user SET name=小明,sex=男 WHERE id=4;3.4 3.4 数据操作数据操作第3章 M
7、ySQL常用操作MySQL程序设计程序设计 删除记录在MySQL中删除数据可以使用DELETE关键字,执行命令:DELETE FROM 表名 WHERE 条件DELETE FROM user WHERE id=4;3.4 3.4 数据操作数据操作第3章 MySQL常用操作MySQL程序设计程序设计 对查询结果排序在MySQL数据库中,使用ORDEY BY进行排序,使用关键字ASC进行升序排序,使用关键字DESC进行降序排序,:(1)ORDEY BY column ASC:按某一字段进行升序排序,ASC可以省略不写;SELECT*FROM user ORDEY BY id ASC;或者 SELE
8、CT*FROM user ORDEY BY id;(2)ORDEY BY column DESC:按某一字段进行降序排序,DESC不可以省略不写;SELECT*FROM user ORDEY BY id DESC;(3)ORDEY BY column1,column2 DESC:按多个字段进行降序排序;SELECT*FROM user ORDEY BY sex,age DESC;3.4 3.4 数据操作数据操作第3章 MySQL常用操作MySQL程序设计程序设计 对查询结果分组GROUP BY对查询结果分组是将查询结果按照1个或多个字段进行分组,字段值相同的为一组,GROUP BY可以用于单个
9、字段和多个字段。SELECT*FROM user GROUP BY sex;group_concat(字段名)可以作为一个输出字段来使用,表示分组之后,根据分组结果,使用group_concat()来放置每一组的某字段的值的集合。SELECT sex,group_concat(name)FROM user GROUP BY sex;3.4 3.4 数据操作数据操作第3章 MySQL常用操作MySQL程序设计程序设计 设置分组条件HAVING 是用来设置分组条件的条件表达式,用来分组查询后指定一些条件来输出查询结果,WHERE语句在聚合前先筛选记录,也就是说作用在GROUP BY和HAVING字
10、句前,而 HAVING子句在聚合后对组记录进行筛选,HAVING只能用于GROUP BY。SELECT sex,count(sex)FROM user WHERE age 15 GROUP BY sex HAVING count(sex)2;3.4 3.4 数据操作数据操作第3章 MySQL常用操作MySQL程序设计程序设计 限制查询数量LIMIT是用于限制查询的数量,常用于分页语句,LIMIT 子句可以被用于强制SELECT语句返回指定的记录数。LIMIT 接受一个或两个数字参数,参数必须是一个整数常量。(1)如果只给定一个参数,它表示返回最大的记录行数目;SELECT*FROM user
11、LIMIT 6;#检索前6行记录(2)如果给定两个参数,第一个参数指定第一个返回记录行的偏移量,第二个参数指定返回记录行的最大数目,初始记录行的偏移量是 0(而不是 1);SELECT*FROM user LIMIT 2,5;#从第2条数据开始,检索出5条数据3.4 3.4 数据操作数据操作第3章 MySQL常用操作MySQL程序设计程序设计 设置主键创建表的时候,使用PRIMARY KEY添加主键:CREATE TABLE tbl_name(字段描述省略.,PRIMARY KEY(index_col_name);CREATE TABLE student(id int not null,nam
12、e varchar(255)not null,no int not null,primary key(id)ENGINE=Innodb DEFAULT CHARSET=utf8;3.5 3.5 字段操作字段操作第3章 MySQL常用操作MySQL程序设计程序设计 设置复合主键复合主键就是由多个字段组成的组建,就像开启宝藏的钥匙,往往会分成两把或者更多,当同时插入两把钥匙,才能开启宝藏的大门,复合主键也是这样,通过多个字段作为复合主键来确定唯一标识。CREATE TABLE person(id int not null,name varchar(255)not null,job varchar(
13、255)not null,primary key(id,name)ENGINE=InnoDB DEFAULT CHARSET=utf8;3.5 3.5 字段操作字段操作第3章 MySQL常用操作MySQL程序设计程序设计 添加字段添加一个手机号码(phone)新的字段到user表里,数据类型为字符串类型。ALTER TABLE user add phone varchar(25)not Null;3.5 3.5 字段操作字段操作第3章 MySQL常用操作MySQL程序设计程序设计 改变字段类型可以修改表字段的数据类型,将手机号码(phone)字符串类型修改为整型(int);ALTER TABL
14、E user modify phone int(25)not Null;3.5 3.5 字段操作字段操作第3章 MySQL常用操作MySQL程序设计程序设计 字段重命名对于已经存在的表结构,如果想对表里的字段重命名,需要使用alter table来修改表里的字段,格式如下所示。ALTER TABLE change ALTER TABLE user change phone telephone int(25);3.5 3.5 字段操作字段操作第3章 MySQL常用操作MySQL程序设计程序设计 字段设置默认值MySQL数据库字段在创建的时候可以设置默认值,也可以修改它的默认值,如果有默认值,也可
15、以将默认值删除。设置默认值命令操作如下所示:ALTER TABLE 表名 ALTER 字段名 SET default 默认值;删除默认值命令操作如下所示:ALTER TABLE 表名 ALTER 字段名 DROP default;3.5 3.5 字段操作字段操作第3章 MySQL常用操作MySQL程序设计程序设计 自增字段在MySQL定义字段列为自增的属性:AUTO_INCREMENT。(1)如果把一个NULL插入到一个AUTO_INCREMENT数据列里去,MySQL将自动生成下一个序列编号,编号从1开始,并1为基数递增;(2)当插入记录时,没有为AUTO_INCREMENT明确指定值,则等
16、同插入NULL值;(3)当插入记录时,如果为AUTO_INCREMENT字段明确指定了一个数值,则会出现两种情况:一种是如果插入的值与已有的编号重复,则会出现出错信息,因为AUTO_INCREMENT数据列的值必须是唯一的;另一种是如果插入的值大于已编号的值,则会把该插入到数据列中,并使在下一个编号将从这个新值开始递增;(4)对于使用MyISAM存储引擎,如果用UPDATE命令更新自增列,如果列值与已有的值重复,则会出错,如果大于已有值,则下一个编号从该值开始递增;但是对于Innodb存储引擎,UPDATE auto_increment字段,会导致发生报错;(5)被DELETE语句删除的id值,除非sql中将id重新插入,否则前面空余的id不会复用;3.5 3.5 字段操作字段操作第3章 MySQL常用操作MySQL程序设计程序设计 MySQL客户端 https:/ 3.6 客户端操作数据库客户端操作数据库第3章 MySQL常用操作MySQL程序设计程序设计 数据库用户管理 数据库操作 表操作 数据操作 字段操作 客户端操作数据库总结总结第3章 MySQL常用操作MySQL程序设计程序设计