mysql 相关操作
sanlanlan 2018-1-1 标签: mysql 浏览:1571 评论:0
转载至:http://blog.csdn.net/evankaka
一、用户创建、权限、删除
1、创建用户:
命令:CREATE USER 'username'@'host' IDENTIFIED BY 'password';
CREATE USER 'test'@'localhost' IDENTIFIED BY '123456';
2、授权:
命令:GRANT privileges ON db.table TO 'username'@'host'
说明:privileges - 用户的操作权限,如SELECT , INSERT , UPDATE 等(详细列表见该文最后面).如果要授予所的权限则使用ALL
如果要授予该用户对所有数据库和表的相应操作权限则可用*表示, 如*.*.
GRANT SELECT, INSERT ON school.* TO 'test' @'%';
GRANT ALL ON *.* TO 'test'@'%';
注意:用以上命令授权的用户不能给其它用户授权,如果想让该用户可以授权,用以下命令:
GRANT privileges ON db.table TO 'username'@'host'WITH GRANT OPTION;
3、设置与更改用户密码
命令:SET PASSWORD FOR 'username'@'host' = PASSWORD('newpassword');
4、删除用户
命令: DROP USER 'username'@'host';
二、表复制及备份还原
1.复制表结构
1.1 含有主键等信息的完整表结构
CREATE table 新表名 LIKE table;
1.2 只有表结构,没有主键等信息
create table 新表名 select * from table;
2.将旧表中的数据导入新表
INSERT INTO 新表 SELECT * FROM 旧表;
3.备份数据库
4.还原数据库
先create database test
然后 下mysql>下
输入source 路径,即可。 //source test.sql
5.导出数据
select * from table into outfile”dest_file”;
select * from table limit 10 intooutfile "/tem/test.txt";
6.导入数据
load data infile”file_name” into table table_name;
load data infile"/tem/test.txt” into table tes;
三、数据库操作
1、按月查询统计数据
SELECT * FROM tb_stu WHERE month(date) = '$_POST[date]' ORDER BY date ;
注:SQL语言中提供了如下函数,利用这些函数可以很方便地实现按年、月、日进行查询
year(data):返回data表达式中的公元年分所对应的数值
month(data):返回data表达式中的月分所对应的数值
day(data):返回data表达式中的日期所对应的数值
2、查询结果不显示重复记录
SELECT DISTINCT 字段名 FROM 表名 WHERE 查询条件
注:SQL语句中的DISTINCT必须与WHERE子句联合使用,否则输出的信息不会有变化 ,且字段不能用*代替
3、显示数据表中重复的记录和记录条数
SELECT name,age,count(*) ,age FROM table WHERE age = '18' group by date
4、对数据进行多条件查询
SELECT 字段名 FROM table WHERE 条件 ORDER BY 字段1 ASC 字段2 DESC …
注意:对查询信息进行多条件排序是为了共同限制记录的输出,一般情况下,由于不是单一条件限制,所以在输出效果上有一些差别。
5、对统计结果进行排序
函数SUM([ALL]字段名) 或 SUM([DISTINCT]字段名),可实现对字段的求和,函数中为ALL时为所有该字段所有记录求和,若为DISTINCT则为该字段所有不重复记录的字段求和
如:SELECT name,SUM(price) AS sumprice FROM tb_price GROUP BY name
SELECT * FROM tb_name ORDER BY mount DESC,price ASC
6、单列数据分组统计
SELECT id,name,SUM(price) AS title,date FROM table GROUP BY pid ORDER BY title DESC
注:当分组语句group by排序语句order by同时出现在SQL语句中时,要将分组语句书写在排序语句的前面,否则会出现错误
7、多列数据分组统计
多列数据分组统计与单列数据分组统计类似
SELECT *,SUM(字段1*字段2) AS (新字段1) FROM 表名 GROUP BY 字段 ORDER BY 新字段1 DESC
SELECT id,name,SUM(price*num) AS sumprice FROM tb_price GROUP BY pid ORDER BY sumprice DESC
注:group by语句后面一般为不是聚合函数的数列,即不是要分组的列
8、多表分组统计
SELECT a.name,AVG(a.price),b.name,AVG(b.price) FROM tb_demo058 AS a,tb_demo058_1 AS b WHERE a.id=b.id GROUP BY b.type;
9、索引操作
ADD: ALTER TABLE `table` ADD INDEX name (`name`);
delete: ALTER TABLE `table` DROP INDEX name;
unique: ALTER TABLE `table` ADD UNIQUE `name_sex` (`name`, `sex`);
delete: ALTER TABLE table DROP INDEX name_sex
本文相关标签: mysql
发表评论: