当前位置: 移动技术网 > IT编程>数据库>Mysql > MySQL的命令

MySQL的命令

2019年09月11日  | 移动技术网IT编程  | 我要评论
1、mysql创建数据库:
语法:create database 数据库名;
例1,创建一个名为admin的数据库
mariadb [mysql]> create database admin;
query ok, 1 row affected (0.00 sec)

在linux界面下可以使用mysqladmin命令创建数据库。
语法:mysqladmin -u root -p create 数据库名。
[root@localhost ~]# mysqladmin -u root -p create admin
enter password: 输入你的密码
mariadb [(none)]> show databases;
+--------------------+
| database           |
+--------------------+
| information_schema |
| admin              |
| mysql              |
| performance_schema |
| test               |
+--------------------+
5 rows in set (0.00 sec)

2、删除数据库:
语法:drop database 数据库名;
linux界面下使用mysqladmin -u root -p drop 数据库名。
例2,删除admin这个数据库
mariadb [(none)]> drop database admin;
query ok, 0 rows affected (0.00 sec)

mariadb [(none)]> show databases;
+--------------------+
| database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| test               |
+--------------------+
4 rows in set (0.00 sec)

3、mysql的数据类型
(1)整数的数据类型:
类型 大小 范围(有符号) 范围(无符号) 用途
tinyint 1字节 (-128,127) (0,255) 小数值
smallint 2字节 (-32768,32767) (0,65535) 大数值
mediumint 3字节 (-8388608,8388607) (0,16777215) 大数值
int或integer 4字节 (-2 147 483 648,2 147 483 647) (0,4 294 967 295) 大数值
bigint 8字节 (-9,223,372,036,854,775,808,9 223 372 036 854 775 807) (0,18 446 744 073 709 551 615) 极大整数值
float 4字节 (-3.402 823 466 e+38,-1.175 494 351 e-38),0,(1.175 494 351 e-38,3.402 823 466 351 e+38) 0,(1.175 494 351 e-38,3.402 823 466 e+38) 单精度浮点型
double 8字节 (-1.797 693 134 862 315 7 e+308,-2.225 073 858 507 201 4 e-308),0,(2.225 073 858 507 201 4 e-308,1.797 693 134 862 315 7 e+308) 0,(2.225 073 858 507 201 4 e-308,1.797 693 134 862 315 7 e+308) 双精度浮点型
(2)日期和时间的类型
date 3字节 1000-01-01,9999-12-31 yyyy-mm-dd 日期
time 3字节 '-838:59:59'/'838:59:59' hh:mm:ss 时间
year 1字节 1901-2155 yyyy 年份
datetime 8字节 1000-01-01 00:00:00/9999-12-31 23:59:59 yyyy-mm-dd hh:mm:ss 混合日期加时间
timestamp 4字节 1970-01-01 00:00:00/2038 yyyymmddhhmmss 混合时间,时间戳
(3)字符串类型
char 0-255字节 定常字符串
varchar 0-65535字节 变长字符串
tintblob 0-255字节 二进制字符串
tinytext 0-255字节 短文本字符串
blob 0-65535 二进制长文本
text 0-65535 长文本
mediumblob 0-16777215字节 二进制中等长度文本
mediumtext 0-16777215字节 中等长度文本
longblob 0-4 294 967 295字节 二进制形式的极大文本数据
longtext 0-4 294 967 295字节 极大文本
4、创建数据表
语法:create table 表名 (列名 列类型);
例3,创建student表
mariadb [admin]> create table student (
                    id int not null, 
                    name varchar(20) not null, 
                    sex char(5) not null, 
                    phone varchar(20) not null, 
                    primary key (id))
                    engine=innodb default charset=utf8;
query ok, 0 rows affected (0.01 sec)
mariadb [admin]> show columns from student;
+-------+-------------+------+-----+---------+-------+
| field | type        | null | key | default | extra |
+-------+-------------+------+-----+---------+-------+
| id    | int(11)     | no   | pri | null    |       |
| name  | varchar(20) | no   |     | null    |       |
| sex   | char(5)     | no   |     | null    |       |
| phone | varchar(20) | no   |     | null    |       |
+-------+-------------+------+-----+---------+-------+
4 rows in set (0.00 sec)

5、删除表
语法:drop table 表名。
例4:删除student表
mariadb [admin]> drop table student;
query ok, 0 rows affected (0.00 sec)
mariadb [admin]> show tables ;
empty set (0.00 sec)

6、修改表
语法:alert table 表名 修改选项;
修改选项:
add column 列名 类型;(插入列)
change column 旧列名 新列名 新列类型;(更改原有列)
alter column 列名{set default 默认值|drop default}修改默认值|删除默认值
modify column 列名 类型 (修改列的类型)
drop column 列名 (删除列)
rename to 新表名(重命名此表)
例5:给student表添加email字段,类型为varchar
mariadb [admin]> alter table student add column email varchar(30);
query ok, 0 rows affected (0.00 sec)               
records: 0  duplicates: 0  warnings: 0

