博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
MySQL 基础命令
阅读量:4918 次
发布时间:2019-06-11

本文共 6317 字,大约阅读时间需要 21 分钟。

 

SQL语句

mysql版本:针对mysql-5.6.36 版本 

目录1.1 常用命令-查看    21.2 登录mysql    21.2.1 修改密码    21.2.2 忘记密码-怎么办    31.3 授权grant    31.3.1 grant    31.4 好用功能、快捷键    41.4.1 mysql客户端接口自带功能    41.5 增删改查-数据库SQL命令详解    51.5.1 数据库    51.5.2 表-table    51.5.3 插入、更新数据    71.5.4 查看数据-select    81.6 复杂查询    81.6.1 ORDER BY子句    81.6.2 LIMIT子句    81.6.3 子查询    91.6.4 连接查询    9

 

1.1 常用命令

# 查看数据库mysql> show databases;show databases like '%pres%';      #模糊查询# 查看表mysql> use xzymysql> show tables;#查看权限show grants for oldboy@'10.0.0.%';# 查看列mysql> use xzymysql> desc test;

 

1.2 登录mysql

常见的特定于客户机的连接选项-u 
或--host=
-p
-h
或--host=
--protocol=
-P
或--port=
-S
或--socket=

 

1.2.1 修改密码

 
[root@db02 ~]# mysqladmin -uroot -p123 password 123456[root@db02 ~]# mysql -uroot -p123456mysql>

 

1.2.2 忘记密码-怎么办

#开启mysql  (跳过授权表)#--skip-grant-tables 跳过授权表  --skip-networking禁止网络登录-即本地登录/application/mysql/bin/mysqld_safe --skip-grant-tables  --skip-networking  &#进入MySQL修改mysql.user表的内容mysql        #直接登录(无需密码)#修改mysql.user表内容mysql> update mysql.user set password=PASSWORD('666666')  where user='root' and host='localhost';mysql> flush privileges;#quit  退出即可用新密码666666登录注意:5.7版本的不同update mysql.user set authentication_string=PASSWORD('123456')  where user='sys' and host='localhost'flush privileges;

 

1.3 授权grant

1.3.1 grant

格式grant  权限   on  权限范围(对象)  to  用户  identified by  '';权限(角色):select、update、delete、insert、drop、createALL 权限范围:*.*  所有数据库对象oldboy.*   oldboy单库下所有对象oldboy.test  单表级别用户:repl@localhostrepl@'10.0.0.53'repl@'10.0.0.%'repl@'10.0.0.5%'-----要求:1、用户只能通过10网段访问,用户名为oldboy,密码为1232、只能对oldboy数据库下的对象进行增insert create、改update、查select#创建 grant select,insert,update,create on oldboy.* to oldboy@'10.0.0.%' identified by '123';#查看权限show grants for oldboy@'10.0.0.%';#收回权限revoke drop on oldboy.* from 'oldboy'@'10.0.0.%';#删除用户drop user oldboy@'10.0.0.%'注意:创建的权限信息,不在/data/下的数据库名目录下

 

1.4 好用功能、快捷键

1.4.1 mysql客户端接口自带功能

1、\h 或 help 或 ?                 获取帮助2、\G                           格式化输出(行转列)3、\T 或 tee                    记录操作日志  tee /tmp/mysql.log4、\c 或 CTRL+c                    退出mysql5、\s 或 status                    查看数据库状态信息6、\. 或 source                    mysql> source /tmp/world.sql7、\u 或use                        use  world                             show databases  看当前所有数据库的名字                            show tables   查看当前use到的数据库所有的表                            show  tables from world   查看目标数据库下的表8、    ctrl +L   清屏

 

1.5 增删改查-数据库SQL命令详解

1.5.1 数据库

#创建库mysql> create database xzy character set utf8;   #或缩写 charset utf8 (推荐)mysql> show create  database xzy;+----------+--------------------------------------------------------------+| Database | Create Database                                              |+----------+--------------------------------------------------------------+| xzy     | CREATE DATABASE `xzy` /*!40100 DEFAULT CHARACTER SET utf8 */ |+----------+--------------------------------------------------------------+#修改库mysql> alter database xzy charset gbk;#删除库mysql> drop database xzy;

 

1.5.2 表-table

1.5.2.1 查看表

# 帮助:mysql> help create table;# 查看列mysql> use xzymysql> desc test;+-------+----------+------+-----+---------+-------+| Field | Type     | Null | Key | Default | Extra |+-------+----------+------+-----+---------+-------+| id    | int(11)  | YES  |     | NULL    |       || name  | char(30) | YES  |     | NULL    |       |+-------+----------+------+-----+---------+-------+

1.5.2.2 操作表

