layout: post
title: Mariadb的sql操作
date: 2018-01-26
tags: [“Mariadb”,”软件服务”]


一、SQL语句分类、

1、DDL 数据定义

CREATE 创建语句

DROP 删除语句

ALTER 修改表结构语句

2、DML 数据控制

INSERT 数据插入语句

DELETE 数据删除语句

UPDATE 数据更新语句

3、DCL 权限控制

GRANT 用户授权语句

REVOKE 撤销权限语句

4、DQL 数据查询

SELECT 数据查询语句

二、sql语句的运用

创建新表

PRIMARY KEY(col1,…)
INDEX(col1, …)
UNIQUE KEY(col1, …)
表选项:
ENGINE [=] engine_name
SHOW ENGINES;查看支持的engine类型
ROW_FORMAT [=]
{DEFAULT’DYNAMIC’FIXED’COMPRESSED’REDUNDANT
‘COMPACT}

  1. CREATE TABLE salt_returns IF NOT EXISTS(
  2. id mediumint(9) NOT NULL AUTO_INCREMENT,
  3. jid char(20) DEFAULT NULL,
  4. host_id varchar(48) DEFAULT NULL;
  5. time timestamp NOT NUL DEFAULT CURRENT_TIMESTAMP,
  6. fun varchar(30) DEFAULT NULL,
  7. return text,
  8. success char(5) DEFAULT NULL,
  9. PRIMARY KEY (id),
  10. KEY idx_host_id (host_id)
  11. ) engine=innodb

创建新库

  1. CREATE DATABASE'SCHEMA [IF NOT EXISTS] 'DB_NAME';

删除数据库

  1. DROP DATABASE'SCHEMA [IF EXISTS] 'DB_NAME';

删除表

  1. DROP TABLE [IF EXISTS] tb_name;
  1. show variables like 'port' ; 查询变量
  2. drop user ''@localhost; 删除空用户名用户
  3. drop user 'root'@'::1'; 删除ipv6的用户
  4. create user xe@'localhost' identified by 'okkk'; 添加用户,并设置访问
  5. create user xx@'192.168.10.%' identified by 'okkk'; 添加用户,并设置访问
  6. mysqladmin -u root -poldpassword password 'newpassword' 修改密码的一种方法
  7. select user(); 显示当前登录用户
  8. show processlist; 查看当前进程
  9. status;当前信息
  10. mysql -S socket -u -p (在多实例时需要指定socket
  11. mysql --print-defaults 显示客户端配置文件选项;
  12. select
  13. 注释的方法:/* ....... */ 多行注释
  14. -- 单行注释
  15. mysql自己单独的注释方法:#
  16. desc students; 查看students表的表结构
  17. desc coc; 查看coc表的表结构
  18. show tables status from mysql \G (按列显示)
  19. show engines; 显示支持的引擎,默认InnoDB
  20. show variables like '%file%' innodb_file_per_table innodb每个表建立自己的数据文件而不放在一起。
  21. show table status like 'emp' \G compact 紧凑格式
  22. show table status from mhellodb\G 查看每张表;
  23. alter table emp add address varchar(100) not null after name ;(after在哪列之后)
  24. desc emp; 查看表结构
  25. create table newstudents select * from students; (复制一个新表,但是不会复制表结构的特殊属性,如主键)
  26. delete from newstudents ;
  27. insert into newstudents select * from students; ( 将另一个表的内容保存到当前表内 )
  28. show columns from newstudents; 显示表结构 desc newstudents;
  29. truncate table newstudents; (清除表数据,速度比delete快)

表结构属性:

  1. enumeric 枚举(二选一,yesorno)
  2. set(组合) set('a','b','c') 选其中1个或多个
  3. 索引:
  4. 索引是特殊数据结构;用户查询
  5. create indexes index_name from students 创建一个索引(一般用于大数据量的表,因为创建索引是需要一定代价的)
  6. drop index index_age on students; 删除索引
  7. show index on students; 显示表的索引
  8. explain select * from students where age=20
  9. insert into test1 (id,name,sex) values (1,'mage','F');
  10. grant select,insert on testdb.* to 'testuser'@'%' identified by 'okk' testuser用户授权
  11. revoke select,insert on testdb.* to 'testuser'@'%' identified by 'okk' 撤销testuser的权限
  12. show grans for 'testuser'@'192.168.27.%'; 显示用户权限
  13. help show grants
文档更新时间: 2020-05-25 12:16   作者:张尚