天天看点

MySQL命令行基本操作 - MySQL

一、MySQL程序操作

操作 命令
查看数据库版本

​mysql -V​

​​ 或者 登入mysql后输入​

​status​

查看连接的端口号 登入mysql后输入 ​

​show global variables like 'port';​

mysql目前状态 sudo service mysql status
关闭mysql服务 sudo service mysql stop
开启mysql服务 sudo service mysql start
卸载mysql sudo apt-get remove mysql-server
修改root账户密码(mysql8之前) set password for root@localhost = password(‘新密码’);
修改root账户密码(mysql8) ALTER USER ‘root’@‘localhost’ IDENTIFIED WITH mysql_native_password BY ‘新密码’;

win系统mysql配置

MySQL服务启动

使用管理员打开cmd

​​

​net start mysql​

​​ : 启动mysql服务

​​

​net stop mysql​

​​ : 关闭mysql服务

​​

​mysql -h 主机名 -P 端口名 -u用户名 -p密码​

​​: 登录

​​

​mysql -hip -uroot -p​

​​ : 访问远程mysql

​​

​mysql --host=ip --user=root --password=密码​

​​ : 访问远程mysql

退出 : exit 或 quit

通用语法

  1. 分号结尾
  2. SQL语句不区分大小写, 关键字建议使用大写
  3. 三种注释方式
  • 单行注释 : – 注释内容 或者 # 注释内容
  • 多行注释 : /* 注释 */

二、数据库命令行操作

操作 命令
登录数据库 mysql -u root -p
创建数据库 create database [if not exists] ​

​数据库名称​

​;
删除数据库 drop database [if exists] ​

​数据库名称​

​;
修改数据库的字符集 alter database ​

​数据库名称​

​ character set 字符集名称;(utf8)
查询数据库 show databases;
查询当前使用的数据库 select database();
选择数据库 use ​

​数据库名称​

​;
查看数据表 show tables;
创建表 CREATE TABLE 表名 (column_name column_type);
显示数据表结构 describe 表名; 或者 desc 表名;
删表 drop table if exists 表名;
查询数据库结构

​show create database stu;​

查询表结构

​show create table 表名;​

复制表的结构 CREATE TABLE 表名 LIKE 要复制的表名;
复制表的结构+数据 CREATE TABLE 表名 SELECT * FROM 要复制的表名;
只复制部分数据 CREATE TABLE 表名 SELECT 字段1, 字段2 FROM 要复制的表名 WHERE 筛选条件;
​​MySQL数据类型​​

创建表实例

MySQL命令行基本操作 - MySQL
  • 如果你不想字段为 NULL 可以设置字段的属性为 NOT NULL, 在操作数据库时如果输入该字段的数据为NULL ,就会报错。
  • AUTO_INCREMENT定义列为自增的属性,一般用于主键,数值会自动加1。
  • PRIMARY KEY关键字用于定义列为主键。 您可以使用多列来定义主键,列间以逗号分隔。
  • ENGINE 设置存储引擎,CHARSET 设置编码。
CREATE TABLE `t1` (  
  `year` year(4) DEFAULT NULL,  
  `month` int(2) unsigned zerofill DEFAULT NULL,  
  `day` int(2) unsigned zerofill DEFAULT NULL  
) ENGINE=InnoDB DEFAULT CHARSET=utf8;      
  • 复制完整表结构

    ​create table 表名 like 被复制的表名​

  • 复制表的结构+数据

    ​create table 表名 select 查询列表 from 旧表 [where 筛选条件];​

修改表实例

  1. 修改表名 ​

    ​alter table 表名 rename to 新表名;​

  2. 修改表的字符集 ​

    ​alter table 表名 character set 字符集名称;​

  3. 添加一列 ​

    ​alter table 表名 add 列名 数据类型 [first/after 字段名];​

  4. 修改列名称 ​

    ​alter table 表名 change 列名 新列名 新数据类型;​

  5. 修改列类型 ​

    ​alter table 表名 modify 列名 新数据类型;​

  6. 删除列 ​

    ​alter table 表名 drop 列名;​

    ​​

字段数据类型