mariadb [admin]> show columns from student;
+-------+-------------+------+-----+---------+-------+
| field | type        | null | key | default | extra |
+-------+-------------+------+-----+---------+-------+
| id    | int(11)     | no   | pri | null    |       |
| name  | char(30)    | yes  |     | null    |       |
| sex   | char(5)     | no   |     | null    |       |
| phone | varchar(20) | no   |     | null    |       |
| email | varchar(30) | yes  |     | null    |       |
+-------+-------------+------+-----+---------+-------+
5 rows in set (0.00 sec)

例6:更改student表的name列为st_name;
mariadb [admin]> alter table student change column name st_name char(10);
query ok, 0 rows affected (0.00 sec)               
records: 0  duplicates: 0  warnings: 0

mariadb [admin]> show columns from student;
+---------+-------------+------+-----+---------+-------+
| field   | type        | null | key | default | extra |
+---------+-------------+------+-----+---------+-------+
| id      | int(11)     | no   | pri | null    |       |
| st_name | char(10)    | yes  |     | null    |       |
| sex     | char(5)     | no   |     | null    |       |
| phone   | varchar(20) | no   |     | null    |       |
| email   | varchar(30) | yes  |     | null    |       |
+---------+-------------+------+-----+---------+-------+


7、查询数据
语法:select 列名 from 表名 where 查询条件 limit n 
limit 设定返回的记录数。
例7:查询mysql数据库里user表的user和password列,只显示root用户。
mariadb [mysql]> select user,password from user where user = 'root' ;
+------+----------+
| user | password |
+------+----------+
| root |          |
| root |          |
| root |          |
| root |          |
+------+----------+
4 rows in set (0.00 sec)

8、插入数据
语法:insert into 表名 (列1,列2,···,列3)values (值1,值2,···,值3);
添加的值如果是字符型必须用单引号或双引号引起来。
例8:添加数据到表student;
mariadb [admin]> insert into student (id,st_name,sex,phone,email) values (1,'whr','man',1766262166,'admin@163.com');
query ok, 1 row affected (0.00 sec)

mariadb [admin]> select * from student;
+----+---------+-----+------------+---------------+
| id | st_name | sex | phone      | email         |
+----+---------+-----+------------+---------------+
|  1 | whr     | man | 1766262166 | admin@163.com |
+----+---------+-----+------------+---------------+
1 row in set (0.01 sec)

9、更新数据
语法:update 表名 set 列1=新值1,列2=新值2 where 条件;
例9:修改id 1的名字为admin
mariadb [admin]> update student set st_name = 'admin' where id =1;
query ok, 1 row affected (0.00 sec)
rows matched: 1  changed: 1  warnings: 0

mariadb [admin]> select * from student;
+----+---------+-----+------------+---------------+
| id | st_name | sex | phone      | email         |
+----+---------+-----+------------+---------------+
|  1 | admin   | man | 1766262166 | admin@163.com |
+----+---------+-----+------------+---------------+
1 row in set (0.00 sec)

10、删除数据
语法:delete from 表名 where 条件;
例10:删除id为1的所有数据。
mariadb [admin]> delete from student where id = 1;
query ok, 1 row affected (0.00 sec)

mariadb [admin]> select * from student;
empty set (0.00 sec)

11、where子句的运用
where子句是用来筛选数据。
语法:以select为例,select 列1,列2,···,列n from 表1,表2,···,表n where 条件1 and|or 条件2;
where子句的操作符有以下几种:
=	是否相等
<>,!=	不等于
>	大于
<	小于
>=	大于等于
<=	小于等于
例11:查询mysql库user表中的host=localhost的所有数据。
mariadb [mysql]> select host,user from user where host = 'localhost';
+-----------+------+
| host      | user |
+-----------+------+
| localhost |      |
| localhost | root |
| localhost | whr  |
+-----------+------+
3 rows in set (0.01 sec)

12、like语句
语法:select * form 表名 where 列名1 like 所要筛选的字符;
例12:查询mysql库user表中的host 包含main的数据。
mariadb [mysql]> select host,user from user where host like '%main';
+-----------------------+------+
| host                  | user |
+-----------------------+------+
| localhost.localdomain |      |
| localhost.localdomain | root |
+-----------------------+------+
2 rows in set (0.00 sec)

