澳门新浦京娱乐场网站-www.146.net-新浦京娱乐场官网
做最好的网站

澳门新浦京娱乐场网站:Mysql的基本操作,Mysql数

SQL Structured Query Language(结构化查询语句)

Mysql的基本操作,Mysql基本操作

SQL Structured Query Language(结构化查询语句)

包含了字段和记录。
有多个数据表而组成的库

E-R图的构建步骤:
1.为每个实体建立一张表;
2.为每个表选择一个主键;
3.增加外键以表示一对多的关系;
4.建立新表表示多对多的关系;
5.定义约束条件;
6.评价关系的质量进行改进;
7.为每个字段选择合适的数据类型和取值范围;

E-R模型由实体、属性和关系3个基本要素构成。

表示方法:

实体;矩形
属性:在矩形内部
关系:直线 1:1 、1:n 、n:n

主键:

唯一性、

NO NULL.
Primary Key
<pi>Serial------>auto_increment

外键:表A中的一个字段a对应于表B的主键b,则字段a成为表A的外键。

约束;
1.主键约束(Primary Key):
2.外键约束(Foreign Key):
3.唯一性约束(unique):
4.非空约束(not Null):
5.检查约束(check):
6.默认值约束(default):

show databases; 查看数据库信息
show engines;查看存储引擎信息
set table_type=InnoDB;设置当前默认存储引擎为InnoDB
show variables like 'table_type';
show create table table_name;
show variables like 'collation%'; 查看当前的字符序
set names gbk; 一次性设置character_set_client.character_set_connection和character—_set_results的字符集为gbk

 

SQL脚本文件进行字符集的更改:文件后缀为.sql

set table_type=InnoDB;
show variable like 'table_type';
SET character_set_client = gbk;
SET character_set_connection = gbk;
SET character_set_database = gbk;
SET character_set_results = gbk;
SET character_set_server = gbk;
SET character_database = gbk_chinese_ci;
SET character_connection = gbk_chinese_ci;
SET character_server = gbk_chinese_ci;
show variables like 'character%';
show variables like 'collation%';

在命令行中执行脚本文件: . C:wampwwwsqlinit.sql

数据库的管理:

 

创建数据库:

create database database_name;

选择当前操作的数据库:

use database_name;

显示数据库的结构:

show create database database_name;

删除数据库:
drop database database_name;
数据库表的管理:
create table table_name{
column_name1 数据类型 [约束条件]
.....
column_name(n) 数据类型 [约束条件]
}
删除当前表中的列 向当前已存在的表中添加列:
alter table table_name alter table table_name
drop column column_name; add column datatype 约束条件;
改变当前表中的column的datatype 1、修改列类型,比如列为nvarch类型,修改其长度为100:
alter table table_name
alter column column_name datatype ALTER TABLE tb ALTER COLUMN col nvarchar(100)

2、增加一列:

ALTER TABLE tb ADD col2 nvarchar(100) null

表中存在数据时,新增加的列必须为null或者identity。

3、增加约束,设定列col3的缺省值为0:

ALTER TABLE tb ADD CONSTRAINT DF_col3 DEFAULT 0 FOR col3
数据类型:
数值:
字符串:
日期:
附加属性:
NULL:
auto_increment:

使用脚本文件进行数据库表的创建:
use student; 首先声明操作的数据库;
create table classes( 进行数据库表的创建;
class_id int auto_increment primary key, 表中的属性名 类型 约束条件
class_no char(10) not NULL unique,
class_name char(20) not NULL
);
显示数据库表的结构:
show tables; 查看当前操作数据库中所有表名;
describe table_name; 查看classes表的表结构;
show create table table_name; 查看创建表名为table_name的创建语句,从而查看表结构
删除数据库表:
drop table table_name;

表记录的更新操作:
添加:
insert into table_name [(字段列表)] values(值列表);
insert into classes(class_in,class_no,class_name) values(NULL,'10chinese','10中文');
insert into classes values(NULL,'10chinese','10中文'); 当向表中所有列添加数据时,字段列表可以省略;
修改:
update table_name;
set column_name = new_value[,next_column = new_value2····]
[where 条件表达式]
update student set student='张三丰' where student_id=1;
update score set grade=grade-5;
update score set grade=grade 10 where student_id=1 and courses_id=2;
删除:
delete from table_name
[where 条件表达式];
delete form score where student_id=1 and course_id=2;
查询:
select 字段列表 * :字段列表为数据源的全部字段。
表名.* :多表查询时,指定某个表的全部字段。
字段列表 :指定所需要显示的列。
form 数据源
[where 过滤条件]
[group by 分组表达式]
[having 分组过滤条件]
[order by 排序表达式[asc|desc]];

