Mysql基础(一) —– 数据库简介和数据类型测试

756-周同学

发表文章数:47

热门标签

,
首页 » MySQL » 正文

一. 数据库简介

1. 数据库简介

  1. DB: database, 储存数据库的“仓库”。它保存了一系列由组织的数据
  2. DBMS:Database Management System. 数据库时通过DBMS创建和操作的容器
  3. SQL:Structure Query Language: 专门用来与数据库通信的语言

2. MySQL数据库

  1. 优点:
    a. 不是某个特定数据库供应商专有的语言,几乎所有DBMS都支持SQL
    b. 简单易学
    c. 虽然简单,但实际上是一种强有力的语言,灵活使用其语言元素,可以进行非常复杂和高级的数据库操作
  2. MySQL语言的规范:
    (1)不区分大小写, 但建议关键字大写,表名、列名小写
    (2) 每条命令最好用分号结尾
    (3) 每条命令根据需要,可以进行缩进或换行
    (5) 注释
  3. MySQL的常见命令
    (1)查看当前所有的数据库: show databases;
    (2)打开指定的库: use 库名
    (3)查看当前库的所有表: show tables;
    (4)查看其他库的所有表: show tables from 库名;
    (5)创建表: create table 表名(
    列名,列类型,
    列名,列类型,
    。。。。)
    (6)查看表结构: desc 表名;
    (7) 查看服务器的版本:
    a. 登陆到mysql服务端: select version();
    b. 没有登陆到mysql服务端:mysql – version
    c. mysql – V

3. 数据库操作

  1. 将数据放在表中,表再放到库中
  2. 一个数据库中可以有多个表,每个表都有一个名字,用来标识自己
  3. 表具有一些特性,这些特性定义了数据在表中如何储存
  4. 表由列组成,我们也称为字段。所有表都是由一个或多个列组成
  5. 表中的数据按照一行一行储存

4. MySQL中的数据类型

  1. 整数类型:TINYINT,Smallint, mediumins, int, bigint,BOOL,BOOLEAN
  2. 浮点类型: FLOAT [(M,D)] 4 type, DOUBLE 8type, DECIMAL
  3. 字符串类型:Char(定长字符串),Varchar, Tinytext, text, mediumtext, longtext, enum(枚举),set(集合)
  4. 日期时间类型:Time, Date. Datetime, Timestamp, Year
  5. 二进制类型

5. MySQL中的存储引擎

  1. 存储引擎:存储引擎就是表的类型。数据库的存储类型决定了表在计算机中的存储方式
  2. 如何查看Mysql的存储引擎
    (1)查看Mysql支持的存储引擎:show engines
    (2)查看显示支持的存储引擎信息:show
    variables like ‘have%’;
    (3)查看默认的存储引擎:show variables like ‘storage_engine’;
  3. Mysql常用存储引擎及特点
    (1)InnoDB: 外接,补血效率低,占的空间大,事务处理
    (2)MyISAM:静态型,动态型,压缩性,占用磁盘空间小,处理快
    (3)MEMORY:所有数据存放到内存中,对数据快速处理,安全性低
  4. 如何选择合适的存储引擎

二. 测试数据类型

1. 创建表

#创建数据库
create DATABASE IF NOT EXISTS maizi DEFAULT CHARACTER SET 'UTF8';
USE maizi;

#创建数据表 user,age,sex,email,addr,birth,salary,tel,married
#当需要输入中文要转换编码方GBK
CREATE TABLE IF NOT EXISTS user(
id SMALLINT ,
username VARCHAR (20),
age TINYINT,
sex ENUM('male','female','secret'),
email VARCHAR (50),
addr VARCHAR (200),
birth YEAR ,
salary FLOAT (8,2),
tel INT ,
married TINYINT(1) COMMENT '0 is not married.non zero is married'
)ENGINE=INNODB CHARSET=UTF8;

##创建一个课程表 idcid,courseName,courseDesc
CREATE TABLE If NOT EXISTS course(
cid TINYINT,
courseName VARCHAR(50),
courseDesc VARCHAR (200)
);

##创建新闻分布类表cms_cate
CREATE TABLE IF NOT EXISTS cms_cate(
id TINYINT,
cateName VARCHAR (50),
cateDesc VARCHAR (200)
)ENGINE=MyISAM CHARSET=UTF8;

#创建新闻表
CREATE  TABLE IF NOT EXISTS cms_news(
id INT ,
title VARCHAR (50),
content TEXT,
pubTime INT ,
clickNum INT ,
isTop TINYINT(1) COMMENT '0 is top,1 is not top'
);

show tables;

mysql> show tables;
+-----------------+
| Tables_in_maizi |
+-----------------+
| cms_cate        |
| cms_news        |
| course          |
| user            |
+-----------------+
4 rows in set (0.00 sec)

查看数据类型表

#查看cms_news表的表结构
DESC cms_news;
DESCRIBE cms_news;
SHOW COLUMNS FROM cms_news;

2. 测试数据类型

  1. 测试整型
    (1) 测试整型
CREATE TABLE test1(
num1 TINYINT,
num2 SMALLINT ,
num3 MEDIUMINT,
num4 INT ,
num5 BIGINT
);

##向表中插入INSERT tb1_name VALUE |VALUES(值,。。。);
INSERT test1 VALUE (-128,-32768,-8388608,-2147483648,-9223372036854775808);

##查询表中所有记录SELECT * FROM tb1_name;
SELECT * FROM test1;

(2)unsigned

CREATE TABLE test2(
num1 TINYINT UNSIGNED,
num2 TINYINT
);

INSERT test2 VALUES(0,-12);
INSERT test2 VALUES(-12,-12);
mysql> INSERT test2 VALUES(0,-12);
Query OK, 1 row affected (0.01 sec)

mysql> INSERT test2 VALUES(-12,-12);
ERROR 1264 (22003): Out of range value for column 'num1' at row 1

(3)zerofill

CREATE TABLE test3(
num1 TINYINT ZEROFILL,
num2 SMALLINT ZEROFILL,
num3 MEDIUMINT ZEROFILL,
num4 INT ZEROFILL,
num5 BIGINT ZEROFILL
);

INSERT test3 VALUES (1,1,1,1,1);
SELECT * FROM test3;
mysql> SELECT * FROM test3;
+------+-------+----------+------------+----------------------+
| num1 | num2  | num3     | num4       | num5                 |
+------+-------+----------+------------+----------------------+
|  001 | 00001 | 00000001 | 0000000001 | 00000000000000000001 |
+------+-------+----------+------------+----------------------+

2.测试浮点型

CREATE TABLE test4(
num1 FLOAT (6,2),
num2 DOUBLE (6,2),
num3 DECIMAL (6,2)
);
INSERT test4 VALUES (3.1415,3.1415,3.1415);
INSERT test4 VALUES (3.2495,3.2495,3.2495);
mysql> INSERT test4 VALUES (3.1415,3.1415,3.1415);
Query OK, 1 row affected, 1 warning (0.00 sec)

mysql> show warnings;
+-------+------+-------------------------------------------+
| Level | Code | Message                                   |
+-------+------+-------------------------------------------+
| Note  | 1265 | Data truncated for column 'num3' at row 1 |
+-------+------+-------------------------------------------+
1 row in set (0.00 sec)

mysql> select * from test4;
+------+------+------+
| num1 | num2 | num3 |
+------+------+------+
| 3.14 | 3.14 | 3.14 |
+------+------+------+
1 row in set (0.00 sec)

mysql> INSERT test4 VALUES (3.2495,3.2495,3.2495);
Query OK, 1 row affected, 1 warning (0.00 sec)

mysql> select * from test4;
+------+------+------+
| num1 | num2 | num3 |
+------+------+------+
| 3.14 | 3.14 | 3.14 |
| 3.25 | 3.25 | 3.25 |
+------+------+------+
2 rows in set (0.00 sec)

3. 测试字符串类型

  1. 字符串类型
CREATE TABLE IF NOT EXISTS test5(
str1 CHAR (5),
str2 VARCHAR (5)
);

INSERT test5 VALUES ('1','1');
INSERT test5 VALUES ('1  ','1  ');
INSERT test5 VALUES ('啊','啊');
select concat(str1,'-'),concat(str2,'-') from test5;
+------------------+------------------+
| concat(str1,'-') | concat(str2,'-') |
+------------------+------------------+
| 1-               | 1-               |
| 12345-           | 12345-           |
| -                | -                |
| 1-               | 1  -             |
+------------------+------------------+
select length('啊');
+---------------+
| length('啊')  |
+---------------+
|             3 |
+---------------+
1 row in set (0.00 sec)

mysql> select char_length('啊');
+--------------------+
| char_length('啊')  |
+--------------------+
|                  1 |
+--------------------+
1 row in set (0.00 sec)

测试text

CREATE TABLE test6(
str1 TEXT
);
INSERT test6 VALUES ('asajh适时适度');
select * from test6;
+-------------------+
| str1              |
+-------------------+
| asajh适时适度     |
+-------------------+
1 row in set (0.00 sec)
  1. 测试枚举类型
CREATE TABLE IF NOT EXISTS test7(
sex ENUM('male','female','secret  ')
);
INSERT test7 VALUES ('male');
INSERT test7 VALUES ('female');
INSERT test7 VALUES ('secret');
INSERT test7 VALUES ('2');
INSERT test7 VALUES (NULL);
mysql> select * from test7;
+--------+
| sex    |
+--------+
| male   |
| female |
| secret |
| female |
| NULL   |
+--------+
5 rows in set (0.00 sec)
  1. 测试集合类型
CREATE TABLE IF NOT EXISTS test8(
fav SET ('A','B','C','D')
);
INSERT test8 VALUES ('A,B,D');
INSERT test8 VALUES ('D,B,A');
INSERT test8 VALUES (3);
INSERT test8 VALUES (15);
mysql> select * from test8
    -> ;
+---------+
| fav     |
+---------+
| A,B,D   |
| A,B,D   |
| A,B     |
| A,B,C,D |
+---------+
4 rows in set (0.00 sec)

4. 测试日期时间类型

  1. 测试YEAR类型
CREATE TABLE IF NOT EXISTS test9(
birth YEAR
);
INSERT test9 VALUES (1901);
INSERT test9 VALUES (2155);
INSERT test9 VALUES ('1988');
INSERT test9 VALUES (12);
INSERT test9 VALUES (79);
INSERT test9 VALUES (0);
INSERT test9 VALUES ('0');
INSERT test9 VALUES (00);
mysql> select * from test9;
+-------+
| birth |
+-------+
|  1901 |
|  2155 |
|  1988 |
|  2012 |
|  1979 |
|  0000 |
|  2000 |
|  0000 |
+-------+
8 rows in set (0.00 sec)
  1. 测试TIME类型
CREATE TABLE IF NOT EXISTS test10(
test TIME
);
INSERT test10 VALUES ('1 12:12:12');
INSERT test10 VALUES ('11:11');
INSERT test10 VALUES ('1234');
INSERT test10 VALUES ('12');
INSERT test10 VALUES ('0');
INSERT test10 VALUES (0);
mysql> select * from test10;
+----------+
| test     |
+----------+
| 36:12:12 |
| 36:12:12 |
| 11:11:00 |
| 00:12:34 |
| 00:00:12 |
| 00:00:00 |
| 00:00:00 |
+----------+
7 rows in set (0.00 sec)
  1. 测试DATE类型
CREATE TABLE IF NOT EXISTS test11(
test DATE
);
INSERT test11 VALUES ('12-6-7');
INSERT test11 VALUES ('12/6/7');
INSERT test11 VALUES ('120607');
INSERT test11 VALUES ('12@6@7');
mysql> select * from test11;
+------------+
| test       |
+------------+
| 2012-06-07 |
| 2012-06-07 |
| 2012-06-07 |
| 2012-06-07 |
+------------+
4 rows in set (0.00 sec)
标签:

未经允许不得转载:作者:756-周同学, 转载或复制请以 超链接形式 并注明出处 拜师资源博客
原文地址:《Mysql基础(一) —– 数据库简介和数据类型测试》 发布于2020-05-12

分享到:
赞(0) 打赏

评论 抢沙发

评论前必须登录!

  注册



长按图片转发给朋友

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏

Vieu3.3主题
专业打造轻量级个人企业风格博客主题!专注于前端开发,全站响应式布局自适应模板。

登录

忘记密码 ?

您也可以使用第三方帐号快捷登录

Q Q 登 录
微 博 登 录