mysql常用操作与练习题

创建数据库:
create database kaliboy_gbk DEFAULT CHARACTER SET gbk COLLATE gbk_chinese_ci;

create database kaliboy_utf8 DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;

显示数据库:
show databases;

show databases like ‘%kaliboy%‘;

连接显示数据库:
use kaliboy;

查看连接显示数据库:
select database();

删除数据库:
drop database kaliboy;

select version();

select user();
select now();

删除mysql 系统多余账号:
语法:drop user "user"@"主机域"

drop user "kali"@"localhost"
delete from mysql.user where="root" and host="localhost";

通过grant命令创建用户并授权
grant命令简单语法如下:
grant all privileges on dname.* to [email protected] identified by ‘passwd‘;
授权命令 对应权限 目标:库和表 用户名和客户端主机 用户密码

实例:
grant all privileges on test.* to [email protected] identified by ‘kali123‘;
flush privileges;

查看权限:
show grants for [email protected];

create 和grant 配合法
首先创建用户username及密码passwd,授权主机localhost
create USER ‘wiki‘@‘localhost‘ IDENTIFIED by ‘passwd‘;

然后授权localhost主机上通过用户username管理dbname数据库的所有权限无需密码
grant all privileges ON dbname.* to ‘username‘@‘localhost‘;

收回权限:
revoke insert on test.* from ‘kaliboy‘@‘localhost‘;

mysql 交互式参数-e

创建数据库表:

create table subject_comment_manager(
subject_comment_manager_id bigint(12) NOT NULL auto_increment COMMENT ‘主键‘,
subject_type tinyint(2) NOT NULL COMMENT ‘素材类型‘,
subject_primary_key varchar(255) NOT NULL COMMENT ‘素材的主题‘,
subject_title varchar(255) NOT NULL COMMENT ‘素材的名称‘,
edit_user_nick varchar(64) default NULL COMMENT ‘修改人‘,
edit_user_time timestamp NULL DEFAULT NULL COMMENT ‘修改时间‘,
edit_comment varchar(255) default NULL COMMENT ‘修改理由‘,
state tinyint(1) NOT NULL default ‘1‘ COMMENT ‘0 代表关闭,1代表正常‘,
PRIMARY KEY (‘subject_comment_manager_id‘), 主键
key ‘IDX_PRIMARYKEY‘(‘subject_primary_key‘(32)), 索引
KEY ‘IDX_SUBJECT_TITLE‘(‘subject_title‘(32)) 索引
)ENGINE=INNODB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;

数据库索引:
create table student(
id int(4) not null AUTO_INCREMENT,
name char(20) not null,
age tinyint(2) not null default ‘0‘,
dept varchar(16) default null,
priary key(id), 主键
key index_name(name) 索引
);

删除主键:
alter table student drop primary key;

添加主键:
alter table student change id id int primary key auto_increment;

删除普通索引
alter table student drop index index_name

添加普通索引
alter table student add index index_name(name);

指定前n个字符创建索引

create index index_dept on student(dept(8));

查看索引:

show index from student\G

创建联合索引:

create index ind_name_dept on student(name,dept);

创建唯一索引(非主键)

create unique index index_name

往表中插入数据:

create table test(
id int(4) NOT NULL AUTO_INCREMENT,
name char(20) NOT NULL,
PRIMARY KEY(id)
)ENGINE=InnoDB DEFAULT CHARSET=utf8;

inert into test(id,name) values(1,‘wiki‘);

inert into test values(2,‘teachar‘),(3,‘student‘);

查询数据:

使用explain查询select查询语句执行计划

修改表中数据:

update test set name="高圆圆" where id="3";

flush-log 二进制bin日志切割

防止数据库误操作:
登录加-U 参数

练习题:

多实例登录 -S 指定 mysql.sock路径
mysql -u root -p -S /tmp/mysql.sock

查看数据库版本及登录用户是什么.
select version();

select user();

创建GBK字符集的数据库kaliboy,并查看已建库的完整语句

