标签:数据库
#使用cmd Markdown写笔记
世界上有三大数据库,分别是:
- MySQL
- Oracle
- SQLSever
从今天开始,我将学习MySQL。
MySQL是一种关系型数据库,和Oracle数据库都隶属于Oracle公司。比起Oracle数据库,它的优点是体积更小,花费更少,缺点是没有相对而言的强大的功能。因此,它被中国的公司广泛使用,而Oracle逐渐没落。
##数据库当中的数据类型
整数类型 | 字节 | 最小值 | 最大值 |
---|---|---|---|
int | 4 | 有符号 -2147483648 无符号 0 | 有符号2147483647 无符号 4294967295 |
bingint | 8 | 有符号-9223372036854775808 无符号 0 | 有符号 9223372036854775807 无符号 18446744073709551615 |
还有tinyint,smallint,mediumint三种整类型,但现在基本没有适用的场景。
| 浮点数类型 | 字节 | 最小值 | 最大值 |
| -------- - | -----: | :----: |:----: |
| float| 4 | ±1.175494351E–38 | ±1.175494351E+38
| double | 8 | ±2.2250738585072014E–308 | ±2.2250738585072014E+308
日期类型 | 字节 | 最小值 | 最大值 |
---|---|---|---|
data | 4 | 1000-01-01 | 9999-12-31 |
datetime | 8 | 1000-01-01 00:00:00 | 9999-12-31 23:59:59 |
timestamp | 4 | 19700101080001 | 2038年的某个时刻 |
time | 3 | -838:59:59 | 838:59:59 |
year | 1 | 1901 | 2155 |
字符串类型 | 字节 | 描述及存储需求 |
---|---|---|
char(m) | m | m为0~255之间的数 |
varchar(m) | m | M为0~65535之间的整数,值的长度+1个字节 |
还有text、tinytext、mediumtext、longtext四种字符串类型,用于存储大量的文本数据,但是基本用不上。现在的大量文本数据存储在数据仓库里。
MySQL数据库管理系统提供了一系列机制来检查数据库表中的数据是否满足规定的条件,以保证数据库表中数据的准确性和一致性,这种机制就是约束!
关键字 | 解释 |
---|---|
not null | 约束字段的值不能为空 |
default | 设置字段的默认值 |
unique key | 约束字段的值唯一 |
primary key | 约束字段为表的主键,可以作为该表记录的唯一标识 |
auto_increment | 约束字段的值为自动增长 |
foreign key | 约束字段为表的外键 |
在命令行输入:
mysql -h localhost -P 3306 -u root -p
Enter password:****
显示现有的databases
show datebases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| sakila |
| sys |
| world |
分号表示命令结束的标识符
mysql> show
-> databases
->
->
->
-> ;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| sakila |
| sys |
| world |
井号用来注释
mysql> #分号表示命令结束标识符
mysql>
创建一个datebase
mysql> create database ishop1;
Query OK, 1 row affected (0.00 sec)
在创建数据库的时候指定数据库的字符集为utf8
mysql> create database if not exists ishop1 default charset=utf8;
Query OK, 1 row affected (0.00 sec)
在创建数据表之前,必须指定s数据库
mysql> use ishop1;
Database changed
mysql> show tables;
Empty set (0.00 sec)
创建一个数据表
mysql> create table commodity(
-> c_id int(11) primary key,
-> c_name varchar(50) not null,
-> c_madein varchar(50) not null,
-> c_type int(11) not null,
-> c_inprice int(11) not null,
-> c_outprice int(11) ,
-> c_num int(11) default '100',
-> constraint fk_1 foreign key (c_type) references commoditytype (ct_id)
-> )defalut charset=utf8;