mysql ondumplictcate_Mysql 常用的操作

第一部分:

mysql的查询操作(select 语句)

1.查询全部

格式:select * from 表名

例如查询 管理员表

SELECT * FROM admin;

7b90f266826bb32e6fe384b784583b26.png

2.指定字段

(1)格式:select field1,field2 from 表名

SELECT news_id,title FROM news

例如查询新闻表

d383a62de9562a432779526a41854647.png

(2)使用as 给自动指定别名

SELECT news_id as id,title FROM news

3.去重查询

格式:select [all | distinct] field from 表名

例如查询学生表

SELECT DISTINCT class_id FROM student;

4.使用where 加入条件

格式:select * from 表名 where 表达式

(1)例如查询产品分类表中pid 为0的记录

SELECT * FROM sp_product_categroy WHERE pid = 0

2c808214fccb6d536b3d38acf53709b5.png

(2)例如查询产品分类表中product_cat_id 大于30的记录

SELECT * FROM `sp_product_category` WHERE product_cat_id >30

ef5a6d30b41c40a6501762120b84baad.png

(3)例如产品分类表中product_cat_id 大于30 小于 40 的记录

SELECT *

FROM `sp_product_category`

WHERE product_cat_id >30

AND product_cat_id <40

1bdc2a03800a4ad4fa5f5c4bf92c1ba7.png

(4)例如查询产品分类表 id 小于 6 或 大于 60 的记录

SELECT *

FROM `sp_product_category`

WHERE product_cat_id < 6 || product_cat_id > 60

(5)例如查询字段填充NULL的

SELECT * FROM sp_product_category WHERE ename IS NULL

(6)例如查询字段填充NOT NULL的

SELECT * FROM sp_product_category WHERE ename IS NOT NULL

(7)例如查询产品分类表中product_cat_id 在5,6,7,8,10 集合中匹配

SELECT * FROM sp_product_category WHERE product_cat_id IN (5,6,7,8,10)

(8)例如查询产品分类表中product_cat_id 不在 5,6,7,8,10 集合中匹配

SELECT * FROM sp_product_category WHERE product_cat_id NOT IN (5,6,7,8,10)

(9)例如查询指定区间

SELECT * FROM student WHERE cj > 60 AND cj < 80

SELECT * FROM student WHERE cj BETWEEN 60 AND 80

(10) 使用like关键字进行模糊匹配

SELECT * FROM student WHERE name LIKE '%张'

SELECT * FROM student WHERE name LIKE '张%'

SELECT * FROM student WHERE name LIKE '%张%'

4.查询两张表

例如查询新闻表和新闻分类表

SELECT a.*,b.* FROM news a,newscate b WHERE a.newscate_id = b.newscate_id

5.关联查询

(1)例如查询新闻表和新闻分类表

SELECT a.*,b.* FROM news a JOIN newscate b ON a.newscate_id = b.newscate_id

6.常用函数

#查看mysql版本

SELECT VERSION();

#查看当前函数

SELECT NOW();

#取当前日期中的日

SELECT DAYOFMONTH(CURRENT_DATE);

#取当前时间中的月

SELECT MONTH(CURRENT_DATE);

#取当前时间中的年

SELECT YEAR(CURRENT_DATE);

7.计算器

#计算7乘以7

SELECT 7*7;

8.字符串组合

SELECT *,CONCAT('stu-',class_id,'-',no) FROM student

9.ORDER BY 指定排序字段

格式:SELECT * FROM 表名  ORDER BY 排序字段 ASC/DESC

SELECT * FROM news ORDER BY news_id DESC

10.GROUP BY 分组

格式:SELECT * FROM 表名 GROUP BY 字段

SELECT * FROM news GROUP BY newscate_id

11.使用LIMIT 限制记录数量

格式:SELECT * FROM 表名 LIMIT 0,20

0表示从第0条开始,一共20条

SELECT * FROM news LIMIT 0,20

12.使用SUM,COUNT,AVG

格式:SELECT SUM(field) FROM 表名

13.使用FLOOR,RAND,MD5

格式:SELECT RAND();     产生随机数

格式:SELECT FLOOR();       取整数

14.使用常量:CURRENT_TIME,TIMESTAMP,CURRENT_USER

格式:SELECT RAND();     产生随机数

格式:SELECT FLOOR();       取整数

补充内容

创建数据库并指定编码

CREATE DATABASE IF NOT EXISTS 数据库名称 DEFAULT CHARSET utf8 COLLATE utf8_general_ci;

事务处理

START TRANSACTION / BEGIN

sql语句1

sql语句2

COMMIT / ROLLBACK

mysql> use RUNOOB;

Database changed

mysql> CREATE TABLE runoob_transaction_test( id int(5)) engine=innodb; # 创建数据表

Query OK, 0 rows affected (0.04 sec)

mysql> select * from runoob_transaction_test;

Empty set (0.01 sec)

mysql> begin; # 开始事务

Query OK, 0 rows affected (0.00 sec)

mysql> insert into runoob_transaction_test value(5);

Query OK, 1 rows affected (0.01 sec)

mysql> insert into runoob_transaction_test value(6);

Query OK, 1 rows affected (0.00 sec)

mysql> commit; # 提交事务

Query OK, 0 rows affected (0.01 sec)

mysql> select * from runoob_transaction_test;

+------+

| id |

+------+

| 5 |

| 6 |

+------+

2 rows in set (0.01 sec)

########################################################################################

mysql> begin; # 开始事务

Query OK, 0 rows affected (0.00 sec)

mysql> insert into runoob_transaction_test values(7);

Query OK, 1 rows affected (0.00 sec)

mysql> rollback; # 回滚

Query OK, 0 rows affected (0.00 sec)

mysql> select * from runoob_transaction_test; # 因为回滚所以数据没有插入

+------+

| id |

+------+

| 5 |

| 6 |

+------+

2 rows in set (0.01 sec)

mysql>

关于索引

1.添加主键索引

格式:ALTER TABLE 表名 ADD PRIMARY KEY ( 字段)

ALTER TABLE `ecs_user_account` ADD PRIMARY KEY ( `amount` )

2.添加唯一索引

格式:ALTER TABLE 表名 ADD UNIQUE ( 字段)

ALTER TABLE `ecs_user_account` ADD UNIQUE ( `amount` )

3.添加常规索引

格式:ALTER TABLE 表名 ADD INDEX ( 字段)

ALTER TABLE `ecs_user_account` ADD INDEX ( `amount` )

4.添加全文索引

格式:ALTER TABLE 表名 ADD FULLTEXT [索引名称] ( 字段)

ALTER TABLE `ecs_user_account` ADD FULLTEXT [am] ( `amount` )

删除索引

格式:DROP INDEX 字段 ON 表名

DROP INDEX amount ON ecs_user_account;

维护命令

清空表

TRUNCATE 表名;

TRUNCATE user;

分析表

ANALYZE TABLE profile ,user

检查表

CHECK TABLE 表1,表2

CHECK TABLE profile , user

优化表

OPTIMIZE TABLE 表1,表2 ###可以是多个

OPTIMIZE TABLE user,profile;

修复表

REPAIR TABLE 表1,表2

REPAIR TABLE profile , user

导入导出

1.导出

在mysql\bin 目录下 执行mysqldump.ext +参数

格式:MYSQLDUMP -h127.0.0.1 -uroot -proot 数据库名 > 路径+XXX.sql

MYSQLDUMP.exe -h127.0.0.1 -uroot -proot news > D:\news.sql

2.导入

在mysql 命令提示符下,(USE 数据库后)

格式:SOURCE  路径+XXX.sql

SOURCE  D:\news.sql

用户权限

GRANT 权限 ON 数据库.数据表 TO 用户名@登录主机 INDENTIFIED BY “密码”

例如:

添加一个新用户名为lijie,密码为字符串“jiege”。让他可以在任何主机上登录,并对所有数据库有查询、插入、修改、删除的权限。首先要以root用户登录,然后输入以下命令:

GRANT SELECT,INSERT,UPDATE,DELETE ON *.* TO 'lijie'@'%' INDENTIFIED BY 'jiege'

GRANT SELECT,UPDATE ON news_cmd.* TO 'lily'@'%' IDENTIFIED BY '123';

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值