学会用 help查看 help create database, show character set

create database kaliboy CHARACTER SET GBK COLLATE gbk_chinese_ci;

show create database kaliboy;

创建用户kaliboy,使之可以管理数据库kaliboy

grant all on kaliboy.* to [email protected]"localhost" Identified by "kali123";

flush privileges;

查看用户的授权

show grants for [email protected];

查看当前数据库里有哪些用户

select host,user from mysql.user;

进去kaliboy 数据库

use kaliboy;

创建innodb引擎字符集为GBK表test,字段为ID和name varchar(16),查看建表结构及SQL语句

create table test(
-> id int(4),
-> name varchar(16))
-> ENGINE=innodb default charset=gbk;

create table position(id int(4), name varchar(10), limit varchar(20)) ENGINE=innodb default charset=gbk;

show create table test\G;

插入一条数据 1 kaliboy

insert into test values(1,‘kaliboy‘);

批量插入数据2,花花公子.3,etiantian

insert into test values(2,‘脚本小子‘),(3,‘tiantian‘),(4,‘xiaoqian‘),(5,"安全工程师");

查询插入的所有记录,查询名字为kaliboy的记录 查询ID 大于1 的记录

select * from test;

select * from test where name="kaliboy";

select * from test where id>1;

把数据id 等于1 的名字kaliboy更改为 kaligirl;

update test set name="kaligirl" where id=1;

在字段name前插入age字段,类型int(4)

alter table test add age int(4) after id;

备份kaliboy库 与mysql库

mysqldump -u root -p123456 --events -B kaliboy mysql>kali.sql

删除表中的所有数据,并查看

use kaliboy;

delete from mysql;

select * from mysql;

truncate table mysql;

删除表test和kaliboy 数据库并查看

drop database test;

Linux命令行恢复以上删除的数据

mysql -u root -p123456<kali.sql

把GBK字符集修改为UTF8

修改数据库的编码格式: alter database user character set gbk;

echo $LANG

mysql密码丢了,如何找回来实战

/etc/init.d/mysqld stop
mysqld_safe --defaults-file=/etc/my.cnf --skip-grant-table &

update mysql.user set password=password("123456") where user="root";

mysql内中文数据乱码的原理及如何防止乱码

在把ID 列设置为主键,在name字段上创建普通索引

alter table tast add primary key(id);

在手机字段上对前8个字符创建普通索引

alter table test add index show(shou(8));

查看创建的索引及索引类型信息

show index from test\G;

删除name,shouji列的索引

alter table test drop index name;

对name 列的前6个字符以及手机列的前8个字符组建联合索引

alter table test add index lianhe(name(6),shou(8));

查询手机号以135开头的,名字为kaliboy的记录

select * from test where name="kaliboy" and shou like "135%";

查询上述语句的执行计划(是否使用联合索引等)

explain select * from test where name="kaliboy" shou like "135%";

创建主键索引

alter table test change id id int primary key auto_increment;

删除索引:

alter table test drop index index_name;

添加索引:

alter table test add index index_name(name);

对前几位字符创建索引:
语法

create index index_(列名) on (表名)(列名(8))

create index index_dept on test(dept(8));

查看数据库大小:

要想知道每个数据库的大小的话,步骤如下:

1、进入information_schema 数据库(存放了其他的数据库的信息)

use information_schema;

2、查询所有数据的大小:

select concat(round(sum(data_length/1024/1024),2),‘MB‘) as data from tables;

3、查看指定数据库的大小:

比如查看数据库home的大小

select concat(round(sum(data_length/1024/1024),2),‘MB‘) as data from tables where table_schema=‘home‘;

4、查看指定数据库的某个表的大小

比如查看数据库home中 members 表的大小

select concat(round(sum(data_length/1024/1024),2),‘MB‘) as data from tables where table_schema=‘home‘ and table_name=‘members‘;

时间: 2024-07-30 13:44:49