select 字段列表
form 数据源
limit [start,end]length; start 的值默认为0; top 2 top 50 percent
select * from score limit 0,3; 查询score表的前3条记录。
等效于:select * from score limit 3;

select * from score where grade>80;
select * from score order by grade desc;
select sum(grade) from score where course_id=1; 使用聚合函数返回汇总值;
sum()/avg()/count()/max()/min()

特殊字符的转义使用反斜线符号''开头

how to create INDEX in a table?
how to alter the datatype of a table's column?
how create a view?
what is the view?

SQL Structured Query Language(结构化查询语句) 包含了字段和记录。 有多个数据表而组成的库 E-R图的构建步骤:...

Mysql数据库中对表操作sql语句总结

   --创建数据库

  create database school

  --打开数据库

  use school

  --创建表

  create table student

  (

  id int,

  name varchar(20),

  sex char(2),

  age int,

  date datetime,

  info text,

  bak varchar(500)

  )

  --查看表结构

  exec sp_help student

  --修改、添加列(字段)

  alter table student

  add tel varchar(20)

  --删除列(字段)

  alter table student

  drop column bak

  --属性修改

  --修改列名(字段名)

  exec sp_rename 'student.sex','sex2'

  --修改类型

  alter table student

  alter column age char(20)

  --删除表

  drop table student

  -------------------------------表(结构):--------------------------------------------

  ----创建表,查看表结构,修改(增加列、删除列、属性(如姓名、年龄),删除表)

  ---数据的完整性:主键约束、唯一约束、检查性约束、默认约束、外键约束

  create table biao

  (

  id int primary key,

  name varchar(20),

  sex char(2) check(sex='男' or sex='女'),

  age int,

  date datetime,

  info text,

  tel char(16) unique,

  bak varchar(500) default '我是学生'

  )

  create table grade

  (

  id int not null,

  name varchar(20),

  sex char(2),

  age int,

  date datetime,

  info text,

  bak varchar(500)

  )

  alter table grade

  add tel char(16)

  ---增加主键

  alter table grade

  add constraint aa primary key(id)

  ---添加唯一性约束

  alter table grade

  add constraint bb unique(tel)

  ---查看约束

  exec sp_helpconstraint grade

  ---添加检查性约束

  alter table grade

  add constraint sex check(sex='男' or sex='女')

  ---添加默认约束

  alter table grade

  add constraint ccc default '我是好学生' for bak

  ---删除约束

  alter table grade

  drop constraint ccc

  -----------------------------添加约束的格式------------------------------------------

  ---alter table 表名

  ---add constraint 约束名(别名(任意取)) 约束关键字

  ----作业题,7.28-----

  create table shop_jb

  (

  id int primary key,

  namel varchar(20),

  spec varchar(20),

  stock int,

  price float,

  datel datetime default '2010-7-6'

  )

  create table shop_yw

  (

  ywid int primary key,

  name2 varchar(20),

  sex char(2) check(sex='男' or sex='女'),

  age int,

  tel varchar(18) unique,

  address varchar(20)

  )

  create table shop_xs

  (

  id int not null,

  sale char(20),

  quantity char(20),

  date2 datetime default '2010-5-3',

  ywid int

  foreign key(id) references shop_jb,

  foreign key(ywid) references shop_yw

  )

  例如:

  修改表expert_info中的字段birth,允许其为空

  >alter table expert_info change birth birth varchar(20) null;

  1.增加一个字段(一列)

  alter table table_name add column column_name type default value; type指该字段的类型,value指该字段的默认值

  例如:alter table mybook add column publish_house varchar(10) default '';

  2.更改一个字段名字(也可以改变类型和默认值)

  alter table table_name change sorce_col_name dest_col_name type default value; source_col_name指原来的字段名称,dest_col_name

  指改后的字段名称

  例如:alter table Board_Info change IsMobile IsTelphone int(3) unsigned default 1;

  3.改变一个字段的默认值

  alter table table_name alter column_name set default value;

  例如:alter table book alter flag set default '0';

  4.改变一个字段的数据类型

  alter table table_name change column column_name column_name type;

  例如:alter table userinfo change column username username varchar(20);

  5.向一个表中增加一个列做为主键

  alter table table_name add column column_name type auto_increment PRIMARY KEY;

  例如:alter table book add column id int(10) auto_increment PRIMARY KEY;

  6.数据库某表的备份,在命令行中输入:

  mysqldump -u root -p database_name table_name > bak_file_name

  例如:mysqldump -u root -p f_info user_info > user_info.dat

  7.导出数据

  select_statment into outfile"dest_file";

  例如:select cooperatecode,createtime from publish limit 10 into outfile"/home/mzc/temp/tempbad.txt";

  8.导入数据

  load data infile"file_name" into table table_name;

  例如:load data infile"/home/mzc/temp/tempbad.txt" into table pad;

  9.将两个表里的数据拼接后插入到另一个表里。下面的例子说明将t1表中的com2和t2表中的com1字段的值拼接后插入到tx表对应的

  字段里。

  例如:insert into tx select t1.com1,concat(t1.com2,t2.com1) from t1,t2;

  10,删除字段

  alter table form1 drop column 列名;

  补充一个:

  PHP操作MySQL对表增加一列

  于已经建立好的数据库,在一个已经有字段的表内新加字段可用以下方法:

  mysql_query(“ALTER TABLE `表名` ADD `字段` 字段类型”) or die(mysql_error());

  例如,对表article添加字段keywords

  代码:

 代码如下

 