%为通配符,匹配任意长度的任意字符。
13、orderby语句
语法:select 列名1 ··· from 表1··· order by 列名1 asc|desc;
asc为顺序,desc为逆序
例13:查询student表中的数据安st_name进行顺序排序。
mariadb [admin]> select * from student order by st_name asc;
+----+---------+-----+------------+---------------+
| id | st_name | sex | phone      | email         |
+----+---------+-----+------------+---------------+
|  2 | admin   | man | 1766262166 | admin@163.com |
|  3 | main    | man | 1766262166 | admin@163.com |
|  5 | main1   | man | 1766262166 | admin@163.com |
|  4 | main3   | man | 1766262166 | admin@163.com |
|  1 | whr     | man | 1766262166 | admin@163.com |
+----+---------+-----+------------+---------------+
5 rows in set (0.01 sec)

14、union操作符
用于把两个或两个以上的select语句连接起来。
语法:select 语句1 union select 语句2 where 条件语句。
15、mysql的正则表达式
模式 描述
^ 匹配输入字符串的开始位置
$ 匹配字符串结束的位置
. 匹配除‘\n’以外的任意单个字符
[...] 字符集合,匹配包含任意一个的字符
[^...] 负值字符集合,匹配未包含的任意字符
p1|p2|p3 匹配p1或p2或p3
* 匹配前面的子表达式零次或多次
+ 匹配前面的子表达式一次或多次
{n} n是一个非负整数,匹配确定的n次
{n,m} m和n均为负整数,最少匹配n次,最多匹配m次
例14:查询student中st_name以m开头的数据:
mariadb [admin]> select * from student where st_name regexp '^m';
+----+---------+-----+------------+---------------+
| id | st_name | sex | phone      | email         |
+----+---------+-----+------------+---------------+
|  3 | main    | man | 1766262166 | admin@163.com |
|  4 | main3   | man | 1766262166 | admin@163.com |
|  5 | main1   | man | 1766262166 | admin@163.com |
+----+---------+-----+------------+---------------+
3 rows in set (0.00 sec)

  

如对本文有疑问, 点击进行留言回复!!

相关文章:

  • MySQL InnoDB表空间加密示例详解

    前言从 mysql5.7.11开始,mysql对innodb支持存储在单独表空间中的表的数据加密 。此功能为物理表空间数据文件提供静态加密。该加密是在引擎内部数... [阅读全文]
  • 如何解决mysql无法关闭的问题

    如何解决mysql无法关闭的问题

    mysql关闭不了的解决办法:右键点击电脑的任务栏,打开任务管理器点击服务,找到mysql服务右键点击该服务,选择停止就可以了内容扩展:mac系统mysqld进... [阅读全文]
  • mysql不是内部命令的错误解决方案

    mysql不是内部命令的错误解决方案

    出现mysql不是内部命令的错误是因为没有把mysql的bin目录路径添加到环境变量中解决方法:打开电脑的环境变量,选择系统变量,打开path,将mysql的b... [阅读全文]
  • 关于MySQL主从复制的几种复制方式总结

    关于MySQL主从复制的几种复制方式总结

    异步复制mysql的复制默认是异步的,主从复制至少需要两个mysql服务,这些mysql服务可以分布在不同的服务器上,也可以在同一台服务器上。mysql主从异步... [阅读全文]
  • 详细分析MySQL主从复制

    详细分析MySQL主从复制

    前言:在mysql中,主从架构应该是最基础、最常用的一种架构了。后续的读写分离、多活高可用架构等大多都依赖于主从复制。主从复制也是我们学习mysql过程中必不可... [阅读全文]
  • MySQL单表恢复的步骤

    正休息的时候一个电话将我的睡意完全打散,“开发童鞋写update sql的时候忘了加where条件了”,相信每一个dba同学听到这个消息的时候都有骂街的冲动吧。... [阅读全文]
  • MySQL性能优化之如何高效正确的使用索引

    实践是检验真理的唯一途径,本篇只是站在索引使用的全局来定位的,你只需要通读全篇并结合具体的例子,或回忆以往使用过的地方,对整体有个全面认识,并理解索引是如何工作... [阅读全文]
  • MySQL如何优化查询速度

    前面章节我们介绍了如何选择优化的数据类型、如何高效的使用索引,这些对于高性能的mysql来说是必不可少的。 但这些还完全不够,还需要合理的设计查询。 如果查询写... [阅读全文]
  • MySQL优化SQL语句的技巧

    在面对不够优化、或者性能极差的sql语句时,我们通常的想法是将重构这个sql语句,让其查询的结果集和原来保持一样,并且希望sql性能得以提升。而在重构sql时,... [阅读全文]
  • 简述MySql四种事务隔离级别

    隔离级别:隔离性其实比想象的要复杂。 在sql标准中定义了四种隔离级别, 每一个事务中所做的修改,哪些在事务内和事务间是可见的,哪些是不可见的。较低级别的隔离通... [阅读全文]
验证码:
移动技术网