# 创建表mysql> use xzymysql> create table test(id int,name char(30));# 完整:CREATE TABLE `test` (  `id` int(4) NOT NULL AUTO_INCREMENT,  `name` char(20) NOT NULL,  PRIMARY KEY (`id`)) ENGINE=InnoDB DEFAULT CHARSET=UTF8;# 修改表名(两种方法)mysql> rename table test to test1;   或 mysql> alter table test1 rename to test;# 添加列结构 mysql> alter table people add addr char(40) NOT NULL;  #默认添加到最后# 指定添加年龄列到name列后面的位置,示例如下:alter table people add age int(4) after name;# 通过下面的命令在第一列添加qq字段。alter table test add telnum int first;# 同时添加多个列定义:alter table people add id int first ,add sex char(4) after name ;# 删除表结构:alter table people drop sex;# 修改表定义alter table people modify name char(20);# 修改列名:alter table people change name people_name char(30) ;

 

 

1.5.3 插入、更新数据

 

#  insert语句:create table test (id int,name varchar(20));     #创建表 testinsert into test values(1,'test');            #插入单个insert into test values(2,'yougboy'),(3,'youggilr'); #插入多个insert into test(name) values('xiaoming');      #插入指定列select * from test;       #查看# 创建一模一样的表------------------------------------create table test like oldboy;insert into oldboy select * from oldboy;------------------------------------ # 修改(更新)数据 updateupdate(一定要有where条件)update test set name='oldboy1' WHERE  id = 1;# 删除数据 deletedelete(一定要有where条件)delete from oldboy where id=1;

 

1.5.4 查看数据-select

select user,password ,host from mysql.user where user='sys';select user,password ,host from mysql.user where user like 'sy%';select * from oldboy.test;select id,name from test where id=2;select id,name from test where id>2 and id<4;

 

 

1.6 复杂查询

1.6.1 ORDER BY子句

ORDER BY子句用来排序行语法:SELECT expr FROM table[WHERE condition(s)][ORDER BY {column, expr, numeric_position} [Asc|DEsc]];其中:Asc:执行升序排序。默认值DEsc:执行降序排序ORDER BY子句一般在SELECT语句的最后面#两个排序条件SELECT * FROM city ORDER BY population,countrycode;

 

1.6.2 LIMIT子句

LIMIT子句是SELECT语句中的最后一个子句(在order by后面)。它用来表示从结果集中选取最前面或最后面的几行。语法:limit 
<获取的行数>
[OFFSET
<跳过的行数>
]或者limit [
<跳过的行数>
,]
<获取的行数>
SELECT * FROM city ORDER BY 5 DEsc LIMIT 4;

1.6.3 子查询

获取和100号球员性别相同并且居住在同一城市的球员号码。select playerno   from players   where (sex, town) = (      select sex, town       from players       where playerno = 100);

 

1.6.4 连接查询

#基础用法SELECT * FROM Student,Grade WHERE Student.sID = Grade.gID;#AS 别名SELECT ci.name AS city_name ,co.name AS country_name,co.`SurfaceArea` AS mianji FROM city AS ci ,country AS co WHERE ci.name='qingdao' AND  ci.`CountryCode`= co.`CountryCode`;# NATURAL JOIN子句自动到两张表中查找所有同名同类型的列拿来做连接列,进行相等连接SELECT NAME,countrycode,LANGUAGE ,populationFROM city NATURAL JOIN countrylanguageWHERE population > 1000000ORDER BY population;# 使用using子句 (指定列连接)SELECT NAME,countrycode,LANGUAGE ,populationFROM city JOIN countrylanguageUSING(countrycode);

 

 

转载于:https://www.cnblogs.com/xzy-blog/p/8268850.html

你可能感兴趣的文章
Python 三级菜单
查看>>
《城盐州》:诗与史
查看>>
sharepoint 2010 培训公司课程内容
查看>>
GUN.TROVE 集合框架
查看>>
python 中的input()和raw_input()功能与使用区别
查看>>
如何正确配置客户端tnsname.ora文件
查看>>
当用户输入网址到页面展现,发生了什么?
查看>>
Linux运维:安装CentOS7图解
查看>>
CSS隐藏页面元素的方法
查看>>
B. Mike and Feet Codeforces Round #305 (Div. 1) (并查集)
查看>>
学习Python遇到的那些坑
查看>>
目录大纲
查看>>
PAT 甲级 1104 sum of Number Segments
查看>>
【BZOJ4827】【HNOI2017】礼物
查看>>
awk运用
查看>>
python socket 编程之三:长连接、短连接以及心跳
查看>>
BootStrap的入门和响应式的使用
查看>>
Spring boot Mybatis
查看>>
【zookeeper】ACL super 超级管理员
查看>>
On Pi
查看>>