<?php
$link = mysql_connect($servername,$dbusername,$dbpassword);
if (mysql_select_db($dbname)) {
if ($link) {
echo “connect succeed”;
mysql_query(“ALTER TABLE `article` ADD `keywords` varchar(100) NOT NULL default ””) or die(mysql_error());
echo “Add succeed”;
} else {
echo “connect failed”;
}
mysql_close($link);
}
?>

--创建数据库 create database school --打开数据库 use school --创建表 create table student ( id int, name varchar(20), sex...

一、sql语句

包含了字段和记录。
有多个数据表而组成的库

~~sql语句书写顺序: 

E-R图的构建步骤:
1.为每个实体建立一张表;
2.为每个表选择一个主键;
3.增加外键以表示一对多的关系;
4.建立新表表示多对多的关系;
5.定义约束条件;
6.评价关系的质量进行改进;
7.为每个字段选择合适的数据类型和取值范围;

        select  from where  groupby  having  orderby

澳门新浦京娱乐场网站,E-R模型由实体、属性和关系3个基本要素构成。

~~sql语句执行顺序:

表示方法:

        from  where  select  group by having order by

实体;矩形
属性:在矩形内部
关系:直线 1:1 、1:n 、n:n

1.操作数据库

主键:

(1)创建数据库

唯一性、

CREATE  DATABASE  [IF NOT EXISTS] db_name [create_specification [, create_specification] ...]

create_specification:

[DEFAULT] CHARACTER SET charset_name  |  [DEFAULT] COLLATE collation_name

NO NULL.
Primary Key
<pi>Serial------>auto_increment

    ~创建一个名称为mydb1的数据库。

外键:表A中的一个字段a对应于表B的主键b,则字段a成为表A的外键。

    create database mydb1;

约束;
1.主键约束(Primary Key):
2.外键约束(Foreign Key):
3.唯一性约束(unique):
4.非空约束(not Null):
5.检查约束(check):
6.默认值约束(default):

    ~创建一个使用gbk字符集的mydb2数据库。

show databases; 查看数据库信息
show engines;查看存储引擎信息
set table_type=InnoDB;设置当前默认存储引擎为InnoDB
show variables like 'table_type';
show create table table_name;
show variables like 'collation%'; 查看当前的字符序
set names gbk; 一次性设置character_set_client.character_set_connection和character—_set_results的字符集为gbk

    create database mydb2 character set gbk;

 

    ~创建一个使用utf8字符集,并带校对规则的mydb3数据库。

SQL脚本文件进行字符集的更改:文件后缀为.sql

        create database mydb3 character set utf-8 collate utf8_bin;

set table_type=InnoDB;
show variable like 'table_type';
SET character_set_client = gbk;
SET character_set_connection = gbk;
SET character_set_database = gbk;
SET character_set_results = gbk;
SET character_set_server = gbk;
SET character_database = gbk_chinese_ci;
SET character_connection = gbk_chinese_ci;
SET character_server = gbk_chinese_ci;
show variables like 'character%';
show variables like 'collation%';

(2)查看数据库

在命令行中执行脚本文件: . C:wampwwwsqlinit.sql

    > 显示数据库语句:

数据库的管理:

        SHOW DATABASES

 

    > 显示数据库创建语句:

创建数据库:

        SHOW CREATE DATABASE db_name

create database database_name;

    > 查看当前数据库服务器中的所有数据库

选择当前操作的数据库:

        show databases;

use database_name;

    查看前面创建的mydb2数据库的定义信息

显示数据库的结构:

        show create database mydb3;

show create database database_name;

(3)修改数据库

删除数据库:
drop database database_name;
数据库表的管理:
create table table_name{
column_name1 数据类型 [约束条件]
.....
column_name(n) 数据类型 [约束条件]
}
删除当前表中的列 向当前已存在的表中添加列:
alter table table_name alter table table_name
drop column column_name; add column datatype 约束条件;
改变当前表中的column的datatype 1、修改列类型,比如列为nvarch类型,修改其长度为100:
alter table table_name
alter column column_name datatype ALTER TABLE tb ALTER COLUMN col nvarchar(100)

ALTER  DATABASE  [IF NOT EXISTS] db_name  [alter_specification [, alter_specification] ...]

alter_specification:

[DEFAULT] CHARACTER SET charset_name  |  [DEFAULT] COLLATE collation_name

2、增加一列:

    ~查看服务器中的数据库,并把其中mydb2字符集修改为utf8

ALTER TABLE tb ADD col2 nvarchar(100) null

        alter database mydb2 character set utf8;

表中存在数据时,新增加的列必须为null或者identity。

(4)删除数据库

3、增加约束,设定列col3的缺省值为0:

DROP DATABASE  [IF EXISTS]  db_name

ALTER TABLE tb ADD CONSTRAINT DF_col3 DEFAULT 0 FOR col3
数据类型:
数值:
字符串:
日期:
附加属性:
NULL:
auto_increment:

    ~删除前面创建的mydb1数据库 drop database mydb1;

使用脚本文件进行数据库表的创建:
use student; 首先声明操作的数据库;
create table classes( 进行数据库表的创建;
class_id int auto_increment primary key, 表中的属性名 类型 约束条件
class_no char(10) not NULL unique,
class_name char(20) not NULL
);
显示数据库表的结构:
show tables; 查看当前操作数据库中所有表名;
describe table_name; 查看classes表的表结构;
show create table table_name; 查看创建表名为table_name的创建语句,从而查看表结构
删除数据库表:
drop table table_name;

        drop database mydb1;

表记录的更新操作:
添加:
insert into table_name [(字段列表)] values(值列表);
insert into classes(class_in,class_no,class_name) values(NULL,'10chinese','10中文');
insert into classes values(NULL,'10chinese','10中文'); 当向表中所有列添加数据时,字段列表可以省略;
修改:
update table_name;
set column_name = new_value[,next_column = new_value2····]
[where 条件表达式]
update student set student='张三丰' where student_id=1;
update score set grade=grade-5;
update score set grade=grade 10 where student_id=1 and courses_id=2;
删除:
delete from table_name
[澳门新浦京娱乐场网站:Mysql的基本操作,Mysql数据库常用sql语句及多表查询设计。where 条件表达式];
delete form score where student_id=1 and course_id=2;
查询:
select 字段列表 * :字段列表为数据源的全部字段。
表名.* :多表查询时,指定某个表的全部字段。
字段列表 :指定所需要显示的列。
form 数据源
[where 过滤条件]
[group by 分组表达式]
[having 分组过滤条件]
[order by 排序表达式[asc|desc]];

(5)选择数据库

select 字段列表
form 数据源
limit [start,end]length; start 的值默认为0; top 2 top 50 percent
select * from score limit 0,3; 查询score表的前3条记录。
等效于:select * from score limit 3;

        进入数据库:use db_name;

select * from score where grade>80;
select * from score order by grade desc;
select sum(grade) from score where course_id=1; 使用聚合函数返回汇总值;
sum()/avg()/count()/max()/min()

        查看当前所选的数据库: select database();

特殊字符的转义使用反斜线符号''开头

2.操作表

how to create INDEX in a table?
how to alter the datatype of a table's column?
how create a view?
what is the view?

(1)创建表

CREATE TABLE table_name

{

field1 datatype,

field2 datatype,

field3 datatype,

}[character set 字符集] [collate 校对规则]

field:指定列名  datatype:指定列类型

创建一个员工表employee

CREATE TABLE employee(

id INT PRIMARY KEY AUTO_INCREMENT,

NAME VARCHAR(20) UNIQUE,

gender BIT NOT NULL,

birthday DATE,

entry_date DATE,

job VARCHAR(40),

salary DOUBLE,

RESUME TEXT

);

(2)查看表

    查看表结构:desc tabName

    查看当前数据库中所有表: show tables;

    查看当前数据库表建表语句: show create table tabName;

(3)修改表

ALTER TABLE table ADD/MODIFY/DROP/CHARACTER SET/CHANGE (column datatype [DEFAULT expr][,column datatype]...);

*修改表名称:rename TABLE 表明 to  新表名;

~在上面员工表的基本上增加一个image列。

    alter table employee add image blob;

~修改job列,使其长度为60

    alter table employee modify job varchar(60);

~删除gender列

    alter table employee drop gender;

~表名改为user。

    rename table employee to user;

~修改表的字符集为gbk

    alter table user character set gbk;

~列明name修改为username

    alter table user change name username varchar(20);

(4)删除表

        DROP TABLE tab_name;

~删除user表

drop table user;

****3.操作表记录CRUD****

(1)INSERT

INSERT INTO table [(columen [,column...])] VALUES (value[,value])

插入的数据应与字段的数据类型相同。

数据的大小应在列的规定范围内,例如:不能将一个长度为80的字符串加入到长度为40的列中。

在values中列出的数据位置必须与被加入的列的排列位置相对应。

字符和日期型数据应包含在单引号中。

插入空值:不指定或insert into table value(null)

如果要插入所有字段可以省写列列表,直接按表中字段顺序写值列表

注:查看系统变量(系统编码如:character_set_client | utf8等) show  variables like 'character%';在win系统中cmd 连接数据库,在插入数据时,如果数据库都是utf8的那么会有问题,因为win系统的cmd是gbk编码,所以会有问题乱码。需要执行 set names;主要改变character_set_client 、character_set_connection 、character_set_results的编码。另外这个set names 只是告诉这个cmd窗口用gbk字符集插入数据。这个只是临时措施。

~使用insert语句向表中插入三个员工的信息

insert into employee (id,name,gender,birthday,entry_date,job,salary,resume)values (null,'张飞',1,'1999-09-09','1999-10-01','打手',998.0,'老大的三弟,真的很能打');

insert into employee values (null,'关羽',1,'1998-08-08','1998-10-01','财神爷',9999999.00,'老大的二弟,公司挣钱都指着他了');

insert into employee values (null,'刘备',0,'1990-01-01','1991-01-01','ceo',100000.0,'公司的老大'),(null,'赵云',1,'2000-01-01','2001-01-01','保镖',1000.0,'老大贴身人');

(2)UPDATE

UPDATE tbl_name SET col_name1=expr1 [, col_name2=expr2 ...] [WHERE where_definition]

UPDATE语法可以用新值更新原有表行中的各列。

SET子句指示要修改哪些列和要给予哪些值。

WHERE子句指定应更新哪些行。如没有WHERE子句,则更新所有的行

~将所有员工薪水修改为5000元。

update employee set salary = 5000;

~将姓名为’张飞’的员工薪水修改为3000元。

update employee set salary = 3000 where name='张飞';

~将姓名为’关羽’的员工薪水修改为4000元,job改为ccc。

update employee set salary=4000,job='ccc' where name='关羽';

~将刘备的薪水在原有基础上增加1000元。

update employee set salary=salary 1000 where name='刘备';

(3)DELETE

如果不使用where子句,将删除表中所有数据。

Delete语句不能删除某一列的值(可使用update)

使用delete语句仅删除记录,不删除表本身。如要删除表,使用drop table语句。

同insert和update一样,从一个表中删除记录将引起其它表的参照完整性问题,在修改数据库数据时,头脑中应该始终不要忘记这个潜在的问题。

外键约束

删除表中数据也可使用TRUNCATE TABLE 语句,它和delete有所不同,参看mysql文档。

delete from tbl_name [WHERE where_definition]

~删除表中名称为’张飞’的记录。

delete from employee where name='张飞';

~删除表中所有记录。

delete from employee;

~使用truncate删除表中记录。

truncate table employee;

(4)SELECT

~1.基本查询

SELECT [DISTINCT] *|{column1, column2. column3..} FROM table;

~查询表中所有学生的信息。

select * from exam;

~查询表中所有学生的姓名和对应的英语成绩。

select name,english from exam;

~过滤表中重复数据

select distinct english from exam;

~在所有学生分数上加10分特长分显示。

select name , math 10,english 10,chinese 10 from exam;

~统计每个学生的总分。

select name ,english math chinese from exam;

使用别名表示学生总分。

select name as 姓名 ,english math chinese as 总成绩 from exam;

select name 姓名 ,english math chinese 总成绩 from exam;

select name,english from exam;

~2.使用where子句进行过滤查询

~查询姓名为张飞的学生成绩

select * from exam where name='张飞';

~查询英语成绩大于90分的同学

select * from exam where english > 90;

~查询总分大于230分的所有同学

select name 姓名,math english chinese 总分 from exam where math english chinese>230;

~查询英语分数在 80-100之间的同学。

select * from exam where english between 80 and 100;

~查询数学分数为75,76,77的同学。(math 代表数学,不是关键字)

select * from exam where math in(75,76,77);

~查询所有姓张的学生成绩。

select * from exam where name like '张%';

select * from exam where name like '张__';

~查询数学分>70,语文分>80的同学。

select * from exam where math>70 and chinese>80;

~3.使用order by关键字对查询结果进行排序操作

SELECT column1, column2. column3.. FROM table where... order by column asc|desc;

asc 升序    **默认就是升序**

desc 降序

~对语文成绩排序后输出。

select name,chinese from exam order by chinese desc;

~对总分排序按从高到低的顺序输出

select name 姓名,chinese math english 总成绩 from exam order by 总成绩 desc;

~对姓张的学生成绩排序输出

select name 姓名,chinese math english 总成绩 from exam where name like '张%' order by 总成绩 desc;

~4.聚合函数

(1)Count -- 用来统计符合条件的行的个数

~统计一个班级共有多少学生?

select count(*) from exam;

~统计数学成绩大于90的学生有多少个?

select count(*) from exam where math>70;

~统计总分大于230的人数有多少?

select count(*)from exam where math english chinese > 230;

(2)SUM -- 用来将符合条件的记录的指定列进行求和操作

~统计一个班级数学总成绩?

select sum(math) from exam;

~统计一个班级语文、英语、数学各科的总成绩

select sum(math),sum(english),sum(chinese) from exam;

~统计一个班级语文、英语、数学的成绩总和

select sum(ifnull(chinese,0) ifnull(english,0) ifnull(math,0)) from exam;

在执行计算时,只要有null参与计算,整个计算的结构都是null

此时可以用ifnull函数进行处理,ifnull(chinese,0)表示如果语文这个字段是null 那么用0来代替。

~统计一个班级语文成绩平均分

select sum(chinese)/count(*) 语文平均分 from exam;

(3)AVG -- 用来计算符合条件的记录的指定列的值的平均值

~求一个班级数学平均分?

select avg(math) from exam;

~求一个班级总分平均分?

select avg(ifnull(chinese,0) ifnull(english,0) ifnull(math,0)) from exam;

(4)MAX/MIN -- 用来获取符合条件的所有记录指定列的最大值和最小值

~求班级最高分和最低分

select max(ifnull(chinese,0) ifnull(english,0) ifnull(math,0)) from exam;

select min(ifnull(chinese,0) ifnull(english,0) ifnull(math,0)) from exam;

~5.分组查询

~对订单表中商品归类后,显示每一类商品的总价

select product,sum(price) from orders group by product;

~询购买了几类商品,并且每类总价大于100的商品

select product 商品名,sum(price)商品总价 from orders group by product having sum(price)>100;

where子句和having子句的区别:

where子句在分组之前进行过滤having子句在分组之后进行过滤

having子句中可以使用聚合函数,where子句中不能使用

很多情况下使用where子句的地方可以使用having子句进行替代

~查询单价小于100而总价大于150的商品的名称

select product from orders where price<100 group by product having sum(price)>150;

~~sql语句书写顺序:

select from where groupby having orderby

~~sql语句执行顺序:

from where select group by having order by

~~备份恢复数据库

备份: 在cmd窗口下 mysqldump -u root -p dbName>c:/1.sql

恢复: 方式1:在cmd窗口下 mysql -u root -p dbName

还有些笔记详见笔记

本文由澳门新浦京娱乐场网站发布于数据库,转载请注明出处:澳门新浦京娱乐场网站:Mysql的基本操作,Mysql数