数值型

  1. 整形

    tinyint 1字节、smallint 2、mediumint 3、int/integer 4、bigint 8

    特点:

    1. 都可以设置无符号和有符号, 默认有符号, 通过unsigned设置无符号

    2. 如果超出了范围, 会报out of range异常, 插入临界值

    3. 长度可以不指定, 默认会有一个长度

    长度代表显示的最大宽度, 如果不够则左边用0填充, 但需要搭配zerofill, 并且默认变为无符号整形

  2. 浮点数

    定点数: decimal(M,D)

    浮点数:

    float(M,D) 4

    double(M, D) 8

    特点:

    1. M代表整数部位+小数部位的个数, D代表小数部位

    2. 如果超出范围, 则报 out of range异常, 并且插入临界值

    3. M和D都可以省略, 但对于定点数, M默认为10, D默认为0

    4. 如果精度要求较高, 则优先考虑使用定点数

字符型

char varchar binary varbinary enum set text blob

char: 固定长度的字符, 写法为char(M), 最大长度不能超过M, 其中M可以省略, 默认为1

varchar: 可变长度的字符, 写法为varchar(M), 最大长度不能超过M, 其中不可以省略

日期型

year 年

date 日期

time 时间

datetime 日期+时间

timestamp 日期+时间 会受时区,语法模式,版本的影响, 更能反映当前时区的真实时间

三、CRUD命令行操作

crud是指在做计算处理时的增加(Create)、读取(Read)、更新(Update)和删除(Delete)几个单词的首字母简写.

详细的MySQL查询语句以及语法总结请看 : ​​MySQL 查询语句​​

2.1 增加(Create)操作

insert into ​

​表名​

​ (字段1, 字段2, 字段3 …) values (值1, 值2, 值3, …);

其中表名后面如果不写, 则默认为所有表名

  1. 可以添加多条数据

    insert into ​​

    ​表名​

    ​ value (值1, 值2, …), (值1, 值2), …
insert into ​

​表名​

​ set 列名=值, 列名=值, …;

向stu表中添加两条数据

MySQL命令行基本操作 - MySQL

2.2 读取(READ)操作

select 字段1, 字段2 from 表名 where 限定条件;

查询stu表中所有数据

MySQL命令行基本操作 - MySQL

给定条件查询

MySQL命令行基本操作 - MySQL

测试BINARY关键字(查询条件区分大小写)

MySQL命令行基本操作 - MySQL

2.3 更新(Update)操作

update ​

​表名​

​ set 字段1=值, 字段2=值, … where 限定条件;

如果不加任何条件, 则会将表中所有记录全部修改.

MySQL命令行基本操作 - MySQL

限定条件下批量修改(REPLACE)

MySQL命令行基本操作 - MySQL

mysql表中有一些字段是显示日期的。因为各种需要,需要将它时间往后调整1年。

mysql 日期增加一年的更新语句更新的语句如下:

UPDATE 表名 SET 字段名 = DATE_ADD(字段名, INTERVAL 1 YEAR)      

如果要增加1天,则后面的 1 YEAR 变成 1 DAY,1月则是 1 MONTH

注意如果是多年或者多月或者多天,如3年

后面是写 3 YEAR ,并不需要复数。所以不要写成 3 YEARS

————————————————

2.4 删除(Delete)操作

delete from ​

​表名​

​ where ​

​限定条件​

​;

TRUNCATE TABLE 表名; – 先删除表, 然后在创建一张一样的表(推荐)

两者的区别:

  1. delete 可以加where条件, truncate 不能加.
  2. truncate 删除, 效率高一点.
  3. 如果要删除的表中有自增长列,

    如果delete删除后, 在插入数据, 自增长列的值从断点开始,

    而truncate删除后, 在插入数据, 自增长列的值从1开始.

  4. truncate 删除没有返回值, delete 删除有返回值.
  5. truncate 删除不能回滚, delete 删除可以回滚.

sql92语法:

delete 表1的别名, 表2的别名

from 表1 别名, 表2, 别名

where 连接条件

and 筛选条件;

  1. ​​菜鸟 MySQL教程​​
  2. ​​ubuntu安装Mysql​​
  3. ​​linux mysql 查看默认端口号和修改端口号​​
  4. ​​如何查看MySQL的版本?​​

继续阅读