查看或显示数据库
在MySQL中,可以使用 SHOW DATABASES 来查看数据库,具体的格式为:
SHOW DATABASES [ LIKE ‘XX’(数据库名) ] ;
注意:
LIKE从句事可选项,有匹配作用,可以部分匹配也可以完全匹配。
实例:
先创建一个名称为test_db的数据库
mysql> CREATE DATABASE test_db;
Query OK, 1 row affected (0.00 sec)
再使用SHOW DATABASES显示所有权限范围内可查看的数据库
mysql> SHOW DATABASES;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| sakila |
| sys |
| test_db |
| world |
+--------------------+
7 rows in set (0.00 sec)
那么刚刚创建的数据库就显示出来了。
另外,用%来起到部分匹配的作用,%在词汇前,则查找以该词汇为结尾的数据库名。以此类推不再多言。
MySQL创建数据库
1.最基础的创建语句:CREATE DATABASES;
在基础之上,如若创建了两个名称相同的数据库,就会报错。解决方法是
CREATE DATABASE IF NOT EXISTS <字符集名>;
2.DEFAULT CHARACTER SET <字符集名称>;指定字符集。
3.DEFAULT COLLATE<校对规则名>;
实例:
mysql> CREATE DATABASE IF NOT EXISTS test_db;
Query OK, 1 row affected, 1 warning (0.00 sec)
mysql> CREATE DATABASE IF NOT EXISTS test_db_char
-> DEFAULT CHARACTER SET utf8
-> DEFAULT COLLATE utf8_chinese_ci;
Query OK, 1 row affected (0.03 sec)
结果如下:
mysql> SHOW CREATE DATABASE test_db_char;
+--------------+-----------------------------------------------------+
| Database | Create Database |
+--------------+-----------------------------------------------------+
| test_db_char | CREATE DATABASE `test_db_char` /*!40100 DEFAULT CHARACTER SET utf8 */ |
+--------------+-----------------------------------------------------+
1 row in set (0.00 sec)
MySQL修改数据库
mysql> ALTER DATABASE test_db
-> DEFAULT CHARACTER SET gb2312
-> DEFAULT COLLATE gb2312_chinese_ci;
ALTER DATABASE用来改变数据库的全局特性。
数据库名称可以省略,此时修改的是默认数据库。
MySQL删除数据库
DROP DATABASE [IF EXISTS]<数据库名>;
IF EXISTS可以避免数据库名称错误或不存在时的问题。
mysql> CREATE DATABASE test_db_del;
Query OK, 1 row affected (0.08 sec)
mysql> SHOW DATABASES;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| sakila |
| sys |
| test_db |
| test_db_char |
| test_db_del |
| world |
+--------------------+
9 rows in set (0.00 sec)
DROP DATABASE IF EXISTS test_db_del;
Query OK, 0 rows affected, 1 warning (0.00 sec)
MySQL选择数据库
在数据库中,当前数据库默认为默认的数据库
使用USE<数据库名>语句可以将选中的数据库设定为当前的数据库来操作
mysql> USE test_db;
Database changed
MySQL数据库注释
单行注释:#
单行注释还可以用-- ,但是与#不同的是,使用--需要在后面加一个空格符才可以作注释作用。
多行注释/* */。
MySQL数据类型
1.整数类型
MySQL的整数类型分为
TINYINT/SMALLINT/MEDIUMINT/INT(INTEGER)/BIGINT
占用的存储空间大小如下图:
类型名称 | 说明 | 存储需求 |
---|---|---|
TINYINT | 很小的整数 | 1个字节 |
SMALLINT | 小的整数 | 2个宇节 |
MEDIUMINT | 中等大小的整数 | 3个字节 |
INT (INTEGHR) | 普通大小的整数 | 4个字节 |
BIGINT | 大整数 | 8个字节 |
2.浮点数类型
浮点数类型有两种,FLOAT和DOUBLE
两种分别占用4字节和8字节,另外,所有的浮点数都可以使用(M,D)来表示,数据类型是DECIMAL
创建方式为DECIMAL(M,D),其中M代表总宽,D代表小数部分的宽度。
默认是DECIMAL(10,0),对精度要求比较高的时候,使用DECIMAL比较好,也尽量少对浮点数进行比较大小,容易出现问题。
3,日期和时间类型
MySQL中的日期和时间数据类型有如下表所示的几种
类型名称 | 日期格式 | 日期范围 | 存储需求 |
---|---|---|---|
YEAR | YYYY | 1901 ~ 2155 | 1 个字节 |
TIME | HH:MM:SS | -838:59:59 ~ 838:59:59 | 3 个字节 |
DATE | YYYY-MM-DD | 1000-01-01 ~ 9999-12-3 | 3 个字节 |
DATETIME | YYYY-MM-DD HH:MM:SS | 1000-01-01 00:00:00 ~ 9999-12-31 23:59:59 | 8 个字节 |
TIMESTAMP | YYYY-MM-DD HH:MM:SS | 1980-01-01 00:00:01 UTC ~ 2040-01-19 03:14:07 UTC | 4 个字节 |
TIMESTAMP和DATATIME的表示方法相同但是日期的划定域不同。
4.MySQL数据库字符串类型
1.CHAR和VARCHAR
CHAR是长度固定的字符串,占用大小为4字节,宽度最多为255,VARCHAR是长度可变的字符串,在存储时保留字符串的结束符,因此大小为M+1,M为字符串的长度。
2.TEXT类型
TEXT类型分为以下四种:
TINYTEXT/MEDIUMTEXT/TEXT/LONGTEXT
- TINYTEXT 表示长度为 255(28-1)字符的 TEXT 列。
- TEXT 表示长度为 65535(216-1)字符的 TEXT 列。
- MEDIUMTEXT 表示长度为 16777215(224-1)字符的 TEXT 列。
- LONGTEXT 表示长度为 4294967295 或 4GB(232-1)字符的 TEXT 列
3.ENUM类型
ENUM是一个字符串对象,在取值时,能在指定的枚举列表中获取,并且一次只能取一个,如果创建的对象中有空格,尾部的空格将被删除。
ENUM值在内部用整数表示,列表值所允许的成员从1开始编号,MySQL内部存储的就是这个索引编号
例如,定义 ENUM 类型的列('first','second','third'),该列可以取的值和每个值的索引如下表所示。
值 | 索引 |
---|---|
NULL | NULL |
'' | 0 |
’first | 1 |
second | 2 |
third | 3 |
ENUM值按照索引顺序排列,空字符串排在非空字符串之前,null值排在所有其他值之前
4.SET类型
SET类型和ENUM类型类似,区别在于,SET类型的列可以从定义的列值中选择多个字符的联合。
5.二进制类型
BIT类型
BIT类型存储的是位字段值,例如以二进制形式存储数字13,13的二进制形式为1101,需要至少四位的BIT类型,即可定义为BIT(4),大于二进制1111的数字是不能擦汗如BIT(4)类型的字段中的。
BINARY类型和VARBINARY类型
BINARY和VARBINARY类似于CHAR和VARCAR,只不过其中存储的是二进制字节字符串
BINARY的长度是固定的,不足最大长度时,后面用\0补齐,例如定义BINARY(3),插入内容为a,则实际内容是a\0\0,
VARBINARY类型的长度是可变的,长度可以在0到最大值之间,并在占用空间的实际长度后面要+1.
BLOB类型
BLOB是一个二进制对象,用来存储可变储量的数据。
BLOB 类型分为 4 种:TINYBLOB、BLOB、MEDIUMBLOB 和 LONGBLOB,它们可容纳值的最大长度不同,如下表所示。
数据类型 | 存储范围 |
---|---|
TINYBLOB | 最大长度为255 (28-1)字节 |
BLOB | 最大长度为65535 (216-1)字节 |
MEDIUMBLOB | 最大长度为16777215 (224-1)字节 |
LONGBLOB | 最大长度为4294967295或4GB (231-1)字节 |