关于mysql的个人小笔记

登录

mysql -h 主机名 -u 用户名 -p
  • -h 为指定主机名称,本机登录可以省略
  • -u 为指定登录用户名,本机为默认为 root
  • -p 用于告诉服务器将会使用密码登录,若没密码可以省略

本机登录示例

mysql -u root -p

之后会弹出输入密码,输入完回车即可

Enter password:

常用管理指令

  • use 数据库名:

    选择要操作的 MySQL 数据库,使用该命令后所有操作都只对该数据库执行

    mysql> use ginsql;
    Database changed
    
  • show databases:

    列出 MySQL 数据库管理系统的数据库列表

    mysql> show databases;
    +--------------------+
    | Database           |
    +--------------------+
    | information_schema |
    | ginsql             |
    | cdcol              |
    | mysql              |
    | onethink           |
    | performance_schema |
    | phpmyadmin         |
    | test               |
    | wecenter           |
    | wordpress          |
    +--------------------+
    10 rows in set (0.02 sec)
    
  • show tables:

    列出指定数据库的所有表,使用之前需要使用 use 指定对应数据库

    mysql> use ginsql
    Database changed
    mysql> show tables;
    +------------------+
    | Tables_in_ginsql |
    +------------------+
    | student_tb1      |
    | student_tb2      |
    | student_tb3      |
    +------------------+
    3 rows in set (0.00 sec)
    
  • show columns from:

    显示数据表的属性,属性类型,主键信息 ,是否为 NULL,默认值等其他信息。

    mysql> show columns from student_tb1
    +-----------------+--------------+------+-----+---------+-------+
    | Field           | Type         | Null | Key | Default | Extra |
    +-----------------+--------------+------+-----+---------+-------+
    | student_id      | int(11)      | NO   | PRI | NULL    |       |
    | student_name    | varchar(255) | YES  |     | NULL    |       |
    | student_sex     | varchar(255) | YES  |     | NULL    |       |
    | submission_date | date         | YES  |     | NULL    |       |
    +-----------------+--------------+------+-----+---------+-------+
    

创建数据库

使用 create 命令创建

create database 数据库名;

删除数据库

普通用户的删除权限需要设定,一般使用 root 用户操作。

并且删除数据库需要谨慎,删除之后所有数据会消失

我们有两种删除方法

  1. drop 命令删除

    drop database 数据库名;
    

    例如

    drop database ginsql;
    
  2. 使用 mysqladmin 删除数据库

    使用 mysqladmin 命令是在终端使用管理员权限删除对应数据库

    [root@host]# mysqladmin -u root -p drop ginsql
    Enter password:
    

    执行上述操作后会弹出提示框,确认是否要删除该数据库

    Dropping the database is potentially a very bad thing to do.
    Any data stored in the database will be destroyed.
    
    Do you really want to drop the 'ginsql' database [y/N] y
    Database "ginsql" dropped
    

选择数据库

选择数据库即常用指令 use

mysql> use 数据库名;
Database changed

数据类型

MySQL 支持多种类型,大致可以分为三类:数值、日期/时间和字符串(字符)类型。

数值类型
类型大小范围(有符号)范围(无符号)用途
TINYINT1 Bytes(-128,127)(0,255)小整数值
SMALLINT2 Bytes(-32 768,32 767)(0,65 535)大整数值
MEDIUMINT3 Bytes(-8 388 608,8 388 607)(0,16 777 215)大整数值
INT或INTEGER4 Bytes(-2 147 483 648,2 147 483 647)(0,4 294 967 295)大整数值
BIGINT8 Bytes(-9,223,372,036,854,775,808,9 223 372 036 854 775 807)(0,18 446 744 073 709 551 615)极大整数值
FLOAT4 Bytes(-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)单精度 浮点数值
DOUBLE8 Bytes(-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)双精度 浮点数值
DECIMAL对DECIMAL(M,D) ,如果M>D,为M+2否则为D+2依赖于M和D的值依赖于M和D的值小数值
日期和时间类型

表示时间值的日期和时间类型为DATETIME、DATE、TIMESTAMP、TIME和YEAR。

每个时间类型有一个有效值范围和一个"零"值,当指定不合法的MySQL不能表示的值时使用"零"值。

TIMESTAMP类型有专有的自动更新特性,将在后面描述。

类型大小 ( bytes)范围格式用途
DATE31000-01-01/9999-12-31YYYY-MM-DD日期值
TIME3‘-838:59:59’/‘838:59:59’HH:MM:SS时间值或持续时间
YEAR11901/2155YYYY年份值
DATETIME81000-01-01 00:00:00/9999-12-31 23:59:59YYYY-MM-DD HH:MM:SS混合日期和时间值
TIMESTAMP41970-01-01 00:00:00/2038结束时间是第 2147483647 秒,北京时间 2038-1-19 11:14:07,格林尼治时间 2038年1月19日 凌晨 03:14:07YYYYMMDD HHMMSS混合日期和时间值,时间戳
字符串类型

字符串类型指CHAR、VARCHAR、BINARY、VARBINARY、BLOB、TEXT、ENUM和SET。该节描述了这些类型如何工作以及如何在查询中使用这些类型。

类型大小用途
CHAR0-255 bytes定长字符串
VARCHAR0-65535 bytes变长字符串
TINYBLOB0-255 bytes不超过 255 个字符的二进制字符串
TINYTEXT0-255 bytes短文本字符串
BLOB0-65 535 bytes二进制形式的长文本数据
TEXT0-65 535 bytes长文本数据
MEDIUMBLOB0-16 777 215 bytes二进制形式的中等长度文本数据
MEDIUMTEXT0-16 777 215 bytes中等长度文本数据
LONGBLOB0-4 294 967 295 bytes二进制形式的极大文本数据
LONGTEXT0-4 294 967 295 bytes极大文本数据

创建数据表

创建数据表包含三个基本信息:

  1. 表名
  2. 表字段名
  3. 定义每个表字段
create table table_name (column_name column_type);

ginsql 为例子

create table test(
	id int primary key auto_increment,
    name varchar(12) not null,
    age int default 1
);
  • 如果你不想字段为 NULL 可以设置字段的属性为 NOT NULL, 在操作数据库时如果输入该字段的数据为NULL ,就会报错。
  • AUTO_INCREMENT定义列为自增的属性,一般用于主键,数值会自动加1。
  • PRIMARY KEY关键字用于定义列为主键。 您可以使用多列来定义主键,列间以逗号分隔。

删除数据库

使用 drop table

mysql> use ginsql;
Database changed
mysql> drop table test;
Query ok, 0 rows affected (0.8 sec)

插入数据

基本语法

INSERT INTO table_name ( field1, field2,...fieldN )
                       VALUES
                       ( value1, value2,...valueN );

若要插入多条数据即将 values 后的数据值写多行

VALUES
(values1, values2, values3),
(valuesb1, valuesb2, valuesb3),
...
(valuesz1, valuesz2,valuesz3);

查询数据

使用 select 语句来执行

基础语法

select column_name,column_name from table_name
[where Clause]
[Limit N][offset m]
  • 查询语句中你可以使用一个或者多个表,表之间使用逗号(,)分割,并使用WHERE语句来设定查询条件。
  • SELECT 命令可以读取一条或者多条记录。
  • 你可以使用星号(*)来代替其他字段,SELECT语句会返回表的所有字段数据
  • 你可以使用 WHERE 语句来包含任何条件。
  • 你可以使用 LIMIT 属性来设定返回的记录数。
  • 你可以通过OFFSET指定SELECT语句开始查询的数据偏移量。默认情况下偏移量为0。

读取所有数据

select * from test

where 子句

select 查询语句中,where可以用来判断条件

SELECT field1, field2,...fieldN FROM table_name1, table_name2...
[WHERE condition1 [AND [OR]] condition2.....
  • 查询语句中你可以使用一个或者多个表,表之间使用逗号**,** 分割,并使用WHERE语句来设定查询条件。
  • 你可以在 WHERE 子句中指定任何条件。
  • 你可以使用 AND 或者 OR 指定一个或多个条件。
  • WHERE 子句也可以运用于 SQL 的 DELETE 或者 UPDATE 命令。
  • WHERE 子句类似于程序语言中的 if 条件,根据 MySQL 表中的字段值来读取指定的数据。

读取对应字段

select * from test where name = 'David';

UPDATE 更新

基本语法

update table_name set field1=new_value1, field2=new_value2
[where Clause];

示例:

更改 id 为2的字段值

update test set name = "Tom", age = "13" where id = 2;

DELETE 语句

基本语法

delete from table_name [where Clause];
  • 如果没有指定 WHERE 子句,MySQL 表中的所有记录将被删除。
  • 你可以在 WHERE 子句中指定任何条件
  • 您可以在单个表中一次性删除记录。

示例:

删除 id 为 3 的记录

delete from test where id = 3;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值