mysql常用操作与练习题的相关文章

MySQL常用操作总结

MySQL常用操作 前提条件:已安装MySQL. 学习目标:用一条sql语句写出A和B的剩余数量 AA表 BB表 以上为一道面试题,接下来由这道面试题来回顾一些数据库的基本操作. 登录MySQL sudo mysql -p,回车,然后输入密码即可,按ctrl+c退出登录: 显示数据库 show databases; 创建数据库 create database xxx; 选择数据库 use database xxx; 显示数据库表 show tables; 创建数据库表 create table 

ubuntu命令行操作mysql常用操作

登陆mysql [email protected]:~/ruby/mydiary$ mysql -u root -p Enter password: Welcome to the MySQL monitor. Commands end with ; or \g. 查看所有的数据库 mysql> show databases; --注意必须要用;结尾否则不会立即执行代码 +--------------------+ | Database | +--------------------+ | inf

MySql常用操作【基础且详细(●&#39;?&#39;●)】

有那么挺长段时间没有敲代码了,今敲起来竟然有些sql都想不起来了?? 把以前整理sql的内容看了下,再加了点?? 主要参考自 MySql文档:https://dev.mysql.com/doc/refman/8.0/en/tutorial.html 易百教程:https://www.yiibai.com/mysql 一,基本操作 1.连接操作 连接远程数据库: $ mysql -h host -u -user -p (host:主机 user:用户名) 连接本地数据库: $ mysql -u u

MYSQL常用操作函数的封装

1.mysql常用函数封装文件:mysql.func.php <?php /** * 连接MYSQL函数 * @param string $host * @param string $username * @param string $password * @param string $dbName * @param string $charset * @return resource */ function connect($host,$username,$password,$dbName,$

MYSQL常用操作及python操作MYSQL常用类

Mysql 常见操作 数据库操作 创建数据库 create database fuzjtest 删除数据库 drop database fuzjtest 查询数据库 show databases 切换数据库 use databas 123123 ###用户授权 创建用户 create user '用户名'@'IP地址' identified by '密码'; 删除用户 drop user '用户名'@'IP地址'; 修改用户 rename user '用户名'@'IP地址'; to '新用户名'

第二篇 Mysql常用操作记录(转载)

我们在创建网站的时候,一般需要用到数据库.考虑到安全性,建议使用非root用户.常用命令如下: 1.新建用户 //登录MYSQL@>mysql -u root -p@>密码//创建用户mysql> insert into mysql.user(Host,User,Password) values(‘localhost’,'allen’,password(‘allen’));//刷新系统权限表mysql>flush privileges;这样就创建了一个名为:allen  密码为:a

2018-3-22 13周4次课 MySQL常用操作(上)

13.1 设置更改root密码 默认MySQL密码为空 [[email protected] ~]# mysql -uroot -bash: mysql: 未找到命令 [[email protected] ~]# echo $PATH /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin [[email protected] ~]# export PATH=$PATH:/usr/local/mysql/bin/ [[email p

mysql常用操作 mysql备份与恢复

先登录mysql  ==>mysql -uroot -p 查看数据库的版本 select version(); 查看有哪些库 show datases; 查看当前处于哪个库 select database(); 查看当前登录用户 select user(); 查看某个库下面的表: use db; show tables; 查看表的字段: desc dong; 创建库 create database db1; 创建表 create  table  tb1 (`id` int(4),`name`ch

MySQL常用操作(1)设置更改root密码、连接MySQL、MySQL常用命令

设置更改root密码 设置mysql的root用户密码:(默认为空) 1.查看mysql任务是否开启:ps aux |grep mysql 若无开启则-->/etc/init.d/mysqld start 2.登录mysql : /usr/local/mysql/bin/mysql -uroot (单独在命令行运行mysqlm命令是不生效的,因为mysql命令并不是在PATH 环境变量中定义) 若想不用在命令行中敲写绝对路径: (1)临时生效(重启失效) export PATH=$PATH:/u