MySQL入门实践(一)
创建数据库
第一步当然是启动MySQL并登录,这里我使用的是root账号。
service mysql start
mysql -u root -p
创建数据库:
CREATE DATABASE KI;//数据库名字为KI
使用刚刚创建的数据库:
use KI
这样就切换到数据库KI了。
通过status;
命令可以查看当前数据库的信息;
创建数据表并插入数据
以在数据库KI
下创建数据表为例:
创建数据表shoplist
:
CREATE TABLE shoplist(name CHAR(20),price DOUBLE);
这里创建了一个名为shoplist的表,具有两个属性:name和price,他们分别为
长度为20的CHAR类型数据和DOUBLE类型数据。
在MySQL有较多的数据类型,如果有学习过SAS的同学应该了解SAS的DATA步,MySQL中的数据类型基本上和SAS的DATA步的数据格式基本相同。
MySQL的常用数据格式:
数据类型 | 大小(字节) | 用途 | 格式 |
---|---|---|---|
INT | 4 | 整数 | |
FLOAT | 4 | 单精度浮点数 | |
DOUBLE | 8 | 双精度浮点数 | |
ENUM | 单选,比如性别 | ENUM(“a”,”b”,”c”) | |
SET | 多选 | SET(“1”,”2”,”3”) | |
DATE | 3 | 日期 | YYYY-MM-DD |
YEAR | 1 | 年份值 | YYYY |
TIME | 3 | 时间点或者持续时间 | HH:MM:SS |
CHAR | 0~255 | 定长字符串 | |
VARCHAR | 0~255 | 变长字符串 | |
TEXT | 0~65535 | 长文本数据 |
其中VARCHAR与CHAR的差别在于VARCHAR的长度根据字符串的本身的长度来存储。但是需要多一位字节来存储字符长度。
除了以上的数据格式,其实还有很多数据格式,各位可以移步至官方文档查看:
https://dev.mysql.com/doc/refman/5.7/en/data-types.html
然后在创建了数据表之后,我们可以通过INSERT
命令来插入数据:
我打算购买一个10块钱的苹果,所以:
INSERT INTO shoplist(name,price) VALUES("apple",10.0);
然后我想买一台iPhone,但是我不知道它的价格,所以:
INSERT INTO shoplist(name) VALUES("iPhone");
现在我们可以通过子查询来查看这个表中的数据情况:
SELECT * FROM shoplist;
结果如下:
mysql> SELECT * FROM shoplist
-> ;
+--------+-------+
| name | price |
+--------+-------+
| apple | 10 |
| iPhone | NULL |
+--------+-------+
2 rows in set (0.00 sec)
可以看见其中iPhone对应的Price为NULL,代表iPhone的价格空缺。
属性约束
在创建表的时候可以通过规定属性的格式。
常见的约束:
约束类型: | 主键 | 默认值 | 唯一 | 外键 | 非空 |
---|---|---|---|---|---|
关键字: | PRIMARY KEY | DEFAULT | UNIQUE | FOREIGN KEY | NOT NULL |
意义: | 可以作为行的唯一标识 | 如果缺少输入则为默认值 | 值不允许重复 | 表明两个表之间存在相同的属性 | 值不允许 |
在创建表格的时候:
主键: CREATE TABLE shoplist(name CHAR(20) PRIMARY KEY,price DOUBLE);
默认值: CREATE TABLE shoplist(name CHAR(20),price DOUBLE DEFAULT 10);
唯一: CREATE TABLE shoplist(name CHAR(20) UNIQUE,price DOUBLE);
外键: CREATE TABLE shoplist(name CHAR(20),CONSTRAINT product_name FOREIGN KEY(name) REFERENCES products(name));//假设存在products表中有name属性。
非空: CREATE TABLE shoplist(name char(20) NOT NULL,price NOT NULL);
如果在插入或者修改的时候违反了以上的约束,那么MySQL就会报错。