MySql笔记-1

Dos登录

mysql -h服务器地址 -u用户名 -p密码
mysql -hlocalhost -uroot -proot

数据库

1、查询所有的数据库

show databases


mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| sys                |
+--------------------+
4 rows in set (0.00 sec)

2、创建数据库("[]"代表可有可无)

create database <数据库名称> [character set 编码集]


mysql> create database personal_inf;
Query OK, 1 row affected (0.00 sec)

3、删除数据库

drop database [if exists] <数据库名>
if exists:用于防止当前数据库不存在时发生错误

4、查看当前数据库的编码

show create database <数据库名称>

mysql> show create database personal_info;
+---------------+--------------------------------------------------------------------------+
| Database      | Create Database                                                          |
+---------------+--------------------------------------------------------------------------+
| personal_info | CREATE DATABASE `personal_info` /*!40100 DEFAULT CHARACTER SET latin1 */ |
+---------------+--------------------------------------------------------------------------+
1 row in set (0.00 sec)

5、修改单个数据库的编码格式

alter database 数据库名称 character set utf8

6、修改数据名称

方法1:****,数据迁移
方法2:推出mysql,然后,到这个数据存储的位置,找到文件名并修改
方法3:rename database 旧的名称 to 新的名称
(高版本及以上用不了,有丢失数据的风险,不安全)

7、使用数据库

use <数据库名称>


mysql> use personal_info
Database changed

8、查看当前使用的数据库

select database();


mysql> select database ();
+---------------+
| database ()   |
+---------------+
| personal_info |
+---------------+
1 row in set (0.00 sec)

数据表

字段数据类型(3类:数值、日期/时间和字符串):

1、数值类型

MySql支持所有标准的SQ数值数据类型。

关键字int是integer的同义词,关键字dec是decimal的同义词

bit数据类型保存字段值,并且支持MyISAM、MEMORY、InnoDB和BDB表

类型

大小(字节)

范围(有符号)

范围(无符号)

用途

tinyint

1

(-128, 127)

(0, 255)

小整数值

smallint

2

(-32768,32767)

(0, 65535)

大整数值

mediumint

3

(-8388608, 8388607)

(0, 16777215)

大整数值

int或integer

4

(-2147483648, 2147483647)

(0, 4294967295)

大整数值

bigint

8

(-9223372036854775808, 9223372036854775807)

(0,18 446 744 073 709 551 615)

极大整数值

float

4字节

……

……

单精度浮点数值

double

8字节

……

……

双精度浮点数值

decimal

对decimal(M,D)如果M>D,为M+2否则为D+2

依赖于M和D的值

依赖于M和D的值

小数值

2、日期和时间类型

表示时间值的日期和事件类型为datatime、date、timestamp、time和year

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

timestamp类型有专有的自动更新的特性

类型

大小(字节)

范围

格式

用途

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

结束时间是第2147483647秒,北京时间2038-1-19 11:14:07,格林威治时间2039年1月19日凌晨03:14:07

YYYYMMDD HHMMSS

混合时间和时间值,时间戳

3、字符串类型

char和varchar类型类似,但它们保存和检索的方式不同。它们的最大长度和是否尾部空格被保留等方面也不同。在存储或检索过程中不进行大小写转换。

binary和varbinary类似于char和varchar,不同的是它们包含二进制字符串而不要非二进制字符串。也就是说,它们包含字节字符串而不是字节字符串。这说明它们没有字符集,并且排序和比较基于列值字节的数值

blob是一个二进制大对象,可以容纳可变数量的数据。有4种bolb类型:tinyblob、blob、medumblob和longbolb。它们区别在于可容纳存储范围不同。

有4中text类型:tinytext、text、mediumtext和longtext。对应着4中blob类型,可存储的最大长度不同,可根据实际情况选择

类型

大小(字节)

用途

char

0~255

定长字符串

varchar

0~65535

定长字符串

tinyblob

0~255

不超过200个字节的二进制字符串

tinytext

0~255

短文本字符串

blob

0~65535

二进制形式的文本字符数据

text

0~65535

长文本数据

mediumblob

0~16777215

二进制形式的中等长度文本数据

mediumtext

0~16777215

中等长度文本数据

longblob

0~4294967295

二进制形式的极大文本数据

longtext

0~4294967295

极大文本数据

1、创建数据表

create table <数据表的名称> ([表定义选项]……)[表选项][分区选项]
其中[表定义选项]的格式为:
<列名1> <数据类型1> ....
mysql> create table employee(
    -> _id int,
    -> name varchar(20),
    -> age int,
    -> salary double,
    -> sex varchar(5),
    -> department varchar(25)
    -> );
Query OK, 0 rows affected (0.04 sec)

2、查看所有数据表

show tables;


mysql> show tables;
+-------------------------+
| Tables_in_personal_info |
+-------------------------+
| employee                |
+-------------------------+
1 row in set (0.00 sec)

3、查看数据表的编码(charset:字符集/编码集)

show create table <数据表名>


mysql> show create table employee;
+----------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| Table    | Create Table                                                                                                                                                                                                                                                           |
+----------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| employee | CREATE TABLE `employee` (
  `_id` int(11) DEFAULT NULL,
  `name` varchar(20) DEFAULT NULL,
  `age` int(11) DEFAULT NULL,
  `salary` double DEFAULT NULL,
  `sex` varchar(5) DEFAULT NULL,
  `department` varchar(25) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8 |
+----------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
1 row in set (0.00 sec)

4、修改数据表的编码

alter table <数据表名> character set 编码格式


mysql> alter table employee character set gbk;
Query OK, 0 rows affected (0.01 sec)
Records: 0  Duplicates: 0  Warnings: 0

5、查看数据表的结构【desc(description:描述,形容;类型)】

Field:字段 Null:是否可以为空 Key:约束 Defaul:默认值 Extra:扩展,备注的意思

desc <数据表的名称>


mysql> desc employee;
+------------+-------------+------+-----+---------+-------+
| Field      | Type        | Null | Key | Default | Extra |
+------------+-------------+------+-----+---------+-------+
| _id        | int(11)     | YES  |     | NULL    |       |
| name       | varchar(20) | YES  |     | NULL    |       |
| age        | int(11)     | YES  |     | NULL    |       |
| salary     | double      | YES  |     | NULL    |       |
| sex        | varchar(5)  | YES  |     | NULL    |       |
| department | varchar(25) | YES  |     | NULL    |       |
+------------+-------------+------+-----+---------+-------+
6 rows in set (0.00 sec)

6、修改表的结构

  1. 增加列,添加一个字段
alter table <数据表名> add <字段名> <字段类型>


mysql> alter table employee add address varchar(300);
Query OK, 0 rows affected (0.05 sec)
Records: 0  Duplicates: 0  Warnings: 0
  1. 修改长度/类型/约束
alter table <数据表的名称> modify <字段名称> <新的类型>(新的长度)


mysql> alter table employee modify department varchar(200);
Query OK, 0 rows affected (0.06 sec)
Records: 0  Duplicates: 0  Warnings: 0
----------------------------分割线----------------------------------
未完待续~~~~~

3、修改列名(修改字段的名字)

alter table <数据表名称> change <旧字段名> <新字段名> <类型>(长度);
 
mysql> alter table employee change name username varchar(40);
Query OK, 0 rows affected (0.01 sec)
Records: 0  Duplicates: 0  Warnings: 0

4、删除列(字段)

alter table <数据表名称> drop <字段名称>


mysql> alter table employee drop address;
Query OK, 0 rows affected (0.05 sec)
Records: 0  Duplicates: 0  Warnings: 0

上一篇:KafKa-eagle的接入-mysql文件


下一篇:MySQL-创建表