初识MySQL
1.MySQL在CMD命令行下登录
C:\WINDOWS\system32>mysql -h localhost -P 3306 -u root -p
Enter password: ****
注意:P(port)代表MySQL的端口号是:3306.
2.数据库当中的常用数据类型
整数类型 | 字节 | 最小值 | 最大值 |
---|---|---|---|
INT/INTEGER | 4 | 有符号 -8388608 无符号 0 | 有符号 8388607 无符号 1677215 |
浮点数类型 | 字节 | 最小值 | 最大值 |
FLOAT | 4 | ±1.175494351E–38 | ±1.175494351E+38 |
DOUBLE | 8 | ±2.2250738585072014E–308 | ±2.2250738585072014E+308 |
定点数类型 | 字节 | 描述 | |
DEC(M,D),DECIMAL(M,D) | M+2 | 最大取值范围与DOUBLE相同,给定DECIMAL的有效取值范围由M和D决定 | |
日期类型 | 字节 | 最小值 | 最大值 |
DATE | 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 | 190 1 | 2155 |
3.MySQL中的6大约束
关键字 | 解释 |
---|---|
NOT NULL | 约束字段的值不能为空 |
DEFAULT | 设置字段的默认值 |
UNIQUE KEY(UK) | 约束字段的值是唯一 |
PRIMARY KEY(PK) | 约束字段为表的主键,可以作为该表记录的唯一标识 |
AUTO_INCREMENT | 约束字段的值为自动增长 |
FOREIGN KEY(FK) | 约束字段为表的外键 |
4.数据库的使用
4.1.查看数据库 show databases
mysql> show databases
±-------------------+
| Database |
±-------------------+
| information_schema |
| mysql |
| performance_schema |
| sakila |
| sys |
| world |
±-------------------+
6 rows in set (0.00 sec)
4.2.添加数据库 create database
mysql> create database if not exists myshop1 default charset=utf8;
Query OK, 1 row affected (0.06 sec)
注意:创建数据库的时候,指定数据库的字符集是utf8.
4.3.删除数据库
mysql> drop database ishop1;
Query OK, 0 rows affected (0.17 sec)
5.表的建立例题
5.1.商品种类表-commodityty
字段名 | 数据类型 | 说明 |
---|---|---|
ct_id | int | 商品种类编号,主键 |
ctname | varchar(50) | 商品种类名称 |
mysql> create table commoditytype(
-> ct_id int(11) primary key,
-> ct_name varchar(50) not null
-> )default charset=utf8;
Query OK, 0 rows affected (0.05 sec)
5.2.商品表-commodity
字段名 | 数据类型 | 说明 |
---|---|---|
c_id | int | 商品编号,主键 |
c_name | varchar(50) | 商品名称,非空 |
c_madein | varchar(50) | 商品产地,非空 |
c_type | int | 商品种类,外键 |
c_inprice | int | 商品进价,非空 |
c_outprice | int | 商品售价 |
c_num | int | 商品库存,默认100 |
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)
-> )default charset=utf8;
Query OK, 0 rows affected (0.07 sec)
5.3.客户表-customer
字段名 | 数据类型 | 说明 |
---|---|---|
cu_id | int | 客户编号,主键 |
cu_name | varchar(50) | 客户名字,非空 |
cu_phone | varchar(50) | 客户电话,非空 |
cu_gender | int | 客户性别,默认‘1’ |
cu_address | varchar(100) | 客户地址,非空 |
mysql> create table customer(
-> cu_id int(11) primary key,
-> cu_name varchar(50) not null,
-> cu_phone varchar(50) not null,
-> cu_gender int(11) not null default ‘1’,
-> cu_address varchar(100) not null
-> )default charset=utf8;
Query OK, 0 rows affected (0.06 sec)
5.4.订单表-order
字段名 | 数据类型 | 说明 |
---|---|---|
o_id | int | 订单编号,主键,自增长 |
o_cuid | int | 客户编号 |
o_cid | int | 商品编号 |
o_num | int | 商品数量 |
注意:关键字作为表名时,要有反引号··括起来。
mysql> create table `
order`
(
-> o_id int(11) primary key auto_increment,
-> o_cuid int(11) not null,
-> o_cid int(11) not null,
-> o_num int(11) not null,
-> constraint fk_2 foreign key (o_cuid) references customer (cu_id),
-> constraint fk_3 foreign key (o_cid) references commodity (c_id)
-> )default charset=utf8;
Query OK, 0 rows affected (0.07 sec)