创建表;
建表语句的语法格式:
create table 表名(
字段名1 数据类型,
字段名2 数据类型,
字段名3 数据类型,
…
);
关于MYSQL当中常见字段的数据类型:
int 整数型
bigint 长整型(java中的long)
float 浮点型
char 定长字符串
varchar 可变长字符串
date 日期类型
BLOB 二进制大对象(存储图片,视频等流媒体信息)
CLOB 字符大对象(存储较大文本,比如4g的字符串)
。。。。
char,varchar区别:
在实际开发中,当某个字段的数据长度不变,例如:性别,生日等采用char。
当一个字段的数据长度不确定,例如:简介,姓名等用varchar。
BLOB,CLOB类型的使用:
电影表:t_movie
id(int) name(varchar) playtime(date/char) haibao(BLOB) history(CLOB)
表名在数据库中一般建议:t_或者tbl_开始。
创建学生表:
学生信息表包括:学号(bigint),姓名(varchar),性别(char),班级编号(int),生日(char)
create table t_student(
no bigint,
name varchar(255),
sex char(1),
classno varchar(255),
birth char(10)
);
先要创数据库,数据库01中有创建数据库代码。
cmd->mysql -uroot -p密码->use 数据库名;->show tables;->desc t_student;(展示表的信息)
+---------+--------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+---------+--------------+------+-----+---------+-------+
| no | bigint | YES | | NULL | |
| name | varchar(255) | YES | | NULL | |
| sex | char(1) | YES | | NULL | |
| classno | varchar(255) | YES | | NULL | |
| birth | char(10) | YES | | NULL | |
+---------+--------------+------+-----+---------+-------+
insert语句插入数据,增
语法格式:insert into 表名(字段名, ,) values(值, ,)
要求:字段的数量和值的数量相同,并且数据类型要对应。
insert into t_student(no,name,sex,classno,birth) values(1,‘zs’,‘1’,‘gaosan1ban’,‘2021-2-4’);
mysql> select * from t_student;
+------+------+------+------------+----------+
| no | name | sex | classno | birth |
+------+------+------+------------+----------+
| 1 | zs | 1 | gaosan1ban | 2021-2-4 |
+------+------+------+------------+----------+
insert into t_student(no,name,sex,classno,birth) values(2,‘ls’,‘1’,‘gaosan1ban’,‘2021-2-4’);
insert into t_student(name) values(‘wangwu’);//除name字段之外,剩下的所有字段自动插入NULL。
mysql> select * from t_student;
+------+--------+------+------------+----------+
| no | name | sex | classno | birth |
+------+--------+------+------------+----------+
| 1 | zs | 1 | gaosan1ban | 2021-2-4 |
| 3 | ls | 1 | gaosan1ban | 2021-2-4 |
| 2 | zl | 1 | gaosan1ban | 2021-2-4 |
| NULL | wangwu | NULL | NULL | NULL |
+------+--------+------+------------+----------+
drop table if exists t_student;//当这个表存在的话删除
default:添加默认值
drop table if exists t_student;
create table t_student(
no bigint,
name varchar(255),
sex char(1) default 1, //默认值为1,在cmd中不能写这个标注要去掉
classno varchar(255),
birth char(10)
);
mysql> desc t_student;
+---------+--------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+---------+--------------+------+-----+---------+-------+
| no | bigint | YES | | NULL | |
| name | varchar(255) | YES | | NULL | |
| sex | char(1) | YES | | 1 | |
| classno | varchar(255) | YES | | NULL | |
| birth | char(10) | YES | | NULL | |
+---------+--------------+------+-----+---------+-------+
插入数据后就会有默认值
mysql> insert into t_student(name) values('zs');
Query OK, 1 row affected (0.00 sec)
mysql> select * from t_student;
+------+------+------+---------+-------+
| no | name | sex | classno | birth |
+------+------+------+---------+-------+
| NULL | zs | 1 | NULL | NULL |
+------+------+------+---------+-------+
注意:当一条insert语句执行成功后,表格中必然会多一行记录,即使多的一行记录中某些字段是NULL,后期也没办法在执行insert语句插入数据了,只能使用update进行更新。
插入数据其他方式:字段可不写,但是后面要对应
insert into t_student values(1,‘jack’,‘0’,‘gaosan2ban’,‘2021-2-5’);
mysql> insert into t_student values(1,'jack','0','gaosan2ban','2021-2-5');
Query OK, 1 row affected (0.00 sec)
mysql> select * from t_student;
+------+------+------+------------+----------+
| no | name | sex | classno | birth |
+------+------+------+------------+----------+
| NULL | zs | 1 | NULL | NULL |
| 1 | jack | 0 | gaosan2ban | 2021-2-5 |
+------+------+------+------------+----------+
一行插入多行数据:
insert into t_student(no,name,sex,classno,birth) values(2,‘rose’,‘1’,‘gs2b’,‘2021-2-5’),(3,‘abc’,‘1’,‘gs2b’,‘2021-2-5’);
mysql> insert into t_student(no,name,sex,classno,birth) values(2,'rose','1','gs2b','2021-2-5'),(3,'abc','1','gs2b','2021-2-5');
Query OK, 2 rows affected (0.01 sec)
Records: 2 Duplicates: 0 Warnings: 0
mysql> select * from t_student;
+------+------+------+------------+----------+
| no | name | sex | classno | birth |
+------+------+------+------------+----------+
| NULL | zs | 1 | NULL | NULL |
| 1 | jack | 0 | gaosan2ban | 2021-2-5 |
| 2 | rose | 1 | gs2b | 2021-2-5 |
| 3 | abc | 1 | gs2b | 2021-2-5 |
+------+------+------+------------+----------+