美文网首页
MySql常用命令和SQL技巧

MySql常用命令和SQL技巧

作者: 一一道长一一 | 来源:发表于2019-01-22 11:34 被阅读9次
  1. 在ID是自增长的情况下获取刚插入数据的ID

在MYSQL中可以使用@@IDENTITY或者LAST_INSERT_ID()函数,当使用INSERT语句插入多条记录的时候,使用LAST_INSERT_ID()返 回的还是第一条的ID值,而使用@@IDENTITY是返回最后一条的ID值

  1. 配置上可以免用户名密码登陆数据库
[mysqld]
skip-grant-tables
  1. Mysql服务启动停止
servcie mysql start
service mysql stop
  1. 创建用户并授权,先设置2并以mysql -uroot 登录,才能执行以下命令
CREATE USER 'username'@'host' IDENTIFIED BY 'password';(如果报ERROR 1290 (HY000): The MySQL server is running with the --skip-grant-tables option so it cannot execute this statement,就先执行一下flush privileges;)
GRANT all privileges ON databasename.tablename TO 'username'@'host'
update mysql.user set password=password('新密码') where User='root';(mysql5.7以下用这个)
update mysql.user set authentication_string=password('新密码')  where user='root' ;(mysql5.7以上用这个方法)
  1. 所有权限
权限指定符 权限允许的操作
Alter 修改表和索引
Create 创建数据库和表
Delete 删除表中已有的记录
Drop 删除数据库和表
INDEX 创建或抛弃索引
Insert 向表中插入新行
Select 检索表中的记录
Update 修改现存表记录
FILE 读或写服务器上的文件
PROCESS 查看服务器中执行的线程信息或杀死线程
RELOAD 重载授权表或清空日志、主机缓存或表缓存。
SHUTDOWN 关闭服务器
ALL 所有;ALL PRIVILEGES同义词
USAGE 特殊的“无权限”权限
  1. 有重复数据时自动更新
-- 如果存在a,b,c中的某一列触发了唯一索引或主键索引异常(有重复值),则执行后边的update操作
INSERT  INTO table (a,b,c)VALUES (1,2,3)  ON  DUPLICATE KEY  UPDATE  c=c+1;
--  使用VALUES()函数可以获取insert的value中c列的值,上面的例子中c=3+6,这种方式特别适合插入多条记录
INSERT  INTO  table (a,b,c) VALUES (1,2,3), (4,5,6)  ON DUPLICATE  KEY UPDATE c=VALUES(a)+VALUES(b);
  1. 有重复数据时自动删除
-- 如果id为123和134的用户数据存在则先删除再插入,使用REPLACE的最大好处就是可以将DELETE和INSERT合二为一,形成一个原子操作
REPLACE  INTO  users(id, name, age) VALUES(123,'赵本山', 50), (134,'Mary',15);
  1. 更新时自动记录最后修改时间
ALTER TABLE `db_name`.`table_name` 
ADD   COLUMN   `udpate_time`  TIMESTAMP  DEFAULT CURRENT_TIMESTAMP  ON  UPDATE CURRENT_TIMESTAMP  NOT NULL  COMMENT '修改时间';
  1. 其他SQL技巧
-- 用正则表达式代替like
 select * from t where c1 regexp '^[0-9]{5}abc$'
-- 用rand()提取随机行
select * from t order by rand() limit 5
-- 利用 group by 的 with rollup 子句做统计(rollup不能与order by一同使用)
select a,b,c,count(id) from t group by a,b,c with rollup
  1. mysql 导出命令
-- 导出整个库(包含结构和数据)
mysqldump -uroot -p dbname > exportfile.sql 
--  导出整个库(仅结构)
mysqldump -uroot -p -d dbname > exportfile.sql 
-- 导出一个或多个表(包含结构和数据)
mysqldump -uroot -p dbname table1 table2  > exportfile.sql 
-- 导出一个或多个表(仅结构)
mysqldump -uroot -p -d dbname table1 table2  > exportfile.sql
-- 导出一个表的部分数据(仅数据)
mysqldump -uroot -p  --no-create-info   --databases dbname --tables a1 --where="id='a'" >exportfile.sql
-- 说明:-d 表示只导出结构  --no-create-info 表示不导出结构

相关文章

  • mysql 操作的常用命令

    sql:SHOWVARIABLESLIKE'character%' mysql学习笔记-常用命令常用sql:SHO...

  • MySql常用命令和SQL技巧

    在ID是自增长的情况下获取刚插入数据的ID 在MYSQL中可以使用@@IDENTITY或者LAST_INSERT_...

  • Java数据库一般操作

    SQL常用命令 连接:mysql -u user -p passwd;创建库:CREATE DATABASE 数据...

  • sql面试题大全

    sql面试题大全1、10条SQL优化技巧2、58到家MySQL数据库开发规范3、java.sql.Date和jav...

  • SQL常用命令书目录

    SQL常用命令之单表查询 SQL常用命令之多表查询 SQL常用命令之模糊查找 SQL常用命令之空值查询 SQL常用...

  • 设置更改root密码、连接MySQL、MySQL常用命令

    设置更改root密码 连接MySQL 连接MySQL MySQL常用命令 MySQL常用命令MySQL常用命令 扩...

  • mysql常用命令书目录

    mysql常用命令之连接MYSQL mysql常用命令之修改密码 mysql常用命令之增加新用户 mysql常用命...

  • MySQL日常命令

    常用命令 mysql创建用户及权限 Linux上安装MySQL时出现不兼容的解决办法 查看创建表的sql语句 给m...

  • MySQL相关文章索引(6)

    基本常识 mysql之TIMESTAMP(时间戳)用法详解 MySQLdump常用命令 SQL中字符串拼接 Nav...

  • MySQL索引知多少

    mysql索引 总结关于mysql的索引,查询优化,SQL技巧等 1 索引类型 B-Tree索引 Hash索引 ...

网友评论

      本文标题:MySql常用命令和SQL技巧

      本文链接:https://www.haomeiwen.com/subject/sslljqtx.html