在对MySQL数据库进行操作时,有时候需要对数据库中的记录进行统计,例如求平均值、最小值或最大值等,这时可以使用MySQL中的统计函数。
常用的统计函数如下表所示:
名称 | 说明 |
---|---|
avg(字段名) | 获取指定列的平均值。 |
count(字段名) | 如果指定了一个字段,则会统计出该字段中的非空记录。如果在前面增加DISTINCT,则会统计不同值的记录,相同的值当做一条记录。如果使用count(*),则统计包含空值的所有记录数。 |
min(字段名) | 获取指定字段的最小值。 |
max(字段名) | 获取指定字段的最大值。 |
std(字段名) | 指定字段的标准背离值。 |
stdtev(字段名) | 与std相同。 |
sum(字段名) | 指定字段所有记录的总和。 |
where条件语句
在使用查询语句时,比如要从很多的记录中查询出想要的记录,就需要一个查询的条件。只有设定了查询的条件,查询才有实际的意义。
设定查询条件应用的是where子句。
通过where子句,可以实现很多复杂的条件查询。在使用where子句时,需要使用一些比较运算符。常用的比较运算符如下表所示:
运算符 | 名称 | 示例 |
---|---|---|
= | 等于 | id=10 |
> | 大于 | id>10 |
< | 小于 | id<10 |
>= | 大于等于 | id>=10 |
<= | 小于等于 | id<=10 |
!=或<> | 不等于 | id!=10 |
is null | n/a | id is null |
is not null | n/a | id is not null |
between | n/a | id between 1 and 15 |
in | n/a | id in(3,4,5) |
not in | n/a | xuesheng not in(shi,li) |
like | 模式匹配 | xuesheng like(‘shi%’) |
not like | 模式匹配 | xuesheng not like(‘shi%’) |
regexp | 常规表达式 | xuesheng正则表达式 |
MySql #赋值操作符"="与":=" 1. “:=” 是真正意义上的赋值操作,左边的变量设置为右边的值。 #2. "=" 则只在两种情况下作为赋值用,第一种就是在SET语句里面,SET var = value; 另一种是在UPDATE语句里面的那个SET,如update table_name set column_name where....。 #除了这两种情况外"="则作为比较操作符使用。 #如果要查询一个表中的所有列,可以将其设置为“*” select * from weicot; // 查询数据表中的所有数据 #如果只查询一个表中的某一列或多列,可以直接输入列名,并以“,”分隔。 select name,listname from weicot; // 查询数据表中name和listname列的数据 ##多表查询 #既可以从一个数据表中查询,也可以从多个数据表中进行查询,多个数据表之间用“,”进行分隔,并且可以通过where子句使用连接运算来确定表之间的联系 select 表名.字段名 from 表1,表2... where 表1.字段=表2.字段 and 其它查询条件 #首先查看一下weicot_tb数据表中的数据记录。 select * from weicot_tb #使用where子句,查询weicot_tb表,条件是name为liu的数据记录 select * from weicot_tb where name='liu'; /*ORDER BY对结果进行排序 使用ORDER BY可以对查询的结果进行升序(ASC)或降序(DESC)排列,在默认情况下,ORDER BY按升序输出结果。 如果要按降序排列可以使用DESC来实现。 在对含有null值的列进行排序时,如果按升序排列,null值将出现在最前面;如果按降序排列,null值将出现在最后面。*/ #查询tb_weicot表中的所有信息,按照“id”进行降序排列' select * from tb_weicot order by id desc; #查看表结构的命令 desc tablename #查看表结构的命令2 show create table tablename #MySQL命令行导出数据库: #1,进入MySQL目录下的bin文件夹:cd MySQL中到bin文件夹的目录 #如我输入的命令行:cd C:\Program Files\MySQL\MySQL Server 4.1\bin #(或者直接将windows的环境变量path中添加该目录) #2,导出数据库:mysqldump -u 用户名 -p 数据库名 > 导出的文件名 #如我输入的命令行:mysqldump -u root -p news > news.sql (输入后会让你输入进入MySQL的密码) #(如果导出单张表的话在数据库名后面输入表名即可) #3、会看到文件news.sql自动生成到bin文件下 #命令行导入数据库: #1,将要导入的.sql文件移至bin文件下,这样的路径比较方便 #2,同上面导出的第1步 #3,进入MySQL:mysql -u 用户名 -p #如我输入的命令行:mysql -u root -p (输入同样后会让你输入MySQL的密码) #4,在MySQL-Front中新建你要建的数据库,这时是空数据库,如新建一个名为news的目标数据库 #5,输入:mysql>use 目标数据库名 #如我输入的命令行:mysql>use news; #6,导入文件:mysql>source 导入的文件名; #如我输入的命令行:mysql>source news.sql; #MySQL备份和还原,都是利用mysqldump、mysql和source命令来完成的。 #1.Win32下MySQL的备份与还原 #1.1 备份 #开始菜单 | 运行 | cmd |利用“cd \Program Files\MySQL\MySQL Server 5.0\bin”命令进入bin文件夹 | 利用“mysqldump -u 用户名 -p databasename #>exportfilename”导出数据库到文件,如mysqldump -u root -p voice>voice.sql,然后输入密码即可开始导出。 #1.2 还原 #进入MySQL Command Line Client,输入密码,进入到“mysql>”,输入命令"show databases;",回车,看看有些什么数据库;建立你要还原的数据库,输入"create #database voice;",回车;切换到刚建立的数据库,输入"use voice;",回车;导入数据,输入"source voice.sql;",回车,开始导入,再次出现"mysql>"并且没##有提示错误即还原成功。 #2.Linux下MySQL的备份与还原 #2.1 备份 [root@localhost ~]# cd /var/lib/mysql (进入到MySQL库目录,根据自己的MySQL的安装情况调整目录) [root@localhost mysql]# mysqldump -u root -p voice>voice.sql,输入密码即可。 2.2 还原 法一: [root@localhost ~]# mysql -u root -p 回车,输入密码,进入MySQL的控制台"mysql>",同1.2还原。 法二: [root@localhost ~]# cd /var/lib/mysql (进入到MySQL库目录,根据自己的MySQL的安装情况调整目录) [root@localhost mysql]# mysql -u root -p voice<voice.sql,输入密码即可。 #sql添加、删除表中的列 . #添加没有默认值: alter table Test add BazaarType char(1) #有默认值的添加列: alter table Test add BazaarType char(1) default(0) #删除没有默认值的列: alter table Test drop COLUMN BazaarType #删除有默认值的列:先删除约束(默认值)alter table Test DROP CONSTRAINT DF__Test__BazaarType__3C4ACB5F,然后在删除列 alter table Test DROP COLUMN BazaarType #系统自带的查询约束条件的存储过程:exec sp_helpconstraint 表名 #添加字段: #允许空字符: alter table 表名 add 新字段 字段类型 NULL #不允许空字符: alter table 表名 add 新字段 字段类型 not NULL #增加字段 alter table docdsp add dspcode char(200) #删除字段 ALTER TABLE table_NAME DROP COLUMN column_NAME #修改字段类型 ALTER TABLE table_name ALTER COLUMN column_name new_data_type #改名 sp_rename #更改当前数据库中用户创建对象(如表、列或用户定义数据类型)的名称。 #语法 sp_rename [ @objname = ] 'object_name' , [ @newname = ] 'new_name' [ , [ @objtype = ] 'object_type' ] #假设要处理的表名为: tb #判断要添加列的表中是否有主键 if exists(select 1 from sysobjects where parent_obj=object_id('tb') and xtype='PK') begin print '表中已经有主键,列只能做为普通列添加' #添加int类型的列,默认值为0 alter table tb add 列名 int default 0 end else begin print '表中无主键,添加主键列' #添加int类型的列,默认值为0 alter table tb add 列名 int primary key default 0 end
常用整理
1:删除列
ALTER TABLE 【表名字】 DROP 【列名称】
2:增加列
ALTER TABLE 【表名字】 ADD 【列名称】 INT NOT NULL? COMMENT ‘注释说明’
3:修改列的类型信息
ALTER TABLE 【表名字】 CHANGE 【列名称】【新列名称(这里可以用和原来列同名即可)】 BIGINT NOT NULL? COMMENT ‘注释说明’
4:重命名列
ALTER TABLE 【表名字】 CHANGE 【列名称】【新列名称】 BIGINT NOT NULL? COMMENT ‘注释说明’
5:重命名表
ALTER TABLE 【表名字】 RENAME 【表新名字】
6:删除表中主键
Alter TABLE 【表名字】 drop primary key
7:添加主键
ALTER TABLE sj_resource_charges ADD CONSTRAINT PK_SJ_RESOURCE_CHARGES PRIMARY KEY (resid,resfromid)
8:添加索引
ALTER TABLE?sj_resource_charges add index INDEX_NAME (name);
9: 添加唯一限制条件索引
ALTER TABLE sj_resource_charges add unique emp_name2(cardnumber);
10: 删除索引
alter table tablename drop index emp_name;
转载请注明:(●--●) Hello.My Weicot » Mysql